Author: jgardou Date: Mon Jun 16 19:16:37 2014 New Revision: 63607
URL: http://svn.reactos.org/svn/reactos?rev=63607&view=rev Log: [OPENGL32/MESA] - Get rid of non-power-of-two and 3D textures - Some cleanup of previous work CORE-7499
Modified: trunk/reactos/dll/opengl/mesa/drivers/common/driverfuncs.c trunk/reactos/dll/opengl/mesa/drivers/common/meta.c trunk/reactos/dll/opengl/mesa/drivers/common/meta.h trunk/reactos/dll/opengl/mesa/main/api_exec.c trunk/reactos/dll/opengl/mesa/main/attrib.c trunk/reactos/dll/opengl/mesa/main/config.h trunk/reactos/dll/opengl/mesa/main/context.c trunk/reactos/dll/opengl/mesa/main/dd.h trunk/reactos/dll/opengl/mesa/main/dispatch.h trunk/reactos/dll/opengl/mesa/main/dlist.c trunk/reactos/dll/opengl/mesa/main/enable.c trunk/reactos/dll/opengl/mesa/main/extensions.c trunk/reactos/dll/opengl/mesa/main/get.c trunk/reactos/dll/opengl/mesa/main/glheader.h trunk/reactos/dll/opengl/mesa/main/mfeatures.h trunk/reactos/dll/opengl/mesa/main/mtypes.h trunk/reactos/dll/opengl/mesa/main/shared.c trunk/reactos/dll/opengl/mesa/main/texformat.c trunk/reactos/dll/opengl/mesa/main/texgetimage.c trunk/reactos/dll/opengl/mesa/main/teximage.c trunk/reactos/dll/opengl/mesa/main/teximage.h trunk/reactos/dll/opengl/mesa/main/texobj.c trunk/reactos/dll/opengl/mesa/main/texparam.c trunk/reactos/dll/opengl/mesa/main/texstate.c trunk/reactos/dll/opengl/mesa/main/texstorage.c trunk/reactos/dll/opengl/mesa/main/texstore.c trunk/reactos/dll/opengl/mesa/main/texstore.h trunk/reactos/dll/opengl/mesa/main/version.c trunk/reactos/dll/opengl/mesa/swrast/s_texfilter.c trunk/reactos/dll/opengl/mesa/swrast/s_texture.c
Modified: trunk/reactos/dll/opengl/mesa/drivers/common/driverfuncs.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/drivers/com... ============================================================================== --- trunk/reactos/dll/opengl/mesa/drivers/common/driverfuncs.c [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/drivers/common/driverfuncs.c [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -84,14 +84,11 @@ driver->ChooseTextureFormat = _mesa_choose_tex_format; driver->TexImage1D = _mesa_store_teximage1d; driver->TexImage2D = _mesa_store_teximage2d; - driver->TexImage3D = _mesa_store_teximage3d; driver->TexSubImage1D = _mesa_store_texsubimage1d; driver->TexSubImage2D = _mesa_store_texsubimage2d; - driver->TexSubImage3D = _mesa_store_texsubimage3d; driver->GetTexImage = _mesa_get_teximage; driver->CopyTexSubImage1D = _mesa_meta_CopyTexSubImage1D; driver->CopyTexSubImage2D = _mesa_meta_CopyTexSubImage2D; - driver->CopyTexSubImage3D = _mesa_meta_CopyTexSubImage3D; driver->TestProxyTexImage = _mesa_test_proxy_teximage; driver->BindTexture = NULL; driver->NewTextureObject = _mesa_new_texture_object;
Modified: trunk/reactos/dll/opengl/mesa/drivers/common/meta.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/drivers/com... ============================================================================== --- trunk/reactos/dll/opengl/mesa/drivers/common/meta.c [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/drivers/common/meta.c [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -152,23 +152,6 @@ GLboolean RasterDiscard; };
-/** - * Temporary texture used for glBlitFramebuffer, glDrawPixels, etc. - * This is currently shared by all the meta ops. But we could create a - * separate one for each of glDrawPixel, glBlitFramebuffer, glCopyPixels, etc. - */ -struct temp_texture -{ - GLuint TexObj; - GLenum Target; /**< GL_TEXTURE_2D */ - GLsizei MinSize; /**< Min texture size to allocate */ - GLsizei MaxSize; /**< Max possible texture size */ - GLboolean NPOT; /**< Non-power of two size OK? */ - GLsizei Width, Height; /**< Current texture size */ - GLenum IntFormat; - GLfloat Sright, Ttop; /**< right, top texcoords */ -}; -
/** * State for glBlitFramebufer() @@ -216,13 +199,9 @@ /** Save stack depth */ GLuint SaveStackDepth;
- struct temp_texture TempTex; - struct copypix_state CopyPix; /**< For _mesa_meta_CopyPixels() */ };
-static void cleanup_temp_texture(struct gl_context *ctx, struct temp_texture *tex); - /** * Initialize meta-ops for a context. * To be called once during context creation. @@ -245,7 +224,6 @@ { GET_CURRENT_CONTEXT(old_context); _mesa_make_current(ctx, NULL, NULL); - cleanup_temp_texture(ctx, &ctx->Meta->TempTex); if (old_context) _mesa_make_current(old_context, old_context->WinSysDrawBuffer, old_context->WinSysReadBuffer); else @@ -382,7 +360,6 @@ ctx->Texture.Unit.TexGenEnabled) { _mesa_set_enable(ctx, GL_TEXTURE_1D, GL_FALSE); _mesa_set_enable(ctx, GL_TEXTURE_2D, GL_FALSE); - _mesa_set_enable(ctx, GL_TEXTURE_3D, GL_FALSE); if (ctx->Extensions.ARB_texture_cube_map) _mesa_set_enable(ctx, GL_TEXTURE_CUBE_MAP, GL_FALSE); _mesa_set_enable(ctx, GL_TEXTURE_GEN_S, GL_FALSE); @@ -659,270 +636,6 @@ _mesa_meta_in_progress(struct gl_context *ctx) { return ctx->Meta->SaveStackDepth != 0; -} - - -/** - * Convert Z from a normalized value in the range [0, 1] to an object-space - * Z coordinate in [-1, +1] so that drawing at the new Z position with the - * default/identity ortho projection results in the original Z value. - * Used by the meta-Clear, Draw/CopyPixels and Bitmap functions where the Z - * value comes from the clear value or raster position. - */ -static INLINE GLfloat -invert_z(GLfloat normZ) -{ - GLfloat objZ = 1.0f - 2.0f * normZ; - return objZ; -} - - -/** - * One-time init for a temp_texture object. - * Choose tex target, compute max tex size, etc. - */ -static void -init_temp_texture(struct gl_context *ctx, struct temp_texture *tex) -{ - /* use 2D texture, NPOT if possible */ - tex->Target = GL_TEXTURE_2D; - tex->MaxSize = 1 << (ctx->Const.MaxTextureLevels - 1); - tex->NPOT = ctx->Extensions.ARB_texture_non_power_of_two; - tex->MinSize = 16; /* 16 x 16 at least */ - assert(tex->MaxSize > 0); - - _mesa_GenTextures(1, &tex->TexObj); -} - -static void -cleanup_temp_texture(struct gl_context *ctx, struct temp_texture *tex) -{ - if (!tex->TexObj) - return; - _mesa_DeleteTextures(1, &tex->TexObj); - tex->TexObj = 0; -} - - -/** - * Return pointer to temp_texture info for non-bitmap ops. - * This does some one-time init if needed. - */ -static struct temp_texture * -get_temp_texture(struct gl_context *ctx) -{ - struct temp_texture *tex = &ctx->Meta->TempTex; - - if (!tex->TexObj) { - init_temp_texture(ctx, tex); - } - - return tex; -} - - -/** - * Compute the width/height of texture needed to draw an image of the - * given size. Return a flag indicating whether the current texture - * can be re-used (glTexSubImage2D) or if a new texture needs to be - * allocated (glTexImage2D). - * Also, compute s/t texcoords for drawing. - * - * \return GL_TRUE if new texture is needed, GL_FALSE otherwise - */ -static GLboolean -alloc_texture(struct temp_texture *tex, - GLsizei width, GLsizei height, GLenum intFormat) -{ - GLboolean newTex = GL_FALSE; - - ASSERT(width <= tex->MaxSize); - ASSERT(height <= tex->MaxSize); - - if (width > tex->Width || - height > tex->Height || - intFormat != tex->IntFormat) { - /* alloc new texture (larger or different format) */ - - if (tex->NPOT) { - /* use non-power of two size */ - tex->Width = MAX2(tex->MinSize, width); - tex->Height = MAX2(tex->MinSize, height); - } - else { - /* find power of two size */ - GLsizei w, h; - w = h = tex->MinSize; - while (w < width) - w *= 2; - while (h < height) - h *= 2; - tex->Width = w; - tex->Height = h; - } - - tex->IntFormat = intFormat; - - newTex = GL_TRUE; - } - - /* compute texcoords */ - tex->Sright = (GLfloat) width / tex->Width; - tex->Ttop = (GLfloat) height / tex->Height; - - return newTex; -} - - -/** - * Setup/load texture for glCopyPixels or glBlitFramebuffer. - */ -static void -setup_copypix_texture(struct temp_texture *tex, - GLboolean newTex, - GLint srcX, GLint srcY, - GLsizei width, GLsizei height, GLenum intFormat, - GLenum filter) -{ - _mesa_BindTexture(tex->Target, tex->TexObj); - _mesa_TexParameteri(tex->Target, GL_TEXTURE_MIN_FILTER, filter); - _mesa_TexParameteri(tex->Target, GL_TEXTURE_MAG_FILTER, filter); - _mesa_TexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); - - /* copy framebuffer image to texture */ - if (newTex) { - /* create new tex image */ - if (tex->Width == width && tex->Height == height) { - /* create new tex with framebuffer data */ - _mesa_CopyTexImage2D(tex->Target, 0, tex->IntFormat, - srcX, srcY, width, height, 0); - } - else { - /* create empty texture */ - _mesa_TexImage2D(tex->Target, 0, tex->IntFormat, - tex->Width, tex->Height, 0, - intFormat, GL_UNSIGNED_BYTE, NULL); - /* load image */ - _mesa_CopyTexSubImage2D(tex->Target, 0, - 0, 0, srcX, srcY, width, height); - } - } - else { - /* replace existing tex image */ - _mesa_CopyTexSubImage2D(tex->Target, 0, - 0, 0, srcX, srcY, width, height); - } -} - -/** - * Meta implementation of ctx->Driver.CopyPixels() in terms - * of texture mapping and polygon rendering and GLSL shaders. - */ -void -_mesa_meta_CopyPixels(struct gl_context *ctx, GLint srcX, GLint srcY, - GLsizei width, GLsizei height, - GLint dstX, GLint dstY, GLenum type) -{ - struct copypix_state *copypix = &ctx->Meta->CopyPix; - struct temp_texture *tex = get_temp_texture(ctx); - struct vertex { - GLfloat x, y, z, s, t; - }; - struct vertex verts[4]; - GLboolean newTex; - GLenum intFormat = GL_RGBA; - - if (type != GL_COLOR || - ctx->_ImageTransferState || - ctx->Fog.Enabled || - width > tex->MaxSize || - height > tex->MaxSize) { - /* XXX avoid this fallback */ - _swrast_CopyPixels(ctx, srcX, srcY, width, height, dstX, dstY, type); - return; - } - - /* Most GL state applies to glCopyPixels, but a there's a few things - * we need to override: - */ - _mesa_meta_begin(ctx, (MESA_META_RASTERIZATION | - MESA_META_TEXTURE | - MESA_META_TRANSFORM | - MESA_META_CLIP | - MESA_META_VERTEX | - MESA_META_VIEWPORT)); - - if (copypix->ArrayObj == 0) { - /* one-time setup */ - - /* create vertex array object */ - _mesa_GenVertexArrays(1, ©pix->ArrayObj); - _mesa_BindVertexArray(copypix->ArrayObj); - - /* create vertex array buffer */ - _mesa_GenBuffersARB(1, ©pix->VBO); - _mesa_BindBufferARB(GL_ARRAY_BUFFER_ARB, copypix->VBO); - _mesa_BufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(verts), - NULL, GL_DYNAMIC_DRAW_ARB); - - /* setup vertex arrays */ - _mesa_VertexPointer(3, GL_FLOAT, sizeof(struct vertex), OFFSET(x)); - _mesa_TexCoordPointer(2, GL_FLOAT, sizeof(struct vertex), OFFSET(s)); - _mesa_EnableClientState(GL_VERTEX_ARRAY); - _mesa_EnableClientState(GL_TEXTURE_COORD_ARRAY); - } - else { - _mesa_BindVertexArray(copypix->ArrayObj); - _mesa_BindBufferARB(GL_ARRAY_BUFFER_ARB, copypix->VBO); - } - - newTex = alloc_texture(tex, width, height, intFormat); - - /* vertex positions, texcoords (after texture allocation!) */ - { - const GLfloat dstX0 = (GLfloat) dstX; - const GLfloat dstY0 = (GLfloat) dstY; - const GLfloat dstX1 = dstX + width * ctx->Pixel.ZoomX; - const GLfloat dstY1 = dstY + height * ctx->Pixel.ZoomY; - const GLfloat z = invert_z(ctx->Current.RasterPos[2]); - - verts[0].x = dstX0; - verts[0].y = dstY0; - verts[0].z = z; - verts[0].s = 0.0F; - verts[0].t = 0.0F; - verts[1].x = dstX1; - verts[1].y = dstY0; - verts[1].z = z; - verts[1].s = tex->Sright; - verts[1].t = 0.0F; - verts[2].x = dstX1; - verts[2].y = dstY1; - verts[2].z = z; - verts[2].s = tex->Sright; - verts[2].t = tex->Ttop; - verts[3].x = dstX0; - verts[3].y = dstY1; - verts[3].z = z; - verts[3].s = 0.0F; - verts[3].t = tex->Ttop; - - /* upload new vertex data */ - _mesa_BufferSubDataARB(GL_ARRAY_BUFFER_ARB, 0, sizeof(verts), verts); - } - - /* Alloc/setup texture */ - setup_copypix_texture(tex, newTex, srcX, srcY, width, height, - GL_RGBA, GL_NEAREST); - - _mesa_set_enable(ctx, tex->Target, GL_TRUE); - - /* draw textured quad */ - _mesa_DrawArrays(GL_TRIANGLE_FAN, 0, 4); - - _mesa_set_enable(ctx, tex->Target, GL_FALSE); - - _mesa_meta_end(ctx); }
@@ -1031,11 +744,6 @@ xoffset, width, format, type, buf, &ctx->Unpack); } - else if (target == GL_TEXTURE_3D) { - ctx->Driver.TexSubImage3D(ctx, texImage, - xoffset, yoffset, zoffset, width, height, 1, - format, type, buf, &ctx->Unpack); - } else { ctx->Driver.TexSubImage2D(ctx, texImage, xoffset, yoffset, width, height, @@ -1073,15 +781,3 @@ rb, x, y, width, height); }
- -void -_mesa_meta_CopyTexSubImage3D(struct gl_context *ctx, - struct gl_texture_image *texImage, - GLint xoffset, GLint yoffset, GLint zoffset, - struct gl_renderbuffer *rb, - GLint x, GLint y, - GLsizei width, GLsizei height) -{ - copy_tex_sub_image(ctx, 3, texImage, xoffset, yoffset, zoffset, - rb, x, y, width, height); -}
Modified: trunk/reactos/dll/opengl/mesa/drivers/common/meta.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/drivers/com... ============================================================================== --- trunk/reactos/dll/opengl/mesa/drivers/common/meta.h [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/drivers/common/meta.h [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -88,12 +88,4 @@ GLint x, GLint y, GLsizei width, GLsizei height);
-extern void -_mesa_meta_CopyTexSubImage3D(struct gl_context *ctx, - struct gl_texture_image *texImage, - GLint xoffset, GLint yoffset, GLint zoffset, - struct gl_renderbuffer *rb, - GLint x, GLint y, - GLsizei width, GLsizei height); - #endif /* META_H */
Modified: trunk/reactos/dll/opengl/mesa/main/api_exec.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/main/api_ex... ============================================================================== --- trunk/reactos/dll/opengl/mesa/main/api_exec.c [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/main/api_exec.c [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -208,13 +208,6 @@ SET_VertexPointer(exec, _mesa_VertexPointer); #endif
- /* 1.2 */ -#if _HAVE_FULL_GL - SET_CopyTexSubImage3D(exec, _mesa_CopyTexSubImage3D); - SET_TexImage3D(exec, _mesa_TexImage3D); - SET_TexSubImage3D(exec, _mesa_TexSubImage3D); -#endif - /* OpenGL 1.2 GL_ARB_imaging */ SET_BlendColor(exec, _mesa_BlendColor); SET_BlendEquation(exec, _mesa_BlendEquation); @@ -232,13 +225,6 @@ /* 3. GL_EXT_polygon_offset */ #if _HAVE_FULL_GL SET_PolygonOffsetEXT(exec, _mesa_PolygonOffsetEXT); -#endif - - /* 6. GL_EXT_texture3d */ -#if 0 -/* SET_CopyTexSubImage3DEXT(exec, _mesa_CopyTexSubImage3D); */ -/* SET_TexImage3DEXT(exec, _mesa_TexImage3DEXT); */ -/* SET_TexSubImage3DEXT(exec, _mesa_TexSubImage3D); */ #endif
/* 11. GL_EXT_histogram */
Modified: trunk/reactos/dll/opengl/mesa/main/attrib.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/main/attrib... ============================================================================== --- trunk/reactos/dll/opengl/mesa/main/attrib.c [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/main/attrib.c [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -529,7 +529,6 @@ if (ctx->Texture.Unit.Enabled != enabled) { _mesa_set_enable(ctx, GL_TEXTURE_1D, !!(enabled & TEXTURE_1D_BIT)); _mesa_set_enable(ctx, GL_TEXTURE_2D, !!(enabled & TEXTURE_2D_BIT)); - _mesa_set_enable(ctx, GL_TEXTURE_3D, !!(enabled & TEXTURE_3D_BIT)); if (ctx->Extensions.ARB_texture_cube_map) { _mesa_set_enable(ctx, GL_TEXTURE_CUBE_MAP, !!(enabled & TEXTURE_CUBE_BIT)); @@ -561,7 +560,6 @@
_mesa_set_enable(ctx, GL_TEXTURE_1D, !!(unit->Enabled & TEXTURE_1D_BIT)); _mesa_set_enable(ctx, GL_TEXTURE_2D, !!(unit->Enabled & TEXTURE_2D_BIT)); - _mesa_set_enable(ctx, GL_TEXTURE_3D, !!(unit->Enabled & TEXTURE_3D_BIT));
_mesa_TexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, unit->EnvMode); _mesa_TexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, unit->EnvColor);
Modified: trunk/reactos/dll/opengl/mesa/main/config.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/main/config... ============================================================================== --- trunk/reactos/dll/opengl/mesa/main/config.h [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/main/config.h [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -135,7 +135,6 @@ #undef MAX_WIDTH #undef MAX_HEIGHT #define MAX_TEXTURE_LEVELS 13 -#define MAX_3D_TEXTURE_LEVELS 9 #define MAX_CUBE_TEXTURE_LEVELS 13 #define MAX_WIDTH 4096 #define MAX_HEIGHT 4096 @@ -154,9 +153,6 @@ #define MAX_CONVOLUTION_WIDTH 9 /** Max convolution filter height */ #define MAX_CONVOLUTION_HEIGHT 9 - -/** For GL_ARB_texture_compression */ -#define MAX_COMPRESSED_TEXTURE_FORMATS 25
/** For GL_EXT_texture_filter_anisotropic */ #define MAX_TEXTURE_MAX_ANISOTROPY 16.0
Modified: trunk/reactos/dll/opengl/mesa/main/context.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/main/contex... ============================================================================== --- trunk/reactos/dll/opengl/mesa/main/context.c [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/main/context.c [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -392,7 +392,6 @@ /* Constants, may be overriden (usually only reduced) by device drivers */ ctx->Const.MaxTextureMbytes = MAX_TEXTURE_MBYTES; ctx->Const.MaxTextureLevels = MAX_TEXTURE_LEVELS; - ctx->Const.Max3DTextureLevels = MAX_3D_TEXTURE_LEVELS; ctx->Const.MaxCubeTextureLevels = MAX_CUBE_TEXTURE_LEVELS; ctx->Const.MaxTextureMaxAnisotropy = MAX_TEXTURE_MAX_ANISOTROPY; ctx->Const.MaxArrayLockSize = MAX_ARRAY_LOCK_SIZE;
Modified: trunk/reactos/dll/opengl/mesa/main/dd.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/main/dd.h?r... ============================================================================== --- trunk/reactos/dll/opengl/mesa/main/dd.h [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/main/dd.h [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -220,18 +220,6 @@ GLint width, GLint height, GLint border, GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing); - - /** - * Called by glTexImage3D(). - * - * \sa dd_function_table::TexImage1D. - */ - void (*TexImage3D)(struct gl_context *ctx, - struct gl_texture_image *texImage, - GLint internalFormat, - GLint width, GLint height, GLint depth, GLint border, - GLenum format, GLenum type, const GLvoid *pixels, - const struct gl_pixelstore_attrib *packing);
/** * Called by glTexSubImage1D(). Replace a subset of the target texture @@ -257,19 +245,6 @@ GLenum format, GLenum type, const GLvoid *pixels, const struct gl_pixelstore_attrib *packing); - - /** - * Called by glTexSubImage3D(). - * - * \sa dd_function_table::TexSubImage1D. - */ - void (*TexSubImage3D)(struct gl_context *ctx, - struct gl_texture_image *texImage, - GLint xoffset, GLint yoffset, GLint zoffset, - GLsizei width, GLsizei height, GLint depth, - GLenum format, GLenum type, - const GLvoid *pixels, - const struct gl_pixelstore_attrib *packing);
/** @@ -299,16 +274,6 @@ GLsizei width, GLsizei height);
/** - * Called by glCopyTexSubImage3D() and glCopyTexImage3D(). - */ - void (*CopyTexSubImage3D)(struct gl_context *ctx, - struct gl_texture_image *texImage, - GLint xoffset, GLint yoffset, GLint zoffset, - struct gl_renderbuffer *rb, - GLint x, GLint y, - GLsizei width, GLsizei height); - - /** * Called by glTexImage[123]D when user specifies a proxy texture * target. * @@ -349,18 +314,6 @@ GLsizei imageSize, const GLvoid *data);
/** - * Called by glCompressedTexImage3D(). - * - * \sa dd_function_table::CompressedTexImage3D. - */ - void (*CompressedTexImage3D)(struct gl_context *ctx, - struct gl_texture_image *texImage, - GLint internalFormat, - GLsizei width, GLsizei height, GLsizei depth, - GLint border, - GLsizei imageSize, const GLvoid *data); - - /** * Called by glCompressedTexSubImage1D(). */ void (*CompressedTexSubImage1D)(struct gl_context *ctx, @@ -376,16 +329,6 @@ struct gl_texture_image *texImage, GLint xoffset, GLint yoffset, GLsizei width, GLint height, - GLenum format, - GLsizei imageSize, const GLvoid *data); - - /** - * Called by glCompressedTexSubImage3D(). - */ - void (*CompressedTexSubImage3D)(struct gl_context *ctx, - struct gl_texture_image *texImage, - GLint xoffset, GLint yoffset, GLint zoffset, - GLsizei width, GLint height, GLint depth, GLenum format, GLsizei imageSize, const GLvoid *data); /*@}*/
Modified: trunk/reactos/dll/opengl/mesa/main/dispatch.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/main/dispat... ============================================================================== --- trunk/reactos/dll/opengl/mesa/main/dispatch.h [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/main/dispatch.h [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -438,9 +438,6 @@ #define _gloffset_Minmax 368 #define _gloffset_ResetHistogram 369 #define _gloffset_ResetMinmax 370 -#define _gloffset_TexImage3D 371 -#define _gloffset_TexSubImage3D 372 -#define _gloffset_CopyTexSubImage3D 373
#if !FEATURE_remap_table
@@ -5173,39 +5170,6 @@ SET_by_offset(disp, _gloffset_ResetMinmax, fn); }
-typedef void (GLAPIENTRYP _glptr_TexImage3D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); -#define CALL_TexImage3D(disp, parameters) \ - (* GET_TexImage3D(disp)) parameters -static inline _glptr_TexImage3D GET_TexImage3D(struct _glapi_table *disp) { - return (_glptr_TexImage3D) (GET_by_offset(disp, _gloffset_TexImage3D)); -} - -static inline void SET_TexImage3D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *)) { - SET_by_offset(disp, _gloffset_TexImage3D, fn); -} - -typedef void (GLAPIENTRYP _glptr_TexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -#define CALL_TexSubImage3D(disp, parameters) \ - (* GET_TexSubImage3D(disp)) parameters -static inline _glptr_TexSubImage3D GET_TexSubImage3D(struct _glapi_table *disp) { - return (_glptr_TexSubImage3D) (GET_by_offset(disp, _gloffset_TexSubImage3D)); -} - -static inline void SET_TexSubImage3D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *)) { - SET_by_offset(disp, _gloffset_TexSubImage3D, fn); -} - -typedef void (GLAPIENTRYP _glptr_CopyTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); -#define CALL_CopyTexSubImage3D(disp, parameters) \ - (* GET_CopyTexSubImage3D(disp)) parameters -static inline _glptr_CopyTexSubImage3D GET_CopyTexSubImage3D(struct _glapi_table *disp) { - return (_glptr_CopyTexSubImage3D) (GET_by_offset(disp, _gloffset_CopyTexSubImage3D)); -} - -static inline void SET_CopyTexSubImage3D(struct _glapi_table *disp, void (GLAPIENTRYP fn)(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei)) { - SET_by_offset(disp, _gloffset_CopyTexSubImage3D, fn); -} - typedef const GLubyte * (GLAPIENTRYP _glptr_GetStringi)(GLenum, GLuint); #define CALL_GetStringi(disp, parameters) \ (* GET_GetStringi(disp)) parameters
Modified: trunk/reactos/dll/opengl/mesa/main/dlist.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/main/dlist.... ============================================================================== --- trunk/reactos/dll/opengl/mesa/main/dlist.c [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/main/dlist.c [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -179,7 +179,6 @@ OPCODE_COPY_TEX_IMAGE2D, OPCODE_COPY_TEX_SUB_IMAGE1D, OPCODE_COPY_TEX_SUB_IMAGE2D, - OPCODE_COPY_TEX_SUB_IMAGE3D, OPCODE_CULL_FACE, OPCODE_DEPTH_FUNC, OPCODE_DEPTH_MASK, @@ -248,10 +247,8 @@ OPCODE_TEXPARAMETER, OPCODE_TEX_IMAGE1D, OPCODE_TEX_IMAGE2D, - OPCODE_TEX_IMAGE3D, OPCODE_TEX_SUB_IMAGE1D, OPCODE_TEX_SUB_IMAGE2D, - OPCODE_TEX_SUB_IMAGE3D, OPCODE_TRANSLATE, OPCODE_VIEWPORT, OPCODE_WINDOW_POS, @@ -502,20 +499,12 @@ free(n[9].data); n += InstSize[n[0].opcode]; break; - case OPCODE_TEX_IMAGE3D: - free(n[10].data); - n += InstSize[n[0].opcode]; - break; case OPCODE_TEX_SUB_IMAGE1D: free(n[7].data); n += InstSize[n[0].opcode]; break; case OPCODE_TEX_SUB_IMAGE2D: free(n[9].data); - n += InstSize[n[0].opcode]; - break; - case OPCODE_TEX_SUB_IMAGE3D: - free(n[11].data); n += InstSize[n[0].opcode]; break; case OPCODE_CONTINUE: @@ -1602,34 +1591,6 @@ } if (ctx->ExecuteFlag) { CALL_CopyTexSubImage2D(ctx->Exec, (target, level, xoffset, yoffset, - x, y, width, height)); - } -} - - -static void GLAPIENTRY -save_CopyTexSubImage3D(GLenum target, GLint level, - GLint xoffset, GLint yoffset, GLint zoffset, - GLint x, GLint y, GLsizei width, GLint height) -{ - GET_CURRENT_CONTEXT(ctx); - Node *n; - ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx); - n = alloc_instruction(ctx, OPCODE_COPY_TEX_SUB_IMAGE3D, 9); - if (n) { - n[1].e = target; - n[2].i = level; - n[3].i = xoffset; - n[4].i = yoffset; - n[5].i = zoffset; - n[6].i = x; - n[7].i = y; - n[8].i = width; - n[9].i = height; - } - if (ctx->ExecuteFlag) { - CALL_CopyTexSubImage3D(ctx->Exec, (target, level, - xoffset, yoffset, zoffset, x, y, width, height)); } } @@ -3520,46 +3481,6 @@
static void GLAPIENTRY -save_TexImage3D(GLenum target, - GLint level, GLint internalFormat, - GLsizei width, GLsizei height, GLsizei depth, - GLint border, - GLenum format, GLenum type, const GLvoid * pixels) -{ - GET_CURRENT_CONTEXT(ctx); - if (target == GL_PROXY_TEXTURE_3D) { - /* don't compile, execute immediately */ - CALL_TexImage3D(ctx->Exec, (target, level, internalFormat, width, - height, depth, border, format, type, - pixels)); - } - else { - Node *n; - ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx); - n = alloc_instruction(ctx, OPCODE_TEX_IMAGE3D, 10); - if (n) { - n[1].e = target; - n[2].i = level; - n[3].i = (GLint) internalFormat; - n[4].i = (GLint) width; - n[5].i = (GLint) height; - n[6].i = (GLint) depth; - n[7].i = border; - n[8].e = format; - n[9].e = type; - n[10].data = unpack_image(ctx, 3, width, height, depth, format, type, - pixels, &ctx->Unpack); - } - if (ctx->ExecuteFlag) { - CALL_TexImage3D(ctx->Exec, (target, level, internalFormat, width, - height, depth, border, format, type, - pixels)); - } - } -} - - -static void GLAPIENTRY save_TexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid * pixels) @@ -3614,41 +3535,6 @@ if (ctx->ExecuteFlag) { CALL_TexSubImage2D(ctx->Exec, (target, level, xoffset, yoffset, width, height, format, type, pixels)); - } -} - - -static void GLAPIENTRY -save_TexSubImage3D(GLenum target, GLint level, - GLint xoffset, GLint yoffset, GLint zoffset, - GLsizei width, GLsizei height, GLsizei depth, - GLenum format, GLenum type, const GLvoid * pixels) -{ - GET_CURRENT_CONTEXT(ctx); - Node *n; - - ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx); - - n = alloc_instruction(ctx, OPCODE_TEX_SUB_IMAGE3D, 11); - if (n) { - n[1].e = target; - n[2].i = level; - n[3].i = xoffset; - n[4].i = yoffset; - n[5].i = zoffset; - n[6].i = (GLint) width; - n[7].i = (GLint) height; - n[8].i = (GLint) depth; - n[9].e = format; - n[10].e = type; - n[11].data = unpack_image(ctx, 3, width, height, depth, format, type, - pixels, &ctx->Unpack); - } - if (ctx->ExecuteFlag) { - CALL_TexSubImage3D(ctx->Exec, (target, level, - xoffset, yoffset, zoffset, - width, height, depth, format, type, - pixels)); } }
@@ -4980,11 +4866,6 @@ n[4].i, n[5].i, n[6].i, n[7].i, n[8].i)); break; - case OPCODE_COPY_TEX_SUB_IMAGE3D: - CALL_CopyTexSubImage3D(ctx->Exec, (n[1].e, n[2].i, n[3].i, - n[4].i, n[5].i, n[6].i, n[7].i, - n[8].i, n[9].i)); - break; case OPCODE_CULL_FACE: CALL_CullFace(ctx->Exec, (n[1].e)); break; @@ -5314,23 +5195,6 @@ ctx->Unpack = save; /* restore */ } break; - case OPCODE_TEX_IMAGE3D: - { - const struct gl_pixelstore_attrib save = ctx->Unpack; - ctx->Unpack = ctx->DefaultPacking; - CALL_TexImage3D(ctx->Exec, (n[1].e, /* target */ - n[2].i, /* level */ - n[3].i, /* components */ - n[4].i, /* width */ - n[5].i, /* height */ - n[6].i, /* depth */ - n[7].e, /* border */ - n[8].e, /* format */ - n[9].e, /* type */ - n[10].data)); - ctx->Unpack = save; /* restore */ - } - break; case OPCODE_TEX_SUB_IMAGE1D: { const struct gl_pixelstore_attrib save = ctx->Unpack; @@ -5349,17 +5213,6 @@ n[4].i, n[5].e, n[6].i, n[7].e, n[8].e, n[9].data)); - ctx->Unpack = save; /* restore */ - } - break; - case OPCODE_TEX_SUB_IMAGE3D: - { - const struct gl_pixelstore_attrib save = ctx->Unpack; - ctx->Unpack = ctx->DefaultPacking; - CALL_TexSubImage3D(ctx->Exec, (n[1].e, n[2].i, n[3].i, - n[4].i, n[5].i, n[6].i, n[7].i, - n[8].i, n[9].e, n[10].e, - n[11].data)); ctx->Unpack = save; /* restore */ } break; @@ -6729,11 +6582,6 @@ SET_TexSubImage2D(table, save_TexSubImage2D); SET_VertexPointer(table, exec_VertexPointer);
- /* GL 1.2 */ - SET_CopyTexSubImage3D(table, save_CopyTexSubImage3D); - SET_TexImage3D(table, save_TexImage3D); - SET_TexSubImage3D(table, save_TexSubImage3D); - /* GL_ARB_imaging */ /* Not all are supported */ SET_BlendColor(table, save_BlendColor); @@ -6779,13 +6627,6 @@ /* 3. GL_EXT_polygon_offset */ SET_PolygonOffsetEXT(table, save_PolygonOffsetEXT);
- /* 6. GL_EXT_texture3d */ -#if 0 - SET_CopyTexSubImage3DEXT(table, save_CopyTexSubImage3D); - SET_TexImage3DEXT(table, save_TexImage3DEXT); - SET_TexSubImage3DEXT(table, save_TexSubImage3D); -#endif - /* 14. GL_SGI_color_table */ #if 0 SET_ColorTableSGI(table, save_ColorTable);
Modified: trunk/reactos/dll/opengl/mesa/main/enable.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/main/enable... ============================================================================== --- trunk/reactos/dll/opengl/mesa/main/enable.c [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/main/enable.c [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -565,11 +565,6 @@ break; case GL_TEXTURE_2D: if (!enable_texture(ctx, state, TEXTURE_2D_BIT)) { - return; - } - break; - case GL_TEXTURE_3D: - if (!enable_texture(ctx, state, TEXTURE_3D_BIT)) { return; } break; @@ -886,8 +881,6 @@ return is_texture_enabled(ctx, TEXTURE_1D_BIT); case GL_TEXTURE_2D: return is_texture_enabled(ctx, TEXTURE_2D_BIT); - case GL_TEXTURE_3D: - return is_texture_enabled(ctx, TEXTURE_3D_BIT); case GL_TEXTURE_GEN_S: case GL_TEXTURE_GEN_T: case GL_TEXTURE_GEN_R:
Modified: trunk/reactos/dll/opengl/mesa/main/extensions.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/main/extens... ============================================================================== --- trunk/reactos/dll/opengl/mesa/main/extensions.c [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/main/extensions.c [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -71,7 +71,6 @@ { "GL_ARB_texture_env_crossbar", o(ARB_texture_env_crossbar), 2001 }, { "GL_ARB_texture_env_dot3", o(ARB_texture_env_dot3), 2001 }, { "GL_ARB_texture_mirrored_repeat", o(dummy_true), 2001 }, - { "GL_ARB_texture_non_power_of_two", o(ARB_texture_non_power_of_two), 2003 }, { "GL_ARB_texture_storage", o(ARB_texture_storage), 2011 }, { "GL_ARB_transpose_matrix", o(ARB_transpose_matrix), 1999 }, { "GL_ARB_vertex_array_object", o(ARB_vertex_array_object), 2006 }, @@ -206,7 +205,6 @@ ctx->Extensions.ARB_texture_env_crossbar = GL_TRUE; ctx->Extensions.ARB_texture_env_dot3 = GL_TRUE; /*ctx->Extensions.ARB_texture_float = GL_TRUE;*/ - ctx->Extensions.ARB_texture_non_power_of_two = GL_TRUE; ctx->Extensions.ARB_texture_storage = GL_TRUE; ctx->Extensions.ARB_vertex_array_object = GL_TRUE; ctx->Extensions.APPLE_vertex_array_object = GL_TRUE; @@ -234,9 +232,6 @@ ctx->Extensions.NV_point_sprite = GL_TRUE; ctx->Extensions.NV_texture_env_combine4 = GL_TRUE; /*ctx->Extensions.NV_texgen_reflection = GL_TRUE;*/ -#if FEATURE_texture_fxt1 - _mesa_enable_extension(ctx, "GL_3DFX_texture_compression_FXT1"); -#endif }
@@ -293,7 +288,6 @@ { ctx->Extensions.ARB_point_sprite = GL_TRUE; ctx->Extensions.EXT_blend_equation_separate = GL_TRUE; - ctx->Extensions.ARB_texture_non_power_of_two = GL_TRUE; }
Modified: trunk/reactos/dll/opengl/mesa/main/get.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/main/get.c?... ============================================================================== --- trunk/reactos/dll/opengl/mesa/main/get.c [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/main/get.c [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -356,10 +356,6 @@ * defined identically to GL_BLEND_EQUATION. */ { GL_BLEND_EQUATION, CONTEXT_ENUM(Color.EquationRGB), NO_EXTRA }, { GL_BLEND_EQUATION_ALPHA_EXT, CONTEXT_ENUM(Color.EquationA), NO_EXTRA }, - - /* GL_ARB_texture_compression */ - { GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB, LOC_CUSTOM, TYPE_INT, 0, NO_EXTRA }, - { GL_COMPRESSED_TEXTURE_FORMATS_ARB, LOC_CUSTOM, TYPE_INT_N, 0, NO_EXTRA },
/* GL_ARB_multisample */ { GL_SAMPLE_ALPHA_TO_COVERAGE_ARB, @@ -511,11 +507,6 @@ extra_EXT_texture_filter_anisotropic },
{ GL_BLEND_COLOR_EXT, LOC_CUSTOM, TYPE_FLOATN_4, 0, NO_EXTRA }, - - /* OES_texture_3D */ - { GL_TEXTURE_BINDING_3D, LOC_CUSTOM, TYPE_INT, TEXTURE_3D_INDEX, NO_EXTRA }, - { GL_MAX_3D_TEXTURE_SIZE, LOC_CUSTOM, TYPE_INT, - offsetof(struct gl_context, Const.Max3DTextureLevels), NO_EXTRA },
{ GL_ACCUM_RED_BITS, BUFFER_INT(Visual.accumRedBits), NO_EXTRA }, { GL_ACCUM_GREEN_BITS, BUFFER_INT(Visual.accumGreenBits), NO_EXTRA }, @@ -638,7 +629,6 @@ { GL_STEREO, BUFFER_INT(Visual.stereoMode), NO_EXTRA },
{ GL_TEXTURE_1D, LOC_CUSTOM, TYPE_BOOLEAN, NO_OFFSET, NO_EXTRA }, - { GL_TEXTURE_3D, LOC_CUSTOM, TYPE_BOOLEAN, NO_OFFSET, NO_EXTRA },
{ GL_TEXTURE_BINDING_1D, LOC_CUSTOM, TYPE_INT, TEXTURE_1D_INDEX, NO_EXTRA },
@@ -882,7 +872,6 @@ switch (d->pname) { case GL_TEXTURE_1D: case GL_TEXTURE_2D: - case GL_TEXTURE_3D: case GL_TEXTURE_CUBE_MAP_ARB: v->value_bool = _mesa_IsEnabled(d->pname); break;
Modified: trunk/reactos/dll/opengl/mesa/main/glheader.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/main/glhead... ============================================================================== --- trunk/reactos/dll/opengl/mesa/main/glheader.h [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/main/glheader.h [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -153,11 +153,6 @@ #define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD #endif
-#ifndef GL_ATI_texture_compression_3dc -#define GL_ATI_texture_compression_3dc 1 -#define GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI 0x8837 -#endif -
/** * Internal token to represent a GLSL shader program (a collection of
Modified: trunk/reactos/dll/opengl/mesa/main/mfeatures.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/main/mfeatu... ============================================================================== --- trunk/reactos/dll/opengl/mesa/main/mfeatures.h [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/main/mfeatures.h [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -103,13 +103,9 @@ #define FEATURE_pixel_transfer FEATURE_GL #define FEATURE_queryobj FEATURE_GL #define FEATURE_rastpos FEATURE_GL -#define FEATURE_texture_fxt1 FEATURE_GL -#define FEATURE_texture_s3tc FEATURE_GL
#define FEATURE_extra_context_init FEATURE_ES #define FEATURE_point_size_array FEATURE_ES - -#define FEATURE_es2_glsl FEATURE_ES2
#define FEATURE_ARB_fragment_program 1 #define FEATURE_ARB_vertex_program 1
Modified: trunk/reactos/dll/opengl/mesa/main/mtypes.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/main/mtypes... ============================================================================== --- trunk/reactos/dll/opengl/mesa/main/mtypes.h [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/main/mtypes.h [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -833,7 +833,6 @@ typedef enum { TEXTURE_CUBE_INDEX, - TEXTURE_3D_INDEX, TEXTURE_2D_INDEX, TEXTURE_1D_INDEX, NUM_TEXTURE_TARGETS @@ -846,7 +845,6 @@ */ /*@{*/ #define TEXTURE_CUBE_BIT (1 << TEXTURE_CUBE_INDEX) -#define TEXTURE_3D_BIT (1 << TEXTURE_3D_INDEX) #define TEXTURE_2D_BIT (1 << TEXTURE_2D_INDEX) #define TEXTURE_1D_BIT (1 << TEXTURE_1D_INDEX) /*@}*/ @@ -1512,8 +1510,7 @@ struct gl_constants { GLint MaxTextureMbytes; /**< Max memory per image, in MB */ - GLint MaxTextureLevels; /**< Max mipmap levels. */ - GLint Max3DTextureLevels; /**< Max mipmap levels for 3D textures */ + GLint MaxTextureLevels; /**< Max mipmap levels. */ GLint MaxCubeTextureLevels; /**< Max mipmap levels for cube textures */ GLfloat MaxTextureMaxAnisotropy; /**< GL_EXT_texture_filter_anisotropic */
@@ -1583,7 +1580,6 @@ GLboolean ARB_texture_env_combine; GLboolean ARB_texture_env_crossbar; GLboolean ARB_texture_env_dot3; - GLboolean ARB_texture_non_power_of_two; GLboolean ARB_texture_storage; GLboolean ARB_transpose_matrix; GLboolean ARB_vertex_array_object;
Modified: trunk/reactos/dll/opengl/mesa/main/shared.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/main/shared... ============================================================================== --- trunk/reactos/dll/opengl/mesa/main/shared.c [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/main/shared.c [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -63,7 +63,6 @@ /* NOTE: the order of these enums matches the TEXTURE_x_INDEX values */ static const GLenum targets[NUM_TEXTURE_TARGETS] = { GL_TEXTURE_CUBE_MAP, - GL_TEXTURE_3D, GL_TEXTURE_2D, GL_TEXTURE_1D };
Modified: trunk/reactos/dll/opengl/mesa/main/texformat.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/main/texfor... ============================================================================== --- trunk/reactos/dll/opengl/mesa/main/texformat.c [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/main/texformat.c [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -96,7 +96,6 @@ case GL_RGBA12: case GL_RGBA16: RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_16); - RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_16); RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA8888); RETURN_IF_SUPPORTED(MESA_FORMAT_ARGB8888); break;
Modified: trunk/reactos/dll/opengl/mesa/main/texgetimage.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/main/texget... ============================================================================== --- trunk/reactos/dll/opengl/mesa/main/texgetimage.c [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/main/texgetimage.c [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -397,9 +397,6 @@ case GL_TEXTURE_1D: dimensions = 1; break; - case GL_TEXTURE_3D: - dimensions = 3; - break; default: dimensions = 2; }
Modified: trunk/reactos/dll/opengl/mesa/main/teximage.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/main/texima... ============================================================================== --- trunk/reactos/dll/opengl/mesa/main/teximage.c [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/main/teximage.c [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -279,7 +279,6 @@
return (target == GL_PROXY_TEXTURE_1D || target == GL_PROXY_TEXTURE_2D || - target == GL_PROXY_TEXTURE_3D || target == GL_PROXY_TEXTURE_CUBE_MAP_ARB); }
@@ -297,9 +296,6 @@ case GL_TEXTURE_2D: case GL_PROXY_TEXTURE_2D: return GL_PROXY_TEXTURE_2D; - case GL_TEXTURE_3D: - case GL_PROXY_TEXTURE_3D: - return GL_PROXY_TEXTURE_3D; case GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB: case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB: case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB: @@ -339,10 +335,6 @@ return ctx->Texture.Unit.CurrentTex[TEXTURE_2D_INDEX]; case GL_PROXY_TEXTURE_2D: return ctx->Texture.ProxyTex[TEXTURE_2D_INDEX]; - case GL_TEXTURE_3D: - return ctx->Texture.Unit.CurrentTex[TEXTURE_3D_INDEX]; - case GL_PROXY_TEXTURE_3D: - return ctx->Texture.ProxyTex[TEXTURE_3D_INDEX]; default: _mesa_problem(NULL, "bad target in _mesa_select_tex_object()"); return NULL; @@ -432,11 +424,6 @@ return NULL; texIndex = TEXTURE_2D_INDEX; break; - case GL_PROXY_TEXTURE_3D: - if (level >= ctx->Const.Max3DTextureLevels) - return NULL; - texIndex = TEXTURE_3D_INDEX; - break; case GL_PROXY_TEXTURE_CUBE_MAP: if (level >= ctx->Const.MaxCubeTextureLevels) return NULL; @@ -481,9 +468,6 @@ case GL_TEXTURE_2D: case GL_PROXY_TEXTURE_2D: return ctx->Const.MaxTextureLevels; - case GL_TEXTURE_3D: - case GL_PROXY_TEXTURE_3D: - return ctx->Const.Max3DTextureLevels; case GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB: case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB: case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB: @@ -520,9 +504,6 @@ case GL_TEXTURE_CUBE_MAP_POSITIVE_Z: case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: return 2; - case GL_TEXTURE_3D: - case GL_PROXY_TEXTURE_3D: - return 3; default: _mesa_problem(NULL, "invalid target 0x%x in get_texture_dimensions()", target); @@ -683,13 +664,6 @@ img->Depth2 = 1; img->DepthLog2 = 0; break; - case GL_TEXTURE_3D: - case GL_PROXY_TEXTURE_3D: - img->Height2 = height - 2 * border; /* == 1 << img->HeightLog2; */ - img->HeightLog2 = _mesa_logbase2(img->Height2); - img->Depth2 = depth - 2 * border; /* == 1 << img->DepthLog2; */ - img->DepthLog2 = _mesa_logbase2(img->Depth2); - break; default: _mesa_problem(NULL, "invalid target 0x%x in _mesa_init_teximage_fields()", target); @@ -760,10 +734,8 @@ return GL_FALSE; if (level >= ctx->Const.MaxTextureLevels) return GL_FALSE; - if (!ctx->Extensions.ARB_texture_non_power_of_two) { - if (width > 0 && !_mesa_is_pow_two(width - 2 * border)) - return GL_FALSE; - } + if (width > 0 && !_mesa_is_pow_two(width - 2 * border)) + return GL_FALSE; return GL_TRUE;
case GL_PROXY_TEXTURE_2D: @@ -774,32 +746,10 @@ return GL_FALSE; if (level >= ctx->Const.MaxTextureLevels) return GL_FALSE; - if (!ctx->Extensions.ARB_texture_non_power_of_two) { - if (width > 0 && !_mesa_is_pow_two(width - 2 * border)) - return GL_FALSE; - if (height > 0 && !_mesa_is_pow_two(height - 2 * border)) - return GL_FALSE; - } - return GL_TRUE; - - case GL_PROXY_TEXTURE_3D: - maxSize = 1 << (ctx->Const.Max3DTextureLevels - 1); - if (width < 2 * border || width > 2 * border + maxSize) + if (width > 0 && !_mesa_is_pow_two(width - 2 * border)) return GL_FALSE; - if (height < 2 * border || height > 2 * border + maxSize) + if (height > 0 && !_mesa_is_pow_two(height - 2 * border)) return GL_FALSE; - if (depth < 2 * border || depth > 2 * border + maxSize) - return GL_FALSE; - if (level >= ctx->Const.Max3DTextureLevels) - return GL_FALSE; - if (!ctx->Extensions.ARB_texture_non_power_of_two) { - if (width > 0 && !_mesa_is_pow_two(width - 2 * border)) - return GL_FALSE; - if (height > 0 && !_mesa_is_pow_two(height - 2 * border)) - return GL_FALSE; - if (depth > 0 && !_mesa_is_pow_two(depth - 2 * border)) - return GL_FALSE; - } return GL_TRUE;
case GL_PROXY_TEXTURE_CUBE_MAP_ARB: @@ -810,12 +760,10 @@ return GL_FALSE; if (level >= ctx->Const.MaxCubeTextureLevels) return GL_FALSE; - if (!ctx->Extensions.ARB_texture_non_power_of_two) { - if (width > 0 && !_mesa_is_pow_two(width - 2 * border)) - return GL_FALSE; - if (height > 0 && !_mesa_is_pow_two(height - 2 * border)) - return GL_FALSE; - } + if (width > 0 && !_mesa_is_pow_two(width - 2 * border)) + return GL_FALSE; + if (height > 0 && !_mesa_is_pow_two(height - 2 * border)) + return GL_FALSE; return GL_TRUE;
default: @@ -870,14 +818,6 @@ case GL_TEXTURE_CUBE_MAP_POSITIVE_Z: case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z: return ctx->Extensions.ARB_texture_cube_map; - default: - return GL_FALSE; - } - case 3: - switch (target) { - case GL_TEXTURE_3D: - case GL_PROXY_TEXTURE_3D: - return GL_TRUE; default: return GL_FALSE; } @@ -914,13 +854,6 @@ default: return GL_FALSE; } - case 3: - switch (target) { - case GL_TEXTURE_3D: - return GL_TRUE; - default: - return GL_FALSE; - } default: _mesa_problem(ctx, "invalid dims=%u in legal_texsubimage_target()", dims); @@ -1243,16 +1176,6 @@ return GL_TRUE; } } - if (dimensions > 2) { - if (zoffset < -((GLint)destTex->Border)) { - _mesa_error(ctx, GL_INVALID_VALUE, "glTexSubImage3D(zoffset)"); - return GL_TRUE; - } - if (zoffset + depth > (GLint) (destTex->Depth + destTex->Border)) { - _mesa_error(ctx, GL_INVALID_VALUE, "glTexSubImage3D(zoffset+depth)"); - return GL_TRUE; - } - }
if (ctx->VersionMajor >= 3 || ctx->Extensions.EXT_texture_integer) { /* both source and dest must be integer-valued, or neither */ @@ -1761,7 +1684,6 @@ border, internalFormat, texFormat);
/* Give the texture to the driver. <pixels> may be null. */ - ASSERT(ctx->Driver.TexImage3D); switch (dims) { case 1: ctx->Driver.TexImage1D(ctx, texImage, internalFormat, @@ -1773,11 +1695,6 @@ width, height, border, format, type, pixels, unpack); break; - case 3: - ctx->Driver.TexImage3D(ctx, texImage, internalFormat, - width, height, depth, border, format, - type, pixels, unpack); - break; default: _mesa_problem(ctx, "invalid dims=%u in teximage()", dims); } @@ -1819,33 +1736,6 @@ GET_CURRENT_CONTEXT(ctx); teximage(ctx, 2, target, level, internalFormat, width, height, 1, border, format, type, pixels); -} - - -/* - * Called by the API or display list executor. - * Note that width and height include the border. - */ -void GLAPIENTRY -_mesa_TexImage3D( GLenum target, GLint level, GLint internalFormat, - GLsizei width, GLsizei height, GLsizei depth, - GLint border, GLenum format, GLenum type, - const GLvoid *pixels ) -{ - GET_CURRENT_CONTEXT(ctx); - teximage(ctx, 3, target, level, internalFormat, width, height, depth, - border, format, type, pixels); -} - - -void GLAPIENTRY -_mesa_TexImage3DEXT( GLenum target, GLint level, GLenum internalFormat, - GLsizei width, GLsizei height, GLsizei depth, - GLint border, GLenum format, GLenum type, - const GLvoid *pixels ) -{ - _mesa_TexImage3D(target, level, (GLint) internalFormat, width, height, - depth, border, format, type, pixels); }
@@ -1922,12 +1812,6 @@ xoffset, yoffset, width, height, format, type, pixels, &ctx->Unpack); break; - case 3: - ctx->Driver.TexSubImage3D(ctx, texImage, - xoffset, yoffset, zoffset, - width, height, depth, - format, type, pixels, &ctx->Unpack); - break; default: _mesa_problem(ctx, "unexpected dims in subteximage()"); } @@ -1964,22 +1848,6 @@ texsubimage(ctx, 2, target, level, xoffset, yoffset, 0, width, height, 1, - format, type, pixels); -} - - - -void GLAPIENTRY -_mesa_TexSubImage3D( GLenum target, GLint level, - GLint xoffset, GLint yoffset, GLint zoffset, - GLsizei width, GLsizei height, GLsizei depth, - GLenum format, GLenum type, - const GLvoid *pixels ) -{ - GET_CURRENT_CONTEXT(ctx); - texsubimage(ctx, 3, target, level, - xoffset, yoffset, zoffset, - width, height, depth, format, type, pixels); }
@@ -2193,11 +2061,6 @@ ctx->Driver.CopyTexSubImage2D(ctx, texImage, xoffset, yoffset, srcRb, x, y, width, height); break; - case 3: - ctx->Driver.CopyTexSubImage3D(ctx, texImage, - xoffset, yoffset, zoffset, - srcRb, x, y, width, height); - break; default: _mesa_problem(ctx, "bad dims in copytexsubimage()"); } @@ -2229,15 +2092,3 @@ copytexsubimage(ctx, 2, target, level, xoffset, yoffset, 0, x, y, width, height); } - - - -void GLAPIENTRY -_mesa_CopyTexSubImage3D( GLenum target, GLint level, - GLint xoffset, GLint yoffset, GLint zoffset, - GLint x, GLint y, GLsizei width, GLsizei height ) -{ - GET_CURRENT_CONTEXT(ctx); - copytexsubimage(ctx, 3, target, level, xoffset, yoffset, zoffset, - x, y, width, height); -}
Modified: trunk/reactos/dll/opengl/mesa/main/teximage.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/main/texima... ============================================================================== --- trunk/reactos/dll/opengl/mesa/main/teximage.h [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/main/teximage.h [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -165,18 +165,6 @@
extern void GLAPIENTRY -_mesa_TexImage3D( GLenum target, GLint level, GLint internalformat, - GLsizei width, GLsizei height, GLsizei depth, GLint border, - GLenum format, GLenum type, const GLvoid *pixels ); - - -extern void GLAPIENTRY -_mesa_TexImage3DEXT( GLenum target, GLint level, GLenum internalformat, - GLsizei width, GLsizei height, GLsizei depth, - GLint border, GLenum format, GLenum type, - const GLvoid *pixels ); - -extern void GLAPIENTRY _mesa_TexSubImage1D( GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, @@ -192,14 +180,6 @@
extern void GLAPIENTRY -_mesa_TexSubImage3D( GLenum target, GLint level, - GLint xoffset, GLint yoffset, GLint zoffset, - GLsizei width, GLsizei height, GLsizei depth, - GLenum format, GLenum type, - const GLvoid *pixels ); - - -extern void GLAPIENTRY _mesa_CopyTexImage1D( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border );
@@ -220,12 +200,6 @@ GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height );
- -extern void GLAPIENTRY -_mesa_CopyTexSubImage3D( GLenum target, GLint level, - GLint xoffset, GLint yoffset, GLint zoffset, - GLint x, GLint y, GLsizei width, GLsizei height ); - /*@}*/
#endif
Modified: trunk/reactos/dll/opengl/mesa/main/texobj.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/main/texobj... ============================================================================== --- trunk/reactos/dll/opengl/mesa/main/texobj.c [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/main/texobj.c [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -216,7 +216,6 @@ case 0: case GL_TEXTURE_1D: case GL_TEXTURE_2D: - case GL_TEXTURE_3D: case GL_TEXTURE_CUBE_MAP_ARB: return GL_TRUE; case 0x99: @@ -364,12 +363,6 @@ maxLog2 = MAX2(t->Image[0][baseLevel]->WidthLog2, t->Image[0][baseLevel]->HeightLog2); maxLevels = ctx->Const.MaxTextureLevels; - } - else if (t->Target == GL_TEXTURE_3D) { - GLint max = MAX2(t->Image[0][baseLevel]->WidthLog2, - t->Image[0][baseLevel]->HeightLog2); - maxLog2 = MAX2(max, (GLint)(t->Image[0][baseLevel]->DepthLog2)); - maxLevels = ctx->Const.Max3DTextureLevels; } else if (t->Target == GL_TEXTURE_CUBE_MAP_ARB) { maxLog2 = MAX2(t->Image[0][baseLevel]->WidthLog2, @@ -500,49 +493,6 @@ if (width==1 && height==1) { return; /* found smallest needed mipmap, all done! */ } - } - } - } - else if (t->Target == GL_TEXTURE_3D) { - /* Test 3-D mipmaps */ - GLuint width = t->Image[0][baseLevel]->Width2; - GLuint height = t->Image[0][baseLevel]->Height2; - GLuint depth = t->Image[0][baseLevel]->Depth2; - for (i = baseLevel + 1; i < maxLevels; i++) { - if (width > 1) { - width /= 2; - } - if (height > 1) { - height /= 2; - } - if (depth > 1) { - depth /= 2; - } - if (i >= minLevel && i <= maxLevel) { - const struct gl_texture_image *img = t->Image[0][i]; - if (!img) { - incomplete(t, "3D Image[%d] is missing", i); - return; - } - if (img->_BaseFormat == GL_DEPTH_COMPONENT) { - incomplete(t, "GL_DEPTH_COMPONENT only works with 1/2D tex"); - return; - } - if (img->Width2 != width) { - incomplete(t, "3D Image[%d] bad width %u", i, img->Width2); - return; - } - if (img->Height2 != height) { - incomplete(t, "3D Image[%d] bad height %u", i, img->Height2); - return; - } - if (img->Depth2 != depth) { - incomplete(t, "3D Image[%d] bad depth %u", i, img->Depth2); - return; - } - } - if (width == 1 && height == 1 && depth == 1) { - return; /* found smallest needed mipmap, all done! */ } } } @@ -863,8 +813,6 @@ return TEXTURE_1D_INDEX; case GL_TEXTURE_2D: return TEXTURE_2D_INDEX; - case GL_TEXTURE_3D: - return TEXTURE_3D_INDEX; case GL_TEXTURE_CUBE_MAP_ARB: return TEXTURE_CUBE_INDEX; default:
Modified: trunk/reactos/dll/opengl/mesa/main/texparam.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/main/texpar... ============================================================================== --- trunk/reactos/dll/opengl/mesa/main/texparam.c [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/main/texparam.c [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -71,8 +71,6 @@ return texUnit->CurrentTex[TEXTURE_1D_INDEX]; case GL_TEXTURE_2D: return texUnit->CurrentTex[TEXTURE_2D_INDEX]; - case GL_TEXTURE_3D: - return texUnit->CurrentTex[TEXTURE_3D_INDEX]; case GL_TEXTURE_CUBE_MAP: if (ctx->Extensions.ARB_texture_cube_map) { return texUnit->CurrentTex[TEXTURE_CUBE_INDEX];
Modified: trunk/reactos/dll/opengl/mesa/main/texstate.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/main/texsta... ============================================================================== --- trunk/reactos/dll/opengl/mesa/main/texstate.c [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/main/texstate.c [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -502,7 +502,6 @@ */ static const GLenum targets[] = { GL_TEXTURE_CUBE_MAP_ARB, - GL_TEXTURE_3D, GL_TEXTURE_2D, GL_TEXTURE_1D, };
Modified: trunk/reactos/dll/opengl/mesa/main/texstorage.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/main/texsto... ============================================================================== --- trunk/reactos/dll/opengl/mesa/main/texstorage.c [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/main/texstorage.c [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -58,14 +58,6 @@ default: return GL_FALSE; } - case 3: - switch (target) { - case GL_TEXTURE_3D: - case GL_PROXY_TEXTURE_3D: - return GL_TRUE; - default: - return GL_FALSE; - } default: _mesa_problem(ctx, "invalid dims=%u in legal_texobj_target()", dims); return GL_FALSE;
Modified: trunk/reactos/dll/opengl/mesa/main/texstore.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/main/texsto... ============================================================================== --- trunk/reactos/dll/opengl/mesa/main/texstore.c [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/main/texstore.c [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -39,7 +39,6 @@ * code: * ctx->Driver.TexImage1D = _mesa_store_teximage1d; * ctx->Driver.TexImage2D = _mesa_store_teximage2d; - * ctx->Driver.TexImage3D = _mesa_store_teximage3d; * etc... * * Texture image processing is actually kind of complicated. We have to do: @@ -3159,9 +3158,6 @@ case GL_TEXTURE_1D: dims = 1; break; - case GL_TEXTURE_3D: - dims = 3; - break; default: dims = 2; } @@ -3182,13 +3178,6 @@ assert(depth == 1); assert(yoffset == 0); assert(zoffset == 0); - break; - case GL_TEXTURE_3D: - /* we'll store 3D images as a series of slices */ - numSlices = depth; - sliceOffset = zoffset; - srcImageStride = _mesa_image_image_stride(packing, width, height, - format, type); break; default: _mesa_warning(ctx, "Unexpected target 0x%x in store_texsubimage()", target); @@ -3287,34 +3276,6 @@
-/** - * This is the fallback for Driver.TexImage3D(). - */ -void -_mesa_store_teximage3d(struct gl_context *ctx, - struct gl_texture_image *texImage, - GLint internalFormat, - GLint width, GLint height, GLint depth, GLint border, - GLenum format, GLenum type, const void *pixels, - const struct gl_pixelstore_attrib *packing) -{ - if (width == 0 || height == 0 || depth == 0) - return; - - /* allocate storage for texture data */ - if (!ctx->Driver.AllocTextureImageBuffer(ctx, texImage, texImage->TexFormat, - width, height, depth)) { - _mesa_error(ctx, GL_OUT_OF_MEMORY, "glTexImage3D"); - return; - } - - store_texsubimage(ctx, texImage, - 0, 0, 0, width, height, depth, - format, type, pixels, packing, "glTexImage3D"); -} - - -
/* * This is the fallback for Driver.TexSubImage1D(). @@ -3348,20 +3309,3 @@ xoffset, yoffset, 0, width, height, 1, format, type, pixels, packing, "glTexSubImage2D"); } - - -/* - * This is the fallback for Driver.TexSubImage3D(). - */ -void -_mesa_store_texsubimage3d(struct gl_context *ctx, - struct gl_texture_image *texImage, - GLint xoffset, GLint yoffset, GLint zoffset, - GLint width, GLint height, GLint depth, - GLenum format, GLenum type, const void *pixels, - const struct gl_pixelstore_attrib *packing) -{ - store_texsubimage(ctx, texImage, - xoffset, yoffset, zoffset, width, height, depth, - format, type, pixels, packing, "glTexSubImage3D"); -}
Modified: trunk/reactos/dll/opengl/mesa/main/texstore.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/main/texsto... ============================================================================== --- trunk/reactos/dll/opengl/mesa/main/texstore.h [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/main/texstore.h [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -108,15 +108,6 @@
extern void -_mesa_store_teximage3d(struct gl_context *ctx, - struct gl_texture_image *texImage, - GLint internalFormat, - GLint width, GLint height, GLint depth, GLint border, - GLenum format, GLenum type, const GLvoid *pixels, - const struct gl_pixelstore_attrib *packing); - - -extern void _mesa_store_texsubimage1d(struct gl_context *ctx, struct gl_texture_image *texImage, GLint xoffset, GLint width, @@ -133,13 +124,4 @@ const struct gl_pixelstore_attrib *packing);
-extern void -_mesa_store_texsubimage3d(struct gl_context *ctx, - struct gl_texture_image *texImage, - GLint xoffset, GLint yoffset, GLint zoffset, - GLint width, GLint height, GLint depth, - GLenum format, GLenum type, const GLvoid *pixels, - const struct gl_pixelstore_attrib *packing); - - #endif
Modified: trunk/reactos/dll/opengl/mesa/main/version.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/main/versio... ============================================================================== --- trunk/reactos/dll/opengl/mesa/main/version.c [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/main/version.c [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -75,7 +75,6 @@ ctx->Extensions.EXT_shadow_funcs); const GLboolean ver_2_0 = (ver_1_5 && ctx->Extensions.ARB_point_sprite && - ctx->Extensions.ARB_texture_non_power_of_two && ctx->Extensions.EXT_blend_equation_separate); const GLboolean ver_2_1 = (ver_2_0); const GLboolean ver_3_0 = (ver_2_1 &&
Modified: trunk/reactos/dll/opengl/mesa/swrast/s_texfilter.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/swrast/s_te... ============================================================================== --- trunk/reactos/dll/opengl/mesa/swrast/s_texfilter.c [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/swrast/s_texfilter.c [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -1660,325 +1660,6 @@ sample_2d_footprint(ctx, tObj, texcoords[i], dudx, dvdx, dudy, dvdy, floor(lod), rgba[i]); */ - } - } -} - - - -/**********************************************************************/ -/* 3-D Texture Sampling Functions */ -/**********************************************************************/ - -/** - * Return the texture sample for coordinate (s,t,r) using GL_NEAREST filter. - */ -static inline void -sample_3d_nearest(struct gl_context *ctx, - const struct gl_texture_object *tObj, - const struct gl_texture_image *img, - const GLfloat texcoord[4], - GLfloat rgba[4]) -{ - const struct swrast_texture_image *swImg = swrast_texture_image_const(img); - const GLint width = img->Width2; /* without border, power of two */ - const GLint height = img->Height2; /* without border, power of two */ - const GLint depth = img->Depth2; /* without border, power of two */ - GLint i, j, k; - (void) ctx; - - i = nearest_texel_location(tObj->Sampler.WrapS, img, width, texcoord[0]); - j = nearest_texel_location(tObj->Sampler.WrapT, img, height, texcoord[1]); - k = nearest_texel_location(tObj->Sampler.WrapR, img, depth, texcoord[2]); - - if (i < 0 || i >= (GLint) img->Width || - j < 0 || j >= (GLint) img->Height || - k < 0 || k >= (GLint) img->Depth) { - /* Need this test for GL_CLAMP_TO_BORDER mode */ - get_border_color(tObj, img, rgba); - } - else { - swImg->FetchTexel(swImg, i, j, k, rgba); - } -} - - -/** - * Return the texture sample for coordinate (s,t,r) using GL_LINEAR filter. - */ -static void -sample_3d_linear(struct gl_context *ctx, - const struct gl_texture_object *tObj, - const struct gl_texture_image *img, - const GLfloat texcoord[4], - GLfloat rgba[4]) -{ - const struct swrast_texture_image *swImg = swrast_texture_image_const(img); - const GLint width = img->Width2; - const GLint height = img->Height2; - const GLint depth = img->Depth2; - GLint i0, j0, k0, i1, j1, k1; - GLbitfield useBorderColor = 0x0; - GLfloat a, b, c; - GLfloat t000[4], t010[4], t001[4], t011[4]; - GLfloat t100[4], t110[4], t101[4], t111[4]; - - linear_texel_locations(tObj->Sampler.WrapS, img, width, texcoord[0], &i0, &i1, &a); - linear_texel_locations(tObj->Sampler.WrapT, img, height, texcoord[1], &j0, &j1, &b); - linear_texel_locations(tObj->Sampler.WrapR, img, depth, texcoord[2], &k0, &k1, &c); - - if (img->Border) { - i0 += img->Border; - i1 += img->Border; - j0 += img->Border; - j1 += img->Border; - k0 += img->Border; - k1 += img->Border; - } - else { - /* check if sampling texture border color */ - if (i0 < 0 || i0 >= width) useBorderColor |= I0BIT; - if (i1 < 0 || i1 >= width) useBorderColor |= I1BIT; - if (j0 < 0 || j0 >= height) useBorderColor |= J0BIT; - if (j1 < 0 || j1 >= height) useBorderColor |= J1BIT; - if (k0 < 0 || k0 >= depth) useBorderColor |= K0BIT; - if (k1 < 0 || k1 >= depth) useBorderColor |= K1BIT; - } - - /* Fetch texels */ - if (useBorderColor & (I0BIT | J0BIT | K0BIT)) { - get_border_color(tObj, img, t000); - } - else { - swImg->FetchTexel(swImg, i0, j0, k0, t000); - } - if (useBorderColor & (I1BIT | J0BIT | K0BIT)) { - get_border_color(tObj, img, t100); - } - else { - swImg->FetchTexel(swImg, i1, j0, k0, t100); - } - if (useBorderColor & (I0BIT | J1BIT | K0BIT)) { - get_border_color(tObj, img, t010); - } - else { - swImg->FetchTexel(swImg, i0, j1, k0, t010); - } - if (useBorderColor & (I1BIT | J1BIT | K0BIT)) { - get_border_color(tObj, img, t110); - } - else { - swImg->FetchTexel(swImg, i1, j1, k0, t110); - } - - if (useBorderColor & (I0BIT | J0BIT | K1BIT)) { - get_border_color(tObj, img, t001); - } - else { - swImg->FetchTexel(swImg, i0, j0, k1, t001); - } - if (useBorderColor & (I1BIT | J0BIT | K1BIT)) { - get_border_color(tObj, img, t101); - } - else { - swImg->FetchTexel(swImg, i1, j0, k1, t101); - } - if (useBorderColor & (I0BIT | J1BIT | K1BIT)) { - get_border_color(tObj, img, t011); - } - else { - swImg->FetchTexel(swImg, i0, j1, k1, t011); - } - if (useBorderColor & (I1BIT | J1BIT | K1BIT)) { - get_border_color(tObj, img, t111); - } - else { - swImg->FetchTexel(swImg, i1, j1, k1, t111); - } - - /* trilinear interpolation of samples */ - lerp_rgba_3d(rgba, a, b, c, t000, t100, t010, t110, t001, t101, t011, t111); -} - - -static void -sample_3d_nearest_mipmap_nearest(struct gl_context *ctx, - const struct gl_texture_object *tObj, - GLuint n, const GLfloat texcoord[][4], - const GLfloat lambda[], GLfloat rgba[][4] ) -{ - GLuint i; - for (i = 0; i < n; i++) { - GLint level = nearest_mipmap_level(tObj, lambda[i]); - sample_3d_nearest(ctx, tObj, tObj->Image[0][level], texcoord[i], rgba[i]); - } -} - - -static void -sample_3d_linear_mipmap_nearest(struct gl_context *ctx, - const struct gl_texture_object *tObj, - GLuint n, const GLfloat texcoord[][4], - const GLfloat lambda[], GLfloat rgba[][4]) -{ - GLuint i; - ASSERT(lambda != NULL); - for (i = 0; i < n; i++) { - GLint level = nearest_mipmap_level(tObj, lambda[i]); - sample_3d_linear(ctx, tObj, tObj->Image[0][level], texcoord[i], rgba[i]); - } -} - - -static void -sample_3d_nearest_mipmap_linear(struct gl_context *ctx, - const struct gl_texture_object *tObj, - GLuint n, const GLfloat texcoord[][4], - const GLfloat lambda[], GLfloat rgba[][4]) -{ - GLuint i; - ASSERT(lambda != NULL); - for (i = 0; i < n; i++) { - GLint level = linear_mipmap_level(tObj, lambda[i]); - if (level >= tObj->_MaxLevel) { - sample_3d_nearest(ctx, tObj, tObj->Image[0][tObj->_MaxLevel], - texcoord[i], rgba[i]); - } - else { - GLfloat t0[4], t1[4]; /* texels */ - const GLfloat f = FRAC(lambda[i]); - sample_3d_nearest(ctx, tObj, tObj->Image[0][level ], texcoord[i], t0); - sample_3d_nearest(ctx, tObj, tObj->Image[0][level+1], texcoord[i], t1); - lerp_rgba(rgba[i], f, t0, t1); - } - } -} - - -static void -sample_3d_linear_mipmap_linear(struct gl_context *ctx, - const struct gl_texture_object *tObj, - GLuint n, const GLfloat texcoord[][4], - const GLfloat lambda[], GLfloat rgba[][4]) -{ - GLuint i; - ASSERT(lambda != NULL); - for (i = 0; i < n; i++) { - GLint level = linear_mipmap_level(tObj, lambda[i]); - if (level >= tObj->_MaxLevel) { - sample_3d_linear(ctx, tObj, tObj->Image[0][tObj->_MaxLevel], - texcoord[i], rgba[i]); - } - else { - GLfloat t0[4], t1[4]; /* texels */ - const GLfloat f = FRAC(lambda[i]); - sample_3d_linear(ctx, tObj, tObj->Image[0][level ], texcoord[i], t0); - sample_3d_linear(ctx, tObj, tObj->Image[0][level+1], texcoord[i], t1); - lerp_rgba(rgba[i], f, t0, t1); - } - } -} - - -/** Sample 3D texture, nearest filtering for both min/magnification */ -static void -sample_nearest_3d(struct gl_context *ctx, - const struct gl_texture_object *tObj, GLuint n, - const GLfloat texcoords[][4], const GLfloat lambda[], - GLfloat rgba[][4]) -{ - GLuint i; - struct gl_texture_image *image = tObj->Image[0][tObj->BaseLevel]; - (void) lambda; - for (i = 0; i < n; i++) { - sample_3d_nearest(ctx, tObj, image, texcoords[i], rgba[i]); - } -} - - -/** Sample 3D texture, linear filtering for both min/magnification */ -static void -sample_linear_3d(struct gl_context *ctx, - const struct gl_texture_object *tObj, GLuint n, - const GLfloat texcoords[][4], - const GLfloat lambda[], GLfloat rgba[][4]) -{ - GLuint i; - struct gl_texture_image *image = tObj->Image[0][tObj->BaseLevel]; - (void) lambda; - for (i = 0; i < n; i++) { - sample_3d_linear(ctx, tObj, image, texcoords[i], rgba[i]); - } -} - - -/** Sample 3D texture, using lambda to choose between min/magnification */ -static void -sample_lambda_3d(struct gl_context *ctx, - const struct gl_texture_object *tObj, GLuint n, - const GLfloat texcoords[][4], const GLfloat lambda[], - GLfloat rgba[][4]) -{ - GLuint minStart, minEnd; /* texels with minification */ - GLuint magStart, magEnd; /* texels with magnification */ - GLuint i; - - ASSERT(lambda != NULL); - compute_min_mag_ranges(tObj, n, lambda, - &minStart, &minEnd, &magStart, &magEnd); - - if (minStart < minEnd) { - /* do the minified texels */ - GLuint m = minEnd - minStart; - switch (tObj->Sampler.MinFilter) { - case GL_NEAREST: - for (i = minStart; i < minEnd; i++) - sample_3d_nearest(ctx, tObj, tObj->Image[0][tObj->BaseLevel], - texcoords[i], rgba[i]); - break; - case GL_LINEAR: - for (i = minStart; i < minEnd; i++) - sample_3d_linear(ctx, tObj, tObj->Image[0][tObj->BaseLevel], - texcoords[i], rgba[i]); - break; - case GL_NEAREST_MIPMAP_NEAREST: - sample_3d_nearest_mipmap_nearest(ctx, tObj, m, texcoords + minStart, - lambda + minStart, rgba + minStart); - break; - case GL_LINEAR_MIPMAP_NEAREST: - sample_3d_linear_mipmap_nearest(ctx, tObj, m, texcoords + minStart, - lambda + minStart, rgba + minStart); - break; - case GL_NEAREST_MIPMAP_LINEAR: - sample_3d_nearest_mipmap_linear(ctx, tObj, m, texcoords + minStart, - lambda + minStart, rgba + minStart); - break; - case GL_LINEAR_MIPMAP_LINEAR: - sample_3d_linear_mipmap_linear(ctx, tObj, m, texcoords + minStart, - lambda + minStart, rgba + minStart); - break; - default: - _mesa_problem(ctx, "Bad min filter in sample_3d_texture"); - return; - } - } - - if (magStart < magEnd) { - /* do the magnified texels */ - switch (tObj->Sampler.MagFilter) { - case GL_NEAREST: - for (i = magStart; i < magEnd; i++) - sample_3d_nearest(ctx, tObj, tObj->Image[0][tObj->BaseLevel], - texcoords[i], rgba[i]); - break; - case GL_LINEAR: - for (i = magStart; i < magEnd; i++) - sample_3d_linear(ctx, tObj, tObj->Image[0][tObj->BaseLevel], - texcoords[i], rgba[i]); - break; - default: - _mesa_problem(ctx, "Bad mag filter in sample_3d_texture"); - return; } } } @@ -2461,17 +2142,6 @@
return func; } - case GL_TEXTURE_3D: - if (needLambda) { - return &sample_lambda_3d; - } - else if (t->Sampler.MinFilter == GL_LINEAR) { - return &sample_linear_3d; - } - else { - ASSERT(t->Sampler.MinFilter == GL_NEAREST); - return &sample_nearest_3d; - } case GL_TEXTURE_CUBE_MAP: if (needLambda) { return &sample_lambda_cube;
Modified: trunk/reactos/dll/opengl/mesa/swrast/s_texture.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/opengl/mesa/swrast/s_te... ============================================================================== --- trunk/reactos/dll/opengl/mesa/swrast/s_texture.c [iso-8859-1] (original) +++ trunk/reactos/dll/opengl/mesa/swrast/s_texture.c [iso-8859-1] Mon Jun 16 19:16:37 2014 @@ -202,15 +202,6 @@ }
map = swImage->Buffer; - - if (texImage->TexObject->Target == GL_TEXTURE_3D) { - GLuint sliceSize = _mesa_format_image_size(texImage->TexFormat, - texImage->Width, - texImage->Height, - 1); - assert(slice < texImage->Depth); - map += slice * sliceSize; - }
/* apply x/y offset to map address */ map += stride * (y / bh) + texelSize * (x / bw);