[Mesa-dev] [PATCH 2/2] mesa: make _mesa_accum() static

Samuel Pitoiset samuel.pitoiset at gmail.com
Wed May 3 07:27:30 UTC 2017


Why don't inline _mesa_acum()? Usually, we remove the '_' for static 
mesa functions right?

On 05/03/2017 05:38 AM, Timothy Arceri wrote:
> ---
>   src/mesa/main/accum.c | 104 +++++++++++++++++++++++++-------------------------
>   src/mesa/main/accum.h |   3 --
>   2 files changed, 52 insertions(+), 55 deletions(-)
> 
> diff --git a/src/mesa/main/accum.c b/src/mesa/main/accum.c
> index ef74468..919c441 100644
> --- a/src/mesa/main/accum.c
> +++ b/src/mesa/main/accum.c
> @@ -46,71 +46,20 @@ _mesa_ClearAccum( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha )
>      tmp[2] = CLAMP( blue,  -1.0F, 1.0F );
>      tmp[3] = CLAMP( alpha, -1.0F, 1.0F );
>   
>      if (TEST_EQ_4V(tmp, ctx->Accum.ClearColor))
>         return;
>   
>      COPY_4FV( ctx->Accum.ClearColor, tmp );
>   }
>   
>   
> -void GLAPIENTRY
> -_mesa_Accum( GLenum op, GLfloat value )
> -{
> -   GET_CURRENT_CONTEXT(ctx);
> -   FLUSH_VERTICES(ctx, 0);
> -
> -   switch (op) {
> -   case GL_ADD:
> -   case GL_MULT:
> -   case GL_ACCUM:
> -   case GL_LOAD:
> -   case GL_RETURN:
> -      /* OK */
> -      break;
> -   default:
> -      _mesa_error(ctx, GL_INVALID_ENUM, "glAccum(op)");
> -      return;
> -   }
> -
> -   if (ctx->DrawBuffer->Visual.haveAccumBuffer == 0) {
> -      _mesa_error(ctx, GL_INVALID_OPERATION, "glAccum(no accum buffer)");
> -      return;
> -   }
> -
> -   if (ctx->DrawBuffer != ctx->ReadBuffer) {
> -      /* See GLX_SGI_make_current_read or WGL_ARB_make_current_read,
> -       * or GL_EXT_framebuffer_blit.
> -       */
> -      _mesa_error(ctx, GL_INVALID_OPERATION,
> -                  "glAccum(different read/draw buffers)");
> -      return;
> -   }
> -
> -   if (ctx->NewState)
> -      _mesa_update_state(ctx);
> -
> -   if (ctx->DrawBuffer->_Status != GL_FRAMEBUFFER_COMPLETE_EXT) {
> -      _mesa_error(ctx, GL_INVALID_FRAMEBUFFER_OPERATION_EXT,
> -                  "glAccum(incomplete framebuffer)");
> -      return;
> -   }
> -
> -   if (ctx->RasterDiscard)
> -      return;
> -
> -   if (ctx->RenderMode == GL_RENDER) {
> -      _mesa_accum(ctx, op, value);
> -   }
> -}
> -
> -
>   /**
>    * Clear the accumulation buffer by mapping the renderbuffer and
>    * writing the clear color to it.  Called by the driver's implementation
>    * of the glClear function.
>    */
>   void
>   _mesa_clear_accum_buffer(struct gl_context *ctx)
>   {
>      GLuint x, y, width, height;
>      GLubyte *accMap;
> @@ -429,21 +378,21 @@ accum_return(struct gl_context *ctx, GLfloat value,
>      ctx->Driver.UnmapRenderbuffer(ctx, accRb);
>   }
>   
>   
>   
>   /**
>    * Software fallback for glAccum.  A hardware driver that supports
>    * signed 16-bit color channels could implement hardware accumulation
>    * operations, but no driver does so at this time.
>    */
> -void
> +static void
>   _mesa_accum(struct gl_context *ctx, GLenum op, GLfloat value)
>   {
>      GLint xpos, ypos, width, height;
>   
>      if (!ctx->DrawBuffer->Attachment[BUFFER_ACCUM].Renderbuffer) {
>         _mesa_warning(ctx, "Calling glAccum() without an accumulation buffer");
>         return;
>      }
>   
>      if (!_mesa_check_conditional_render(ctx))
> @@ -482,10 +431,61 @@ _mesa_accum(struct gl_context *ctx, GLenum op, GLfloat value)
>      }
>   }
>   
>   
>   void
>   _mesa_init_accum( struct gl_context *ctx )
>   {
>      /* Accumulate buffer group */
>      ASSIGN_4V( ctx->Accum.ClearColor, 0.0, 0.0, 0.0, 0.0 );
>   }
> +
> +
> +void GLAPIENTRY
> +_mesa_Accum( GLenum op, GLfloat value )
> +{
> +   GET_CURRENT_CONTEXT(ctx);
> +   FLUSH_VERTICES(ctx, 0);
> +
> +   switch (op) {
> +   case GL_ADD:
> +   case GL_MULT:
> +   case GL_ACCUM:
> +   case GL_LOAD:
> +   case GL_RETURN:
> +      /* OK */
> +      break;
> +   default:
> +      _mesa_error(ctx, GL_INVALID_ENUM, "glAccum(op)");
> +      return;
> +   }
> +
> +   if (ctx->DrawBuffer->Visual.haveAccumBuffer == 0) {
> +      _mesa_error(ctx, GL_INVALID_OPERATION, "glAccum(no accum buffer)");
> +      return;
> +   }
> +
> +   if (ctx->DrawBuffer != ctx->ReadBuffer) {
> +      /* See GLX_SGI_make_current_read or WGL_ARB_make_current_read,
> +       * or GL_EXT_framebuffer_blit.
> +       */
> +      _mesa_error(ctx, GL_INVALID_OPERATION,
> +                  "glAccum(different read/draw buffers)");
> +      return;
> +   }
> +
> +   if (ctx->NewState)
> +      _mesa_update_state(ctx);
> +
> +   if (ctx->DrawBuffer->_Status != GL_FRAMEBUFFER_COMPLETE_EXT) {
> +      _mesa_error(ctx, GL_INVALID_FRAMEBUFFER_OPERATION_EXT,
> +                  "glAccum(incomplete framebuffer)");
> +      return;
> +   }
> +
> +   if (ctx->RasterDiscard)
> +      return;
> +
> +   if (ctx->RenderMode == GL_RENDER) {
> +      _mesa_accum(ctx, op, value);
> +   }
> +}
> diff --git a/src/mesa/main/accum.h b/src/mesa/main/accum.h
> index ede2ecc..fe253a2 100644
> --- a/src/mesa/main/accum.h
> +++ b/src/mesa/main/accum.h
> @@ -40,19 +40,16 @@
>   #include "main/glheader.h"
>   
>   struct gl_context;
>   
>   extern void GLAPIENTRY
>   _mesa_ClearAccum( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha );
>   void GLAPIENTRY
>   _mesa_Accum( GLenum op, GLfloat value );
>   
>   extern void
> -_mesa_accum(struct gl_context *ctx, GLenum op, GLfloat value);
> -
> -extern void
>   _mesa_clear_accum_buffer(struct gl_context *ctx);
>   
>   extern void
>   _mesa_init_accum( struct gl_context *ctx );
>   
>   #endif /* ACCUM_H */
> 


More information about the mesa-dev mailing list