summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChia-I Wu <olvaffe@gmail.com>2009-09-14 11:03:02 +0800
committerChia-I Wu <olvaffe@gmail.com>2009-09-14 11:51:47 +0800
commit542c26fa4f7212831234af5008cea1bf7593f30d (patch)
treea11fb475b6733c5ef936f151cf64c38d5770c0e2 /src
parenta98c282c7da646c9def246b2619124c51f8b4464 (diff)
es/st: Move state tracker code to mesa/st.
State tracker is one of the mesa drivers. It should not belong to the es overlay.
Diffstat (limited to 'src')
-rw-r--r--src/mesa/es/sources.mak6
-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.c5
-rw-r--r--src/mesa/state_tracker/st_extensions.c4
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;