X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fmain%2Fdrawpix.c;h=12b9f2930d898dbfdc75ddd13cc841ac67f51e5a;hb=263581bba4d61291c54313648063a30c47106f0b;hp=f5d780e2ae289a582fd5e3d2c2b2866376a94839;hpb=27558a160a9fe91745728d7626995cd88f8fe339;p=mesa.git diff --git a/src/mesa/main/drawpix.c b/src/mesa/main/drawpix.c index f5d780e2ae2..12b9f2930d8 100644 --- a/src/mesa/main/drawpix.c +++ b/src/mesa/main/drawpix.c @@ -1,4 +1,3 @@ -/* $Id: drawpix.c,v 1.64 2003/03/01 01:50:20 brianp Exp $ */ /* * Mesa 3-D graphics library @@ -34,11 +33,12 @@ #include "state.h" #include "mtypes.h" +#if _HAVE_FULL_GL /* * Execute glDrawPixels */ -void +void GLAPIENTRY _mesa_DrawPixels( GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ) { @@ -87,36 +87,7 @@ _mesa_DrawPixels( GLsizei width, GLsizei height, } } - - -void -_mesa_ReadPixels( GLint x, GLint y, GLsizei width, GLsizei height, - GLenum format, GLenum type, GLvoid *pixels ) -{ - GET_CURRENT_CONTEXT(ctx); - ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); - - if (width < 0 || height < 0) { - _mesa_error( ctx, GL_INVALID_VALUE, - "glReadPixels(width=%d height=%d)", width, height ); - return; - } - - if (!pixels) { - _mesa_error( ctx, GL_INVALID_VALUE, "glReadPixels(pixels)" ); - return; - } - - if (ctx->NewState) - _mesa_update_state(ctx); - - ctx->Driver.ReadPixels(ctx, x, y, width, height, - format, type, &ctx->Pack, pixels); -} - - - -void +void GLAPIENTRY _mesa_CopyPixels( GLint srcx, GLint srcy, GLsizei width, GLsizei height, GLenum type ) { @@ -164,9 +135,40 @@ _mesa_CopyPixels( GLint srcx, GLint srcy, GLsizei width, GLsizei height, } } +#endif + + + +void GLAPIENTRY +_mesa_ReadPixels( GLint x, GLint y, GLsizei width, GLsizei height, + GLenum format, GLenum type, GLvoid *pixels ) +{ + GET_CURRENT_CONTEXT(ctx); + ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); + + if (width < 0 || height < 0) { + _mesa_error( ctx, GL_INVALID_VALUE, + "glReadPixels(width=%d height=%d)", width, height ); + return; + } + + if (!pixels) { + _mesa_error( ctx, GL_INVALID_VALUE, "glReadPixels(pixels)" ); + return; + } + + if (ctx->NewState) + _mesa_update_state(ctx); + + ctx->Driver.ReadPixels(ctx, x, y, width, height, + format, type, &ctx->Pack, pixels); +} + + -void + +void GLAPIENTRY _mesa_Bitmap( GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap ) @@ -197,6 +199,7 @@ _mesa_Bitmap( GLsizei width, GLsizei height, ctx->Driver.Bitmap( ctx, x, y, width, height, &ctx->Unpack, bitmap ); } } +#if _HAVE_FULL_GL else if (ctx->RenderMode==GL_FEEDBACK) { if (ctx->Current.RasterPosValid) { FLUSH_CURRENT(ctx, 0); @@ -208,9 +211,11 @@ _mesa_Bitmap( GLsizei width, GLsizei height, ctx->Current.RasterTexCoords[0] ); } } - else if (ctx->RenderMode==GL_SELECT) { + else { + ASSERT(ctx->RenderMode == GL_SELECT); /* Bitmaps don't generate selection hits. See appendix B of 1.1 spec. */ } +#endif /* update raster position */ ctx->Current.RasterPos[0] += xmove; @@ -227,7 +232,7 @@ _mesa_Bitmap( GLsizei width, GLsizei height, * Z-compositing. Normally, this operation requires two glDrawPixels * calls with stencil testing. */ -void +void GLAPIENTRY _mesa_DrawDepthPixelsMESA( GLsizei width, GLsizei height, GLenum colorFormat, GLenum colorType, const GLvoid *colors,