mesa: more transform feedback infrastructure
[mesa.git] / src / mesa / state_tracker / st_context.c
index 5fcb6b9dcf9c87c8ebb0ce12b8532482af984ba0..93406141f6597b9f56bd4c84b8fc6b8d1e1b2faf 100644 (file)
@@ -54,6 +54,9 @@
 #include "st_cb_queryobj.h"
 #include "st_cb_readpixels.h"
 #include "st_cb_texture.h"
+#if FEATURE_EXT_transform_feedback
+#include "st_cb_xformfb.h"
+#endif
 #include "st_cb_flush.h"
 #include "st_cb_strings.h"
 #include "st_atom.h"
@@ -64,6 +67,7 @@
 #include "pipe/p_context.h"
 #include "util/u_inlines.h"
 #include "util/u_rect.h"
+#include "util/u_surface.h"
 #include "draw/draw_context.h"
 #include "cso_cache/cso_context.h"
 
@@ -199,7 +203,16 @@ struct st_context *st_create_context(struct pipe_context *pipe,
    memset(&funcs, 0, sizeof(funcs));
    st_init_driver_functions(&funcs);
 
-   ctx = _mesa_create_context(visual, shareCtx, &funcs, NULL);
+#if FEATURE_GL
+   ctx = _mesa_create_context_for_api(API_OPENGL,
+                                     visual, shareCtx, &funcs, NULL);
+#elif FEATURE_ES1
+   ctx = _mesa_create_context_for_api(API_OPENGLES,
+                                     visual, shareCtx, &funcs, NULL);
+#elif FEATURE_ES2
+   ctx = _mesa_create_context_for_api(API_OPENGLES2,
+                                     visual, shareCtx, &funcs, NULL);
+#endif
 
    /* XXX: need a capability bit in gallium to query if the pipe
     * driver prefers DP4 or MUL/MAD for vertex transformation.
@@ -325,5 +338,9 @@ void st_init_driver_functions(struct dd_function_table *functions)
    st_init_flush_functions(functions);
    st_init_string_functions(functions);
 
+#if FEATURE_EXT_transform_feedback
+   st_init_xformfb_functions(functions);
+#endif
+
    functions->UpdateState = st_invalidate_state;
 }