dri: remove unused meta_clear_tris()
authorBrian Paul <brianp@vmware.com>
Tue, 1 Sep 2009 18:43:23 +0000 (12:43 -0600)
committerBrian Paul <brianp@vmware.com>
Tue, 1 Sep 2009 23:39:31 +0000 (17:39 -0600)
src/mesa/drivers/dri/common/dri_metaops.c
src/mesa/drivers/dri/common/dri_metaops.h

index cdbea344951445b589ddf7f276fe3f7ccbd22948..c7bea07dc97347ed188770f62fad4ce40d411971 100644 (file)
@@ -287,250 +287,6 @@ meta_restore_texcoords(struct dri_metaops *meta)
 }
 
 
-/**
- * Perform glClear where mask contains only color, depth, and/or stencil.
- *
- * The implementation is based on calling into Mesa to set GL state and
- * performing normal triangle rendering.  The intent of this path is to
- * have as generic a path as possible, so that any driver could make use of
- * it.
- */
-
-/**
- * Per-context one-time init of things for intl_clear_tris().
- * Basically set up a private array object for vertex/color arrays.
- */
-static void
-meta_init_clear(struct dri_metaops *meta)
-{
-   GLcontext *ctx = meta->ctx;
-   struct gl_array_object *arraySave = NULL;
-   const GLuint arrayBuffer = ctx->Array.ArrayBufferObj->Name;
-   const GLuint elementBuffer = ctx->Array.ElementArrayBufferObj->Name;
-
-   /* create new array object */
-   meta->clear.arrayObj = _mesa_new_array_object(ctx, ~0);
-
-   /* save current array object, bind new one */
-   _mesa_reference_array_object(ctx, &arraySave, ctx->Array.ArrayObj);
-   ctx->NewState |= _NEW_ARRAY;
-   ctx->Array.NewState |= _NEW_ARRAY_ALL;
-   _mesa_reference_array_object(ctx, &ctx->Array.ArrayObj, meta->clear.arrayObj);
-
-   /* one-time setup of vertex arrays (pos, color) */
-   _mesa_BindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
-   _mesa_BindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0);
-   _mesa_ColorPointer(4, GL_FLOAT, 4 * sizeof(GLfloat), meta->clear.color);
-   _mesa_VertexPointer(3, GL_FLOAT, 3 * sizeof(GLfloat), meta->clear.vertices);
-   _mesa_Enable(GL_COLOR_ARRAY);
-   _mesa_Enable(GL_VERTEX_ARRAY);
-
-   /* restore original array object */
-   ctx->NewState |= _NEW_ARRAY;
-   ctx->Array.NewState |= _NEW_ARRAY_ALL;
-   _mesa_reference_array_object(ctx, &ctx->Array.ArrayObj, arraySave);
-   _mesa_reference_array_object(ctx, &arraySave, NULL);
-
-   /* restore original buffer objects */
-   _mesa_BindBufferARB(GL_ARRAY_BUFFER_ARB, arrayBuffer);
-   _mesa_BindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, elementBuffer);
-}
-
-
-
-/**
- * Perform glClear where mask contains only color, depth, and/or stencil.
- *
- * The implementation is based on calling into Mesa to set GL state and
- * performing normal triangle rendering.  The intent of this path is to
- * have as generic a path as possible, so that any driver could make use of
- * it.
- */
-void
-meta_clear_tris(struct dri_metaops *meta, GLbitfield mask)
-{
-   GLcontext *ctx = meta->ctx;
-   GLfloat dst_z;
-   struct gl_framebuffer *fb = ctx->DrawBuffer;
-   int i;
-   GLboolean saved_fp_enable = GL_FALSE, saved_vp_enable = GL_FALSE;
-   GLuint saved_shader_program = 0;
-   unsigned int saved_active_texture;
-   struct gl_array_object *arraySave = NULL;
-   GLfloat saved_near, saved_far;
-
-   if (!meta->clear.arrayObj)
-      meta_init_clear(meta);
-
-   assert((mask & ~(TRI_CLEAR_COLOR_BITS | BUFFER_BIT_DEPTH |
-                   BUFFER_BIT_STENCIL)) == 0);
-
-   _mesa_PushAttrib(GL_COLOR_BUFFER_BIT |
-                   GL_DEPTH_BUFFER_BIT |
-                   GL_ENABLE_BIT |
-                   GL_POLYGON_BIT |
-                   GL_STENCIL_BUFFER_BIT |
-                   GL_TRANSFORM_BIT |
-                   GL_CURRENT_BIT);
-   saved_active_texture = ctx->Texture.CurrentUnit;
-
-   /* Disable existing GL state we don't want to apply to a clear. */
-   _mesa_Disable(GL_ALPHA_TEST);
-   _mesa_Disable(GL_BLEND);
-   _mesa_Disable(GL_CULL_FACE);
-   _mesa_Disable(GL_FOG);
-   _mesa_Disable(GL_POLYGON_SMOOTH);
-   _mesa_Disable(GL_POLYGON_STIPPLE);
-   _mesa_Disable(GL_POLYGON_OFFSET_FILL);
-   _mesa_Disable(GL_LIGHTING);
-   _mesa_Disable(GL_CLIP_PLANE0);
-   _mesa_Disable(GL_CLIP_PLANE1);
-   _mesa_Disable(GL_CLIP_PLANE2);
-   _mesa_Disable(GL_CLIP_PLANE3);
-   _mesa_Disable(GL_CLIP_PLANE4);
-   _mesa_Disable(GL_CLIP_PLANE5);
-   _mesa_PolygonMode(GL_FRONT_AND_BACK, GL_FILL);
-   if (ctx->Extensions.ARB_fragment_program && ctx->FragmentProgram.Enabled) {
-      saved_fp_enable = GL_TRUE;
-      _mesa_Disable(GL_FRAGMENT_PROGRAM_ARB);
-   }
-   if (ctx->Extensions.ARB_vertex_program && ctx->VertexProgram.Enabled) {
-      saved_vp_enable = GL_TRUE;
-      _mesa_Disable(GL_VERTEX_PROGRAM_ARB);
-   }
-   if (ctx->Extensions.ARB_shader_objects && ctx->Shader.CurrentProgram) {
-      saved_shader_program = ctx->Shader.CurrentProgram->Name;
-      _mesa_UseProgramObjectARB(0);
-   }
-
-   if (ctx->Texture._EnabledUnits != 0) {
-      int i;
-
-      for (i = 0; i < ctx->Const.MaxTextureUnits; i++) {
-        _mesa_ActiveTextureARB(GL_TEXTURE0 + i);
-        _mesa_Disable(GL_TEXTURE_1D);
-        _mesa_Disable(GL_TEXTURE_2D);
-        _mesa_Disable(GL_TEXTURE_3D);
-        if (ctx->Extensions.ARB_texture_cube_map)
-           _mesa_Disable(GL_TEXTURE_CUBE_MAP_ARB);
-        if (ctx->Extensions.NV_texture_rectangle)
-           _mesa_Disable(GL_TEXTURE_RECTANGLE_NV);
-        if (ctx->Extensions.MESA_texture_array) {
-           _mesa_Disable(GL_TEXTURE_1D_ARRAY_EXT);
-           _mesa_Disable(GL_TEXTURE_2D_ARRAY_EXT);
-        }
-      }
-   }
-
-   /* save current array object, bind our private one */
-   _mesa_reference_array_object(ctx, &arraySave, ctx->Array.ArrayObj);
-   ctx->NewState |= _NEW_ARRAY;
-   ctx->Array.NewState |= _NEW_ARRAY_ALL;
-   _mesa_reference_array_object(ctx, &ctx->Array.ArrayObj, meta->clear.arrayObj);
-
-   meta_set_passthrough_transform(meta);
-
-   for (i = 0; i < 4; i++) {
-      COPY_4FV(meta->clear.color[i], ctx->Color.ClearColor);
-   }
-
-   /* convert clear Z from [0,1] to NDC coord in [-1,1] */
-   dst_z = -1.0 + 2.0 * ctx->Depth.Clear;
-
-   /* The ClearDepth value is unaffected by DepthRange, so do a default
-    * mapping.
-    */
-   saved_near = ctx->Viewport.Near;
-   saved_far = ctx->Viewport.Far;
-   _mesa_DepthRange(0.0, 1.0);
-
-   /* Prepare the vertices, which are the same regardless of which buffer we're
-    * drawing to.
-    */
-   meta->clear.vertices[0][0] = fb->_Xmin;
-   meta->clear.vertices[0][1] = fb->_Ymin;
-   meta->clear.vertices[0][2] = dst_z;
-   meta->clear.vertices[1][0] = fb->_Xmax;
-   meta->clear.vertices[1][1] = fb->_Ymin;
-   meta->clear.vertices[1][2] = dst_z;
-   meta->clear.vertices[2][0] = fb->_Xmax;
-   meta->clear.vertices[2][1] = fb->_Ymax;
-   meta->clear.vertices[2][2] = dst_z;
-   meta->clear.vertices[3][0] = fb->_Xmin;
-   meta->clear.vertices[3][1] = fb->_Ymax;
-   meta->clear.vertices[3][2] = dst_z;
-
-   while (mask != 0) {
-      GLuint this_mask = 0;
-      GLuint color_bit;
-
-      color_bit = _mesa_ffs(mask & TRI_CLEAR_COLOR_BITS);
-      if (color_bit != 0)
-        this_mask |= (1 << (color_bit - 1));
-
-      /* Clear depth/stencil in the same pass as color. */
-      this_mask |= (mask & (BUFFER_BIT_DEPTH | BUFFER_BIT_STENCIL));
-
-      /* Select the current color buffer and use the color write mask if
-       * we have one, otherwise don't write any color channels.
-       */
-      if (this_mask & BUFFER_BIT_FRONT_LEFT)
-        _mesa_DrawBuffer(GL_FRONT_LEFT);
-      else if (this_mask & BUFFER_BIT_BACK_LEFT)
-        _mesa_DrawBuffer(GL_BACK_LEFT);
-      else if (color_bit != 0)
-        _mesa_DrawBuffer(GL_COLOR_ATTACHMENT0 +
-                         (color_bit - BUFFER_COLOR0 - 1));
-      else
-        _mesa_ColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
-
-      /* Control writing of the depth clear value to depth. */
-      if (this_mask & BUFFER_BIT_DEPTH) {
-        _mesa_DepthFunc(GL_ALWAYS);
-        _mesa_Enable(GL_DEPTH_TEST);
-      } else {
-        _mesa_Disable(GL_DEPTH_TEST);
-        _mesa_DepthMask(GL_FALSE);
-      }
-
-      /* Control writing of the stencil clear value to stencil. */
-      if (this_mask & BUFFER_BIT_STENCIL) {
-        _mesa_Enable(GL_STENCIL_TEST);
-        _mesa_StencilOpSeparate(GL_FRONT_AND_BACK,
-                                GL_REPLACE, GL_REPLACE, GL_REPLACE);
-        _mesa_StencilFuncSeparate(GL_FRONT_AND_BACK, GL_ALWAYS,
-                                  ctx->Stencil.Clear & 0x7fffffff,
-                                  ctx->Stencil.WriteMask[0]);
-      } else {
-        _mesa_Disable(GL_STENCIL_TEST);
-      }
-
-      _mesa_DrawArrays(GL_TRIANGLE_FAN, 0, 4);
-
-      mask &= ~this_mask;
-   }
-
-   meta_restore_transform(meta);
-
-   _mesa_ActiveTextureARB(GL_TEXTURE0 + saved_active_texture);
-   if (saved_fp_enable)
-      _mesa_Enable(GL_FRAGMENT_PROGRAM_ARB);
-   if (saved_vp_enable)
-      _mesa_Enable(GL_VERTEX_PROGRAM_ARB);
-
-   if (saved_shader_program)
-      _mesa_UseProgramObjectARB(saved_shader_program);
-
-   _mesa_DepthRange(saved_near, saved_far);
-   _mesa_PopAttrib();
-
-   /* restore current array object */
-   ctx->NewState |= _NEW_ARRAY;
-   ctx->Array.NewState |= _NEW_ARRAY_ALL;
-   _mesa_reference_array_object(ctx, &ctx->Array.ArrayObj, arraySave);
-   _mesa_reference_array_object(ctx, &arraySave, NULL);
-}
-
 void meta_init_metaops(GLcontext *ctx, struct dri_metaops *meta)
 {
    meta->ctx = ctx;
@@ -538,7 +294,5 @@ void meta_init_metaops(GLcontext *ctx, struct dri_metaops *meta)
 
 void meta_destroy_metaops(struct dri_metaops *meta)
 {
-  if (meta->clear.arrayObj)
-    _mesa_delete_array_object(meta->ctx, meta->clear.arrayObj);
 
 }
index bb4079d5353f4f740735897c61adbe36cfae6b98..2487145326b0c59787d841276ca9b97158d7c6e9 100644 (file)
  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  *
  **************************************************************************/
+
 #ifndef DRI_METAOPS_H
 #define DRI_METAOPS_H
 
-#define TRI_CLEAR_COLOR_BITS (BUFFER_BIT_BACK_LEFT |                   \
-                             BUFFER_BIT_FRONT_LEFT |                   \
-                             BUFFER_BIT_COLOR0 |                       \
-                             BUFFER_BIT_COLOR1 |                       \
-                             BUFFER_BIT_COLOR2 |                       \
-                             BUFFER_BIT_COLOR3 |                       \
-                             BUFFER_BIT_COLOR4 |                       \
-                             BUFFER_BIT_COLOR5 |                       \
-                             BUFFER_BIT_COLOR6 |                       \
-                             BUFFER_BIT_COLOR7)
-
-struct dri_meta_clear {
-    struct gl_array_object *arrayObj;
-    GLfloat vertices[4][3];
-    GLfloat color[4][4];
-};
 
 struct dri_metaops {
     GLcontext *ctx;
@@ -69,8 +54,6 @@ struct dri_metaops {
     GLint saved_vp_x, saved_vp_y;
     GLsizei saved_vp_width, saved_vp_height;
     GLenum saved_matrix_mode;
-    
-    struct dri_meta_clear clear;
 };
 
 
@@ -91,9 +74,8 @@ void meta_restore_fragment_program(struct dri_metaops *meta);
 void meta_set_default_texrect(struct dri_metaops *meta);
 
 void meta_restore_texcoords(struct dri_metaops *meta);
-void meta_clear_tris(struct dri_metaops *meta, GLbitfield mask);
 
 void meta_init_metaops(GLcontext *ctx, struct dri_metaops *meta);
 void meta_destroy_metaops(struct dri_metaops *meta);
-#endif
 
+#endif