#include "main/glheader.h"
struct st_context;
+struct st_vertex_program;
+struct st_vp_variant;
+struct pipe_vertex_buffer;
+struct pipe_vertex_element;
/**
* Enumeration of state tracker pipelines.
enum st_pipeline {
ST_PIPELINE_RENDER,
ST_PIPELINE_CLEAR,
+ ST_PIPELINE_META,
ST_PIPELINE_UPDATE_FRAMEBUFFER,
ST_PIPELINE_COMPUTE,
};
void st_validate_state( struct st_context *st, enum st_pipeline pipeline );
GLuint st_compare_func_to_pipe(GLenum func);
-enum pipe_format
-st_pipe_vertex_format(GLenum type, GLuint size, GLenum format,
- GLboolean normalized, GLboolean integer);
-
+void
+st_setup_arrays(struct st_context *st,
+ const struct st_vertex_program *vp,
+ const struct st_vp_variant *vp_variant,
+ struct pipe_vertex_element *velements,
+ struct pipe_vertex_buffer *vbuffer, unsigned *num_vbuffers);
+
+void
+st_setup_current(struct st_context *st,
+ const struct st_vertex_program *vp,
+ const struct st_vp_variant *vp_variant,
+ struct pipe_vertex_element *velements,
+ struct pipe_vertex_buffer *vbuffer, unsigned *num_vbuffers);
+
+void
+st_setup_current_user(struct st_context *st,
+ const struct st_vertex_program *vp,
+ const struct st_vp_variant *vp_variant,
+ struct pipe_vertex_element *velements,
+ struct pipe_vertex_buffer *vbuffer, unsigned *num_vbuffers);
/* Define ST_NEW_xxx_INDEX */
enum {
ST_NEW_CS_SAMPLERS)
#define ST_NEW_FRAMEBUFFER (ST_NEW_FB_STATE | \
- ST_NEW_SAMPLE_MASK | \
+ ST_NEW_SAMPLE_STATE | \
ST_NEW_SAMPLE_SHADING)
#define ST_NEW_VERTEX_PROGRAM(st, p) (p->affected_states | \
#define ST_PIPELINE_CLEAR_STATE_MASK (ST_NEW_FB_STATE | \
ST_NEW_SCISSOR | \
ST_NEW_WINDOW_RECTANGLES)
+#define ST_PIPELINE_META_STATE_MASK (ST_PIPELINE_RENDER_STATE_MASK & \
+ ~ST_NEW_VERTEX_ARRAYS)
/* For ReadPixels, ReadBuffer, GetSamplePosition: */
#define ST_PIPELINE_UPDATE_FB_STATE_MASK (ST_NEW_FB_STATE)