diff options
Diffstat (limited to 'src/mesa')
| -rw-r--r-- | src/mesa/main/pixel.c | 196 | ||||
| -rw-r--r-- | src/mesa/main/pixel.h | 7 | ||||
| -rw-r--r-- | src/mesa/main/pixelstore.c | 226 | ||||
| -rw-r--r-- | src/mesa/main/pixelstore.h | 46 | ||||
| -rw-r--r-- | src/mesa/main/state.c | 1 | ||||
| -rw-r--r-- | src/mesa/sources | 1 | 
6 files changed, 274 insertions, 203 deletions
diff --git a/src/mesa/main/pixel.c b/src/mesa/main/pixel.c index eb4fd6e7c9..ee9bdabf53 100644 --- a/src/mesa/main/pixel.c +++ b/src/mesa/main/pixel.c @@ -36,8 +36,6 @@  /*****                    glPixelZoom                             *****/  /**********************************************************************/ - -  void GLAPIENTRY  _mesa_PixelZoom( GLfloat xfactor, GLfloat yfactor )  { @@ -55,200 +53,6 @@ _mesa_PixelZoom( GLfloat xfactor, GLfloat yfactor )  /**********************************************************************/ -/*****                    glPixelStore                            *****/ -/**********************************************************************/ - - -void GLAPIENTRY -_mesa_PixelStorei( GLenum pname, GLint param ) -{ -   /* NOTE: this call can't be compiled into the display list */ -   GET_CURRENT_CONTEXT(ctx); -   ASSERT_OUTSIDE_BEGIN_END(ctx); - -   switch (pname) { -      case GL_PACK_SWAP_BYTES: -	 if (param == (GLint)ctx->Pack.SwapBytes) -	    return; -	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); -         ctx->Pack.SwapBytes = param ? GL_TRUE : GL_FALSE; -	 break; -      case GL_PACK_LSB_FIRST: -	 if (param == (GLint)ctx->Pack.LsbFirst) -	    return; -	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); -         ctx->Pack.LsbFirst = param ? GL_TRUE : GL_FALSE; -	 break; -      case GL_PACK_ROW_LENGTH: -	 if (param<0) { -	    _mesa_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" ); -	    return; -	 } -	 if (ctx->Pack.RowLength == param) -	    return; -	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); -	 ctx->Pack.RowLength = param; -	 break; -      case GL_PACK_IMAGE_HEIGHT: -         if (param<0) { -            _mesa_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" ); -	    return; -	 } -	 if (ctx->Pack.ImageHeight == param) -	    return; -	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); -	 ctx->Pack.ImageHeight = param; -         break; -      case GL_PACK_SKIP_PIXELS: -	 if (param<0) { -	    _mesa_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" ); -	    return; -	 } -	 if (ctx->Pack.SkipPixels == param) -	    return; -	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); -	 ctx->Pack.SkipPixels = param; -	 break; -      case GL_PACK_SKIP_ROWS: -	 if (param<0) { -	    _mesa_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" ); -	    return; -	 } -	 if (ctx->Pack.SkipRows == param) -	    return; -	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); -	 ctx->Pack.SkipRows = param; -	 break; -      case GL_PACK_SKIP_IMAGES: -	 if (param<0) { -	    _mesa_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" ); -	    return; -	 } -	 if (ctx->Pack.SkipImages == param) -	    return; -	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); -	 ctx->Pack.SkipImages = param; -	 break; -      case GL_PACK_ALIGNMENT: -         if (param!=1 && param!=2 && param!=4 && param!=8) { -	    _mesa_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" ); -	    return; -	 } -	 if (ctx->Pack.Alignment == param) -	    return; -	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); -	 ctx->Pack.Alignment = param; -	 break; -      case GL_PACK_INVERT_MESA: -         if (!ctx->Extensions.MESA_pack_invert) { -            _mesa_error( ctx, GL_INVALID_ENUM, "glPixelstore(pname)" ); -            return; -         } -         if (ctx->Pack.Invert == param) -            return; -         FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); -         ctx->Pack.Invert = param; -         break; - -      case GL_UNPACK_SWAP_BYTES: -	 if (param == (GLint)ctx->Unpack.SwapBytes) -	    return; -	 if ((GLint)ctx->Unpack.SwapBytes == param) -	    return; -	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); -	 ctx->Unpack.SwapBytes = param ? GL_TRUE : GL_FALSE; -         break; -      case GL_UNPACK_LSB_FIRST: -	 if (param == (GLint)ctx->Unpack.LsbFirst) -	    return; -	 if ((GLint)ctx->Unpack.LsbFirst == param) -	    return; -	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); -	 ctx->Unpack.LsbFirst = param ? GL_TRUE : GL_FALSE; -	 break; -      case GL_UNPACK_ROW_LENGTH: -	 if (param<0) { -	    _mesa_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" ); -	    return; -	 } -	 if (ctx->Unpack.RowLength == param) -	    return; -	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); -	 ctx->Unpack.RowLength = param; -	 break; -      case GL_UNPACK_IMAGE_HEIGHT: -         if (param<0) { -            _mesa_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" ); -	    return; -	 } -	 if (ctx->Unpack.ImageHeight == param) -	    return; - -	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); -	 ctx->Unpack.ImageHeight = param; -         break; -      case GL_UNPACK_SKIP_PIXELS: -	 if (param<0) { -	    _mesa_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" ); -	    return; -	 } -	 if (ctx->Unpack.SkipPixels == param) -	    return; -	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); -	 ctx->Unpack.SkipPixels = param; -	 break; -      case GL_UNPACK_SKIP_ROWS: -	 if (param<0) { -	    _mesa_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" ); -	    return; -	 } -	 if (ctx->Unpack.SkipRows == param) -	    return; -	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); -	 ctx->Unpack.SkipRows = param; -	 break; -      case GL_UNPACK_SKIP_IMAGES: -	 if (param < 0) { -	    _mesa_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" ); -	    return; -	 } -	 if (ctx->Unpack.SkipImages == param) -	    return; -	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); -	 ctx->Unpack.SkipImages = param; -	 break; -      case GL_UNPACK_ALIGNMENT: -         if (param!=1 && param!=2 && param!=4 && param!=8) { -	    _mesa_error( ctx, GL_INVALID_VALUE, "glPixelStore" ); -	    return; -	 } -	 if (ctx->Unpack.Alignment == param) -	    return; -	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); -	 ctx->Unpack.Alignment = param; -	 break; -      case GL_UNPACK_CLIENT_STORAGE_APPLE: -         if (param == (GLint)ctx->Unpack.ClientStorage) -            return; -         FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); -         ctx->Unpack.ClientStorage = param ? GL_TRUE : GL_FALSE; -         break; -      default: -	 _mesa_error( ctx, GL_INVALID_ENUM, "glPixelStore" ); -	 return; -   } -} - - -void GLAPIENTRY -_mesa_PixelStoref( GLenum pname, GLfloat param ) -{ -   _mesa_PixelStorei( pname, (GLint) param ); -} - - - -/**********************************************************************/  /*****                         glPixelMap                         *****/  /**********************************************************************/ diff --git a/src/mesa/main/pixel.h b/src/mesa/main/pixel.h index 09155cfd70..ad874e9f0f 100644 --- a/src/mesa/main/pixel.h +++ b/src/mesa/main/pixel.h @@ -57,13 +57,6 @@ extern void GLAPIENTRY  _mesa_PixelMapusv(GLenum map, GLsizei mapsize, const GLushort *values );  extern void GLAPIENTRY -_mesa_PixelStoref( GLenum pname, GLfloat param ); - - -extern void GLAPIENTRY -_mesa_PixelStorei( GLenum pname, GLint param ); - -extern void GLAPIENTRY  _mesa_PixelTransferf( GLenum pname, GLfloat param );  extern void GLAPIENTRY diff --git a/src/mesa/main/pixelstore.c b/src/mesa/main/pixelstore.c new file mode 100644 index 0000000000..f5f054f938 --- /dev/null +++ b/src/mesa/main/pixelstore.c @@ -0,0 +1,226 @@ +/* + * Mesa 3-D graphics library + * Version:  7.1 + * + * Copyright (C) 1999-2008  Brian Paul   All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/** + * \file pixelstore.c + * glPixelStore functions. + */ + + +#include "glheader.h" +#include "bufferobj.h" +#include "colormac.h" +#include "context.h" +#include "image.h" +#include "macros.h" +#include "pixelstore.h" +#include "mtypes.h" + + +void GLAPIENTRY +_mesa_PixelStorei( GLenum pname, GLint param ) +{ +   /* NOTE: this call can't be compiled into the display list */ +   GET_CURRENT_CONTEXT(ctx); +   ASSERT_OUTSIDE_BEGIN_END(ctx); + +   switch (pname) { +      case GL_PACK_SWAP_BYTES: +	 if (param == (GLint)ctx->Pack.SwapBytes) +	    return; +	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); +         ctx->Pack.SwapBytes = param ? GL_TRUE : GL_FALSE; +	 break; +      case GL_PACK_LSB_FIRST: +	 if (param == (GLint)ctx->Pack.LsbFirst) +	    return; +	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); +         ctx->Pack.LsbFirst = param ? GL_TRUE : GL_FALSE; +	 break; +      case GL_PACK_ROW_LENGTH: +	 if (param<0) { +	    _mesa_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" ); +	    return; +	 } +	 if (ctx->Pack.RowLength == param) +	    return; +	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); +	 ctx->Pack.RowLength = param; +	 break; +      case GL_PACK_IMAGE_HEIGHT: +         if (param<0) { +            _mesa_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" ); +	    return; +	 } +	 if (ctx->Pack.ImageHeight == param) +	    return; +	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); +	 ctx->Pack.ImageHeight = param; +         break; +      case GL_PACK_SKIP_PIXELS: +	 if (param<0) { +	    _mesa_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" ); +	    return; +	 } +	 if (ctx->Pack.SkipPixels == param) +	    return; +	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); +	 ctx->Pack.SkipPixels = param; +	 break; +      case GL_PACK_SKIP_ROWS: +	 if (param<0) { +	    _mesa_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" ); +	    return; +	 } +	 if (ctx->Pack.SkipRows == param) +	    return; +	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); +	 ctx->Pack.SkipRows = param; +	 break; +      case GL_PACK_SKIP_IMAGES: +	 if (param<0) { +	    _mesa_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" ); +	    return; +	 } +	 if (ctx->Pack.SkipImages == param) +	    return; +	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); +	 ctx->Pack.SkipImages = param; +	 break; +      case GL_PACK_ALIGNMENT: +         if (param!=1 && param!=2 && param!=4 && param!=8) { +	    _mesa_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" ); +	    return; +	 } +	 if (ctx->Pack.Alignment == param) +	    return; +	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); +	 ctx->Pack.Alignment = param; +	 break; +      case GL_PACK_INVERT_MESA: +         if (!ctx->Extensions.MESA_pack_invert) { +            _mesa_error( ctx, GL_INVALID_ENUM, "glPixelstore(pname)" ); +            return; +         } +         if (ctx->Pack.Invert == param) +            return; +         FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); +         ctx->Pack.Invert = param; +         break; + +      case GL_UNPACK_SWAP_BYTES: +	 if (param == (GLint)ctx->Unpack.SwapBytes) +	    return; +	 if ((GLint)ctx->Unpack.SwapBytes == param) +	    return; +	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); +	 ctx->Unpack.SwapBytes = param ? GL_TRUE : GL_FALSE; +         break; +      case GL_UNPACK_LSB_FIRST: +	 if (param == (GLint)ctx->Unpack.LsbFirst) +	    return; +	 if ((GLint)ctx->Unpack.LsbFirst == param) +	    return; +	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); +	 ctx->Unpack.LsbFirst = param ? GL_TRUE : GL_FALSE; +	 break; +      case GL_UNPACK_ROW_LENGTH: +	 if (param<0) { +	    _mesa_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" ); +	    return; +	 } +	 if (ctx->Unpack.RowLength == param) +	    return; +	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); +	 ctx->Unpack.RowLength = param; +	 break; +      case GL_UNPACK_IMAGE_HEIGHT: +         if (param<0) { +            _mesa_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" ); +	    return; +	 } +	 if (ctx->Unpack.ImageHeight == param) +	    return; + +	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); +	 ctx->Unpack.ImageHeight = param; +         break; +      case GL_UNPACK_SKIP_PIXELS: +	 if (param<0) { +	    _mesa_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" ); +	    return; +	 } +	 if (ctx->Unpack.SkipPixels == param) +	    return; +	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); +	 ctx->Unpack.SkipPixels = param; +	 break; +      case GL_UNPACK_SKIP_ROWS: +	 if (param<0) { +	    _mesa_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" ); +	    return; +	 } +	 if (ctx->Unpack.SkipRows == param) +	    return; +	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); +	 ctx->Unpack.SkipRows = param; +	 break; +      case GL_UNPACK_SKIP_IMAGES: +	 if (param < 0) { +	    _mesa_error( ctx, GL_INVALID_VALUE, "glPixelStore(param)" ); +	    return; +	 } +	 if (ctx->Unpack.SkipImages == param) +	    return; +	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); +	 ctx->Unpack.SkipImages = param; +	 break; +      case GL_UNPACK_ALIGNMENT: +         if (param!=1 && param!=2 && param!=4 && param!=8) { +	    _mesa_error( ctx, GL_INVALID_VALUE, "glPixelStore" ); +	    return; +	 } +	 if (ctx->Unpack.Alignment == param) +	    return; +	 FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); +	 ctx->Unpack.Alignment = param; +	 break; +      case GL_UNPACK_CLIENT_STORAGE_APPLE: +         if (param == (GLint)ctx->Unpack.ClientStorage) +            return; +         FLUSH_VERTICES(ctx, _NEW_PACKUNPACK); +         ctx->Unpack.ClientStorage = param ? GL_TRUE : GL_FALSE; +         break; +      default: +	 _mesa_error( ctx, GL_INVALID_ENUM, "glPixelStore" ); +	 return; +   } +} + + +void GLAPIENTRY +_mesa_PixelStoref( GLenum pname, GLfloat param ) +{ +   _mesa_PixelStorei( pname, (GLint) param ); +} diff --git a/src/mesa/main/pixelstore.h b/src/mesa/main/pixelstore.h new file mode 100644 index 0000000000..c42f304030 --- /dev/null +++ b/src/mesa/main/pixelstore.h @@ -0,0 +1,46 @@ +/* + * Mesa 3-D graphics library + * Version:  7.1 + * + * Copyright (C) 1999-2008  Brian Paul   All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/** + * \file pixelstore.h + * glPixelStore functions. + */ + + +#ifndef PIXELSTORE_H +#define PIXELSTORE_H + + +#include "glheader.h" + + +extern void GLAPIENTRY +_mesa_PixelStorei( GLenum pname, GLint param ); + + +extern void GLAPIENTRY +_mesa_PixelStoref( GLenum pname, GLfloat param ); + + +#endif diff --git a/src/mesa/main/state.c b/src/mesa/main/state.c index ece1364d75..e285a9e095 100644 --- a/src/mesa/main/state.c +++ b/src/mesa/main/state.c @@ -72,6 +72,7 @@  #include "macros.h"  #include "matrix.h"  #include "pixel.h" +#include "pixelstore.h"  #include "points.h"  #include "polygon.h"  #if FEATURE_ARB_occlusion_query || FEATURE_EXT_timer_query diff --git a/src/mesa/sources b/src/mesa/sources index 7a3b9fb2bc..cec1862474 100644 --- a/src/mesa/sources +++ b/src/mesa/sources @@ -43,6 +43,7 @@ MAIN_SOURCES = \  	main/mipmap.c \  	main/mm.c \  	main/pixel.c \ +	main/pixelstore.c \  	main/points.c \  	main/polygon.c \  	main/queryobj.c \  | 
