st/mesa: Remove unneeded texture format terminators.
[mesa.git] / src / mesa / state_tracker / st_cb_drawtex.c
index 6d387d5ccf1c771cdaa3473c07d0ec044f80587f..86ceb9d78b32abc294efb7203db3c95abfa8cab6 100644 (file)
 
 #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"
-#include "shader/program.h"
-#include "shader/prog_parameter.h"
-#include "shader/prog_print.h"
+#include "main/mfeatures.h"
+#include "program/program.h"
+#include "program/prog_print.h"
 
 #include "st_context.h"
 #include "st_atom.h"
-#include "st_atom_constbuf.h"
-#include "st_draw.h"
 #include "st_cb_drawtex.h"
 
 #include "pipe/p_context.h"
 #include "pipe/p_defines.h"
 #include "util/u_inlines.h"
 #include "pipe/p_shader_tokens.h"
-#include "util/u_tile.h"
 #include "util/u_draw_quad.h"
 #include "util/u_simple_shaders.h"
 
 #include "cso_cache/cso_context.h"
 
 
+#if FEATURE_OES_draw_texture
+
+
 struct cached_shader
 {
-   //struct pipe_shader_state shader;
    void *handle;
 
    uint num_attribs;
@@ -60,9 +55,6 @@ 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,
@@ -109,7 +101,7 @@ lookup_shader(struct pipe_context *pipe,
 }
 
 static void
-st_DrawTex(GLcontext *ctx, GLfloat x, GLfloat y, GLfloat z,
+st_DrawTex(struct gl_context *ctx, GLfloat x, GLfloat y, GLfloat z,
            GLfloat width, GLfloat height)
 {
    struct st_context *st = ctx->st;
@@ -147,6 +139,7 @@ st_DrawTex(GLcontext *ctx, GLfloat x, GLfloat y, GLfloat z,
 
    /* create the vertex buffer */
    vbuffer = pipe_buffer_create(pipe->screen, PIPE_BIND_VERTEX_BUFFER,
+                                PIPE_USAGE_STREAM,
                                 numAttribs * 4 * 4 * sizeof(GLfloat));
 
    /* load vertex buffer */
@@ -229,7 +222,7 @@ st_DrawTex(GLcontext *ctx, GLfloat x, GLfloat y, GLfloat z,
          }
       }
 
-      pipe_buffer_unmap(pipe, vbuffer, vbuffer_transfer);
+      pipe_buffer_unmap(pipe, vbuffer_transfer);
 
 #undef SET_ATTRIB
    }
@@ -238,6 +231,7 @@ st_DrawTex(GLcontext *ctx, GLfloat x, GLfloat y, GLfloat z,
    cso_save_viewport(cso);
    cso_save_vertex_shader(cso);
    cso_save_vertex_elements(cso);
+   cso_save_vertex_buffers(cso);
 
    {
       void *vs = lookup_shader(pipe, numAttribs,
@@ -272,7 +266,7 @@ st_DrawTex(GLcontext *ctx, GLfloat x, GLfloat y, GLfloat z,
    }
 
 
-   util_draw_vertex_buffer(pipe, vbuffer,
+   util_draw_vertex_buffer(pipe, cso, vbuffer,
                            0,  /* offset */
                            PIPE_PRIM_TRIANGLE_FAN,
                            4,  /* verts */
@@ -285,16 +279,14 @@ st_DrawTex(GLcontext *ctx, GLfloat x, GLfloat y, GLfloat z,
    cso_restore_viewport(cso);
    cso_restore_vertex_shader(cso);
    cso_restore_vertex_elements(cso);
+   cso_restore_vertex_buffers(cso);
 }
 
 
-#endif /* FEATURE_OES_draw_texture */
-
-
 void
 st_init_drawtex_functions(struct dd_function_table *functions)
 {
-   _MESA_INIT_DRAWTEX_FUNCTIONS(functions, st_);
+   functions->DrawTex = st_DrawTex;
 }
 
 
@@ -310,3 +302,6 @@ st_destroy_drawtex(struct st_context *st)
    }
    NumCachedShaders = 0;
 }
+
+
+#endif /* FEATURE_OES_draw_texture */