diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/es/sources.mak | 6 | ||||
-rw-r--r-- | src/mesa/state_tracker/st_cb_drawtex.c (renamed from src/mesa/es/state_tracker/st_cb_drawtex.c) | 47 | ||||
-rw-r--r-- | src/mesa/state_tracker/st_cb_drawtex.h (renamed from src/mesa/es/state_tracker/st_cb_drawtex.h) | 14 | ||||
-rw-r--r-- | src/mesa/state_tracker/st_context.c | 5 | ||||
-rw-r--r-- | src/mesa/state_tracker/st_extensions.c | 4 |
5 files changed, 41 insertions, 35 deletions
diff --git a/src/mesa/es/sources.mak b/src/mesa/es/sources.mak index 6dedb726bd..b52978be96 100644 --- a/src/mesa/es/sources.mak +++ b/src/mesa/es/sources.mak @@ -11,8 +11,7 @@ ES1_LOCAL_SOURCES := \ main/stubs.c ES1_GALLIUM_LOCAL_SOURCES := \ - $(ES1_LOCAL_SOURCES) \ - state_tracker/st_cb_drawtex.c + $(ES1_LOCAL_SOURCES) ES1_API_LOCAL_SOURCES := \ @@ -69,6 +68,9 @@ SHADER_OMITTED := \ shader/nvvertparse.c SHADER_SOURCES := $(filter-out $(SHADER_OMITTED), $(SHADER_SOURCES)) +STATETRACKER_SOURCES += \ + state_tracker/st_cb_drawtex.c + ES1_MESA_SOURCES := \ $(MAIN_SOURCES) \ $(MATH_SOURCES) \ diff --git a/src/mesa/es/state_tracker/st_cb_drawtex.c b/src/mesa/state_tracker/st_cb_drawtex.c index f675591595..3b98b9c40b 100644 --- a/src/mesa/es/state_tracker/st_cb_drawtex.c +++ b/src/mesa/state_tracker/st_cb_drawtex.c @@ -15,6 +15,7 @@ #include "main/imports.h" #include "main/image.h" #include "main/bufferobj.h" +#include "main/drawtex.h" #include "main/macros.h" #include "main/state.h" #include "main/texformat.h" @@ -59,6 +60,9 @@ static struct cached_shader CachedShaders[MAX_SHADERS]; static GLuint NumCachedShaders = 0; +#if FEATURE_OES_draw_texture + + static void * lookup_shader(struct pipe_context *pipe, uint num_attribs, @@ -104,26 +108,10 @@ lookup_shader(struct pipe_context *pipe, return CachedShaders[i].handle; } - -/** - * Free any cached shaders - */ -void -st_destroy_drawtex(struct st_context *st) +static void +st_DrawTex(GLcontext *ctx, GLfloat x, GLfloat y, GLfloat z, + GLfloat width, GLfloat height) { - GLuint i; - for (i = 0; i < NumCachedShaders; i++) { - cso_delete_vertex_shader(st->cso_context, CachedShaders[i].handle); - } - NumCachedShaders = 0; -} - - - -void -_mesa_DrawTexf(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height) -{ - GET_CURRENT_CONTEXT(ctx); struct st_context *st = ctx->st; struct pipe_context *pipe = st->pipe; struct cso_context *cso = ctx->st->cso_context; @@ -285,8 +273,25 @@ _mesa_DrawTexf(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height) } +#endif /* FEATURE_OES_draw_texture */ + + void -_mesa_DrawTexfv(const GLfloat *coords) +st_init_drawtex_functions(struct dd_function_table *functions) { - _mesa_DrawTexf(coords[0], coords[1], coords[2], coords[3], coords[4]); + _MESA_INIT_DRAWTEX_FUNCTIONS(functions, st_); +} + + +/** + * Free any cached shaders + */ +void +st_destroy_drawtex(struct st_context *st) +{ + GLuint i; + for (i = 0; i < NumCachedShaders; i++) { + cso_delete_vertex_shader(st->cso_context, CachedShaders[i].handle); + } + NumCachedShaders = 0; } diff --git a/src/mesa/es/state_tracker/st_cb_drawtex.h b/src/mesa/state_tracker/st_cb_drawtex.h index 278815a2f7..7b0da70279 100644 --- a/src/mesa/es/state_tracker/st_cb_drawtex.h +++ b/src/mesa/state_tracker/st_cb_drawtex.h @@ -9,20 +9,10 @@ #ifndef ST_CB_DRAWTEX_H #define ST_CB_DRAWTEX_H - -struct st_context; - - -extern void -_mesa_DrawTexf(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height); - - extern void -_mesa_DrawTexfv(const GLfloat *coords); - +st_init_drawtex_functions(struct dd_function_table *functions); extern void st_destroy_drawtex(struct st_context *st); - -#endif +#endif /* ST_CB_DRAWTEX_H */ diff --git a/src/mesa/state_tracker/st_context.c b/src/mesa/state_tracker/st_context.c index 96969c736c..508d522f9a 100644 --- a/src/mesa/state_tracker/st_context.c +++ b/src/mesa/state_tracker/st_context.c @@ -326,6 +326,11 @@ void st_init_driver_functions(struct dd_function_table *functions) st_init_drawpixels_functions(functions); st_init_rasterpos_functions(functions); #endif + +#if FEATURE_OES_draw_texture + st_init_drawtex_functions(functions); +#endif + st_init_fbo_functions(functions); st_init_get_functions(functions); #if FEATURE_feedback diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c index 3f835d38dd..ce3c302e48 100644 --- a/src/mesa/state_tracker/st_extensions.c +++ b/src/mesa/state_tracker/st_extensions.c @@ -183,6 +183,10 @@ void st_init_extensions(struct st_context *st) ctx->Extensions.NV_texgen_reflection = GL_TRUE; ctx->Extensions.NV_texture_env_combine4 = GL_TRUE; +#if FEATURE_OES_draw_texture + ctx->Extensions.OES_draw_texture = GL_TRUE; +#endif + ctx->Extensions.SGI_color_matrix = GL_TRUE; ctx->Extensions.SGIS_generate_mipmap = GL_TRUE; |