/* Always saved/restored with meta. */
gl_api API;
+ uint8_t ExtensionsVersion;
/** MESA_META_CLEAR (and others?) */
struct gl_query_object *CurrentOcclusionObject;
/** MESA_META_TEXTURE */
GLuint ActiveUnit;
- GLuint ClientActiveUnit;
/** for unit[0] only */
struct gl_texture_object *CurrentTexture[NUM_TEXTURE_TARGETS];
/** mask of TEXTURE_2D_BIT, etc */
/** MESA_META_VERTEX */
struct gl_vertex_array_object *VAO;
- struct gl_buffer_object *ArrayBufferObj;
/** MESA_META_VIEWPORT */
GLfloat ViewportX, ViewportY, ViewportW, ViewportH;
BLIT_2X_MSAA_SHADER_2D_MULTISAMPLE_SCALED_RESOLVE,
BLIT_4X_MSAA_SHADER_2D_MULTISAMPLE_SCALED_RESOLVE,
BLIT_8X_MSAA_SHADER_2D_MULTISAMPLE_SCALED_RESOLVE,
+ BLIT_16X_MSAA_SHADER_2D_MULTISAMPLE_SCALED_RESOLVE,
BLIT_2X_MSAA_SHADER_2D_MULTISAMPLE_ARRAY_SCALED_RESOLVE,
BLIT_4X_MSAA_SHADER_2D_MULTISAMPLE_ARRAY_SCALED_RESOLVE,
BLIT_8X_MSAA_SHADER_2D_MULTISAMPLE_ARRAY_SCALED_RESOLVE,
+ BLIT_16X_MSAA_SHADER_2D_MULTISAMPLE_ARRAY_SCALED_RESOLVE,
BLIT_MSAA_SHADER_COUNT,
};
struct blit_state
{
GLuint VAO;
- GLuint VBO;
+ struct gl_buffer_object *buf_obj;
struct blit_shader_table shaders_with_depth;
struct blit_shader_table shaders_without_depth;
GLuint msaa_shaders[BLIT_MSAA_SHADER_COUNT];
struct clear_state
{
GLuint VAO;
- GLuint VBO;
+ struct gl_buffer_object *buf_obj;
GLuint ShaderProg;
- GLint ColorLocation;
- GLint LayerLocation;
-
GLuint IntegerShaderProg;
- GLint IntegerColorLocation;
- GLint IntegerLayerLocation;
};
struct copypix_state
{
GLuint VAO;
- GLuint VBO;
+ struct gl_buffer_object *buf_obj;
};
struct drawpix_state
{
GLuint VAO;
- GLuint VBO;
+ struct gl_buffer_object *buf_obj;
GLuint StencilFP; /**< Fragment program for drawing stencil images */
GLuint DepthFP; /**< Fragment program for drawing depth images */
struct bitmap_state
{
GLuint VAO;
- GLuint VBO;
+ struct gl_buffer_object *buf_obj;
struct temp_texture Tex; /**< separate texture from other meta ops */
};
struct gen_mipmap_state
{
GLuint VAO;
- GLuint VBO;
+ struct gl_buffer_object *buf_obj;
GLuint FBO;
GLuint Sampler;
{
GLuint VAO;
struct decompress_fbo_state byteFBO, floatFBO;
- GLuint VBO, Sampler;
+ struct gl_buffer_object *buf_obj;
+ GLuint Sampler;
struct blit_shader_table shaders;
};
struct drawtex_state
{
GLuint VAO;
- GLuint VBO;
+ struct gl_buffer_object *buf_obj;
};
#define MAX_META_OPS_DEPTH 8
_mesa_meta_get_temp_depth_texture(struct gl_context *ctx);
void
-_mesa_meta_setup_vertex_objects(GLuint *VAO, GLuint *VBO,
+_mesa_meta_setup_vertex_objects(struct gl_context *ctx,
+ GLuint *VAO, struct gl_buffer_object **buf_obj,
bool use_generic_attributes,
unsigned vertex_size, unsigned texcoord_size,
unsigned color_size);
void
-_mesa_meta_setup_ff_tnl_for_blit(GLuint *VAO, GLuint *VBO,
+_mesa_meta_setup_ff_tnl_for_blit(struct gl_context *ctx,
+ GLuint *VAO, struct gl_buffer_object **buf_obj,
unsigned texcoord_size);
void
struct blit_shader_table *table);
void
-_mesa_meta_glsl_blit_cleanup(struct blit_state *blit);
+_mesa_meta_glsl_blit_cleanup(struct gl_context *ctx, struct blit_state *blit);
void
_mesa_meta_blit_shader_table_cleanup(struct blit_shader_table *table);
void
-_mesa_meta_glsl_generate_mipmap_cleanup(struct gen_mipmap_state *mipmap);
+_mesa_meta_glsl_generate_mipmap_cleanup(struct gl_context *ctx,
+ struct gen_mipmap_state *mipmap);
void
_mesa_meta_bind_fbo_image(GLenum target, GLenum attachment,