/* * Apply the current logic operator to a span of CI pixels. This is only * used if the device driver can't do logic ops. */ void gl_logicop_ci_span( GLcontext *ctx, GLuint n, GLint x, GLint y, GLuint index[], const GLubyte mask[] ) { GLuint dest[MAX_WIDTH]; /* Read dest values from frame buffer */ (*ctx->Driver.ReadCI32Span)( ctx, n, x, y, dest ); index_logicop( ctx, n, index, dest, mask ); }
/* * Apply the current logic operator to an array of CI pixels. This is only * used if the device driver can't do logic ops. */ void gl_logicop_ci_pixels( GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], GLuint index[], const GLubyte mask[] ) { GLuint dest[PB_SIZE]; /* Read dest values from frame buffer */ (*ctx->Driver.ReadCI32Pixels)( ctx, n, x, y, dest, mask ); index_logicop( ctx, n, index, dest, mask ); }
/* * Apply the current logic operator to a span of CI pixels. This is only * used if the device driver can't do logic ops. */ void _mesa_logicop_ci_span( GLcontext *ctx, GLuint n, GLint x, GLint y, GLuint index[], const GLubyte mask[] ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); GLuint dest[MAX_WIDTH]; /* Read dest values from frame buffer */ (*swrast->Driver.ReadCI32Span)( ctx, n, x, y, dest ); index_logicop( ctx, n, index, dest, mask ); }
/* * Apply the current logic operator to an array of CI pixels. This is only * used if the device driver can't do logic ops. */ void _mesa_logicop_ci_pixels( GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], GLuint index[], const GLubyte mask[] ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); GLuint dest[PB_SIZE]; /* Read dest values from frame buffer */ (*swrast->Driver.ReadCI32Pixels)( ctx, n, x, y, dest, mask ); index_logicop( ctx, n, index, dest, mask ); }
/* * Apply the current logic operator to a span of CI pixels. This is only * used if the device driver can't do logic ops. */ void _swrast_logicop_ci_span( GLcontext *ctx, const struct sw_span *span, GLuint index[] ) { SWcontext *swrast = SWRAST_CONTEXT(ctx); GLuint dest[MAX_WIDTH]; ASSERT(span->end < MAX_WIDTH); /* Read dest values from frame buffer */ if (span->arrayMask & SPAN_XY) { (*swrast->Driver.ReadCI32Pixels)( ctx, span->end, span->array->x, span->array->y, dest, span->array->mask ); } else { (*swrast->Driver.ReadCI32Span)( ctx, span->end, span->x, span->y, dest ); } index_logicop( ctx, span->end, index, dest, span->array->mask ); }