gallium: plug in and init GL_EXT_framebuffer_blit function/extension
authorBrian <brian.paul@tungstengraphics.com>
Tue, 18 Mar 2008 23:16:23 +0000 (17:16 -0600)
committerBrian <brian.paul@tungstengraphics.com>
Tue, 18 Mar 2008 23:18:11 +0000 (17:18 -0600)
src/mesa/state_tracker/st_context.c
src/mesa/state_tracker/st_context.h
src/mesa/state_tracker/st_extensions.c

index 5458ab420e4fea04a6a96e4aebc240e950b1d771..e1fc885e0e7b55fecb458e72000c02860bf3a963 100644 (file)
@@ -36,6 +36,7 @@
 #include "st_context.h"
 #include "st_cb_accum.h"
 #include "st_cb_bufferobjects.h"
+#include "st_cb_blit.h"
 #include "st_cb_clear.h"
 #include "st_cb_drawpixels.h"
 #include "st_cb_fbo.h"
@@ -100,6 +101,7 @@ st_create_context_priv( GLcontext *ctx, struct pipe_context *pipe )
    st_init_atoms( st );
    st_init_draw( st );
    st_init_generate_mipmap(st);
+   st_init_blit(st);
 
    for (i = 0; i < PIPE_MAX_SAMPLERS; i++)
       st->state.sampler_list[i] = &st->state.samplers[i];
@@ -151,6 +153,8 @@ static void st_destroy_context_priv( struct st_context *st )
    draw_destroy(st->draw);
    st_destroy_atoms( st );
    st_destroy_draw( st );
+   st_destroy_generate_mipmap(st);
+   st_destroy_blit(st);
 
    _vbo_DestroyContext(st->ctx);
 
@@ -217,6 +221,7 @@ void st_init_driver_functions(struct dd_function_table *functions)
 
    st_init_accum_functions(functions);
    st_init_bufferobject_functions(functions);
+   st_init_blit_functions(functions);
    st_init_clear_functions(functions);
    st_init_drawpixels_functions(functions);
    st_init_fbo_functions(functions);
index 09bab7bfb1bdaa9c0f2674a47829b4b99089540d..63150dbeaf6c21cc52086a16c628d46b9427782d 100644 (file)
@@ -40,6 +40,9 @@ struct draw_context;
 struct draw_stage;
 struct cso_cache;
 struct cso_blend;
+struct gen_mipmap_state;
+struct blit_state;
+
 
 #define ST_NEW_MESA                    0x1 /* Mesa state has changed */
 #define ST_NEW_FRAGMENT_PROGRAM        0x2
@@ -147,6 +150,7 @@ struct st_context
    } bitmap;
 
    struct gen_mipmap_state *gen_mipmap;
+   struct blit_state *blit;
 
    struct cso_context *cso_context;
 };
index 99d2a5fb9e92aa73896fafbef7da0d1101e0f6db..0962b5f74c514e6f7f99c6e4142768d3c47d7ae4 100644 (file)
@@ -143,6 +143,7 @@ void st_init_extensions(struct st_context *st)
    ctx->Extensions.EXT_blend_logic_op = GL_TRUE;
    ctx->Extensions.EXT_blend_minmax = GL_TRUE;
    ctx->Extensions.EXT_blend_subtract = GL_TRUE;
+   ctx->Extensions.EXT_framebuffer_blit = GL_TRUE;
    ctx->Extensions.EXT_framebuffer_object = GL_TRUE;
    ctx->Extensions.EXT_fog_coord = GL_TRUE;
    ctx->Extensions.EXT_multi_draw_arrays = GL_TRUE;