summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/teximage.h
Commit message (Collapse)AuthorAgeFilesLines
* mesa: rework texture size error checkingBrian Paul2012-09-171-2/+2
| | | | | | | | | | | | | | | | | | | | | | There are two aspects to texture image size checking: 1. Are the width, height, depth legal values (not negative, not larger than the max size for the mipmap level, etc)? 2. Is the texture just too large to handle? For example, we might not be able to really allocate memory for a 3D texture of maxSize x maxSize x maxSize. Previously, we did (1) via the ctx->Driver.TestProxyTextureImage() hook but those tests are really device-independent. Now we do (2) via that hook since the max texture memory and texture shape are device-dependent. Also, (1) is now done outside the general texture parameter error checking functions because of the special interaction with proxy textures. The recently introduced PROXY_ERROR token is removed. The teximage() and copyteximage() functions are bit simpler now (less if-then nesting, etc.) Reviewed-by: Jose Fonseca <[email protected]>
* mesa: refactor _mesa_test_proxy_teximage() codeBrian Paul2012-09-171-0/+5
| | | | | | | Basically, move the body into a new _mesa_legal_texture_dimensions() function. More refactoring to come. Reviewed-by: Jose Fonseca <[email protected]>
* mesa: make _mesa_get_proxy_target() non-staticBrian Paul2012-09-111-0/+2
| | | | | | Needed for the next patch. Note: This is a candidate for the stable branches.
* mesa: make _mesa_get_proxy_tex_image() staticBrian Paul2012-08-241-4/+0
| | | | It's not used by any other file.
* mesa/es: Validate glTexImage format, type, and internalFormat in Mesa code ↵Ian Romanick2012-08-231-0/+4
| | | | | | | | | | | | | rather than the ES wrapper v2: Add proper GLES3 filtering. v3: Collapse ALPHA, LUMINANCE, and LUMINANCE_ALPHA cases per review comment from Ken. Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Jordan Justen <[email protected]>
* intel: Add extern "C" declarations to headersPaul Berry2012-05-101-0/+7
| | | | | | | | These declarations are necessary to allow C++ code to call C code without causing unresolved symbols (which would make the driver fail to load). Reviewed-by: Chad Versace <[email protected]>
* mesa: Add condition in glGetTexImage for zero size texturesAnuj Phogat2012-01-171-1/+8
| | | | | | | | | | | | | | | | | | | | TestMipMaps() function in src/OGLconform/textureNPOT.c calls glTexImage2D() with width = 0. Texture with zero size skips miptree allocation due to a condition in function _mesa_store_teximage3d(). While calling glGetTexImage() it results in assertion failure in intel_map_texture_image() due to null mt pointer. This patch fixes the issue by detecting the zero size texture early in glGetTexImage and glGetCompressedTexImage functions. In such a case function simply returns doing nothing. Verified that below mentioned bug is fixed by this patch. https://bugs.freedesktop.org/show_bug.cgi?id=42334 NOTE: This is a candidate for stable branches Signed-off-by: Anuj Phogat <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: remove unused _mesa_init_teximage_fields() target parameterBrian Paul2012-01-041-1/+1
| | | | | Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Yuanhan Liu <[email protected]>
* mesa: make _mesa_set_tex_image() static since it's not called anywhere elseBrian Paul2011-12-181-6/+0
|
* mesa: make update_fbo_texture() non-staticBrian Paul2011-12-161-0/+4
| | | | | | | We'll call this from the mipmap generation code. Reviewed-by: Ian Romanick <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: define, use _mesa_is_cube_face() in several placesBrian Paul2011-11-191-0/+10
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: remove _mesa_alloc_texmemory(), _mesa_free_texmemory()Brian Paul2011-10-231-11/+0
| | | | Core Mesa no longer does any texture memory allocation.
* mesa: s/INLINE/inline/Brian Paul2011-10-011-2/+2
| | | | | | | INLINE is still seen in some files (some generated files, etc) but this is a good start. Acked-by: Kenneth Graunke <[email protected]>
* mesa: Silence "main/teximage.h:148:72: warning: unused parameter ‘texObj’"Ian Romanick2011-09-091-0/+1
|
* mesa: core support for GL_ARB_texture_buffer_objectBrian Paul2011-04-051-0/+5
| | | | No GLSL or driver support yet.
* mesa: 80-column wrappingBrian Paul2011-04-051-4/+8
|
* mesa/swrast: handle sRGB FBOs correctly (v2)Dave Airlie2011-01-111-0/+2
| | | | | | | | | | | | | | | | From reading EXT_texture_sRGB and EXT_framebuffer_sRGB and interactions with FBO I've found that swrast is converting the sRGB values to linear for blending when an sRGB texture is bound as an FBO. According to the spec and further explained in the framebuffer_sRGB spec this behaviour is not required unless the GL_FRAMEBUFFER_SRGB is enabled and the Visual/config exposes GL_FRAMEBUFFER_SRGB_CAPABLE_EXT. This patch fixes swrast to use a separate Fetch call for FBOs bound to SRGB and avoid the conversions. v2: export _mesa_get_texture_dimensions as per Brian's comments. Signed-off-by: Dave Airlie <[email protected]>
* mesa: pass gl_format to _mesa_init_teximage_fields()Brian Paul2010-11-181-3/+4
| | | | | | | | | | | This should prevent the field going unset in the future. See bug http://bugs.freedesktop.org/show_bug.cgi?id=31544 for background. Also remove unneeded calls to clear_teximage_fields(). Finally, call _mesa_set_fetch_functions() from the _mesa_init_teximage_fields() function so callers have one less thing to worry about.
* Drop GLcontext typedef and use struct gl_context insteadKristian Høgsberg2010-10-131-16/+16
|
* mesa: call ctx->Driver.ChooseTextureFormat() only when necessary.Brian Paul2010-07-201-0/+8
| | | | | | | | | | | | | | | | | | | When defining mipmap level 'L' and level L-1 exists and the new level's internalFormat matches level L-1's internalFormat, then use the same hw format. Otherwise, do the regular ctx->Driver.ChooseTextureFormat() call. This avoids a problem where we end up choosing different hw formats for different mipmap levels depending on how the levels are defined (glTexImage vs. glCopyTexImage vs. glGenerateMipmap, etc). The root problem is the ChooseTextureFormat() implementation in some drivers uses the user's glTexImage format/type parameters in the choosing heuristic. Later mipmap levels might be generated with different calls (ex: glCopyTexImage()) so we don't always have format/type info and the driver may choose a different format. For more background info see the July 2010 mesa-dev thread "Bug in _mesa_meta_GenerateMipmap"
* core: Implement GL_OES_EGL_image entry pointsKristian Høgsberg2010-02-241-0/+2
|
* mesa: make _mesa_get_current_tex_objec() publicBrian Paul2009-11-021-0/+3
|
* mesa: refactor: move _mesa_is_color/depth/stencil_format() helpers to image.cBrian Paul2009-08-131-19/+0
|
* mesa: move _mesa_Get[Compressed]TexImage() to texgetimage.cBrian Paul2009-08-131-8/+15
| | | | All the glGetTexImage code is in one file now.
* mesa/main: Add functions to clear and dirty texture objects.Chia-I Wu2009-08-051-0/+4
| | | | | | | | This commit adds a function to clear a texture object such that there is no image data associated with it, and a function to dirty it so that it will be re-tested for completeness. Signed-off-by: Chia-I Wu <[email protected]>
* mesa: in textore.c, only adjust image for convolution if image is a color formatBrian Paul2008-10-221-0/+3
| | | | | Makes things consistant with the code in teximage.c. We only want to apply convolution to color formats (not depth/index formats)
* added _mesa_tex_target_to_face()Brian2008-09-211-0/+5
| | | | (cherry picked from commit b52ce6341f877a0a1cfd3c50c07eeb1c156ae89e)
* improve some comments, clean-up formattingBrian2007-05-211-5/+6
|
* Merge texmem-0-3-branch.Keith Whitwell2006-11-011-2/+19
|
* Make _mesa_is_proxy_texture() non-static and use in a few more places.Brian Paul2005-11-111-2/+5
| | | | | Use COPY_4FV() where possible. Added some comments, clean-ups.
* The old MESA_PBUFFER_ALLOC() function allocated memory on 512-byte boundaries.Brian Paul2005-07-051-2/+9
| | | | | Restore that behavior with new _mesa_alloc_texmemory() function. Should fix via_sse_memcpy() problem in found with flightgear.
* add FreeTexImageData hook to help single-copy texturing in driversKeith Whitwell2005-03-221-1/+6
|
* New error checking in _mesa_GetTexImage().Brian Paul2004-01-241-3/+3
| | | | Updated comments and some better function parameter names.
* Added GLAPIENTRY decorations for all first level OpenGL API function entryKendall Bennett2003-10-211-20/+20
| | | | | points so that the calling conventions will work correctly with the assembler stubs with the Open Watcom compiler.
* Merge Jose's documentation and core Mesa changes from embedded branchKeith Whitwell2003-07-171-3/+12
|
* Rework gl[Copy]Tex[Sub]Image() error checking so that all level, width, heightBrian Paul2003-04-041-4/+7
| | | | | and depth checks are done via ctx->Driver.TestProxyTexImage(). This allows more flexiblity, like supporting larger, non-cubic 3D textures.
* New device driver hooks for texture object and texture image creation toBrian Paul2003-04-011-3/+12
| | | | | allow drivers to implement C++-like inheritance via containment. Lots of assorted clean-ups related to texture objects.
* new _mesa_max_texture_levels() helper function - not used everywhere yetBrian Paul2002-10-181-1/+4
|
* Implemented GL_NV_texture_rectangle extension.Brian Paul2002-06-151-2/+2
| | | | | | | | | Replace struct gl_texure_object's Dimension w/ Target field. Added _EnabledUnits to struct gl_texture_attrib - the _ReallyEnabled field is obsolete, but still present for now. This effectively removes the 8-texture units limit, 32 units now possible, but unlikely! New TEXTURE_1D/2D/3D/CUBE/RECT_BIT tokens for unit->_ReallyEnabled field. Updated device drivers to use ctx->Texture._EnabledUnits.
* API dispath updatesBrian Paul2001-11-181-2/+2
|
* initial support for GL_SGIS_generate_mipmap extensionBrian Paul2001-05-211-1/+14
|
* change glTexImage3D() internalFormat to GLenum to match other OpenGLsBrian Paul2001-03-261-2/+2
|
* Consistent copyright info (version number, date) across all files.Gareth Hughes2001-03-121-3/+2
|
* Overhaul of texture image handling.Brian Paul2001-02-061-18/+1
| | | | | | | | | | 1. gl_texture_image struct's Data pointer points to images in driver's format. 2. Added FetchTexel() function pointer to struct gl_texture_image. 3. Changed Driver Tex[Sub]Image functions, return void now. 4. Texture storage/fetch code in new texstore.c file. 5. Removed texture.[ch] - functions moved to state.c Note: FX driver updates not finished yet.
* Committing in .Jouk Jansen2000-11-221-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Modified Files: Mesa/macos/gli_api/gliapi1.h Mesa/macos/gli_api/gliapi2.h Mesa/macos/gli_api/gliapiext.h Mesa/macos/src-gli/fxgli.c Mesa/macos/src-gli/fxgli.h Mesa/macos/src-gli/fxgli2.c Mesa/macos/src-gli/fxgli_tridebug.c Mesa/src/accum.c Mesa/src/accum.h Mesa/src/all.h Mesa/src/alpha.c Mesa/src/alpha.h Mesa/src/attrib.c Mesa/src/attrib.h Mesa/src/bitmap.c Mesa/src/bitmap.h Mesa/src/blend.c Mesa/src/blend.h Mesa/src/buffers.c Mesa/src/buffers.h Mesa/src/clip.c Mesa/src/clip.h Mesa/src/colortab.h Mesa/src/config.c Mesa/src/context.c Mesa/src/context.h Mesa/src/convolve.c Mesa/src/convolve.h Mesa/src/copypix.c Mesa/src/copypix.h Mesa/src/debug.c Mesa/src/depth.c Mesa/src/depth.h Mesa/src/dlist.c Mesa/src/dlist.h Mesa/src/drawpix.c Mesa/src/drawpix.h Mesa/src/enable.c Mesa/src/enable.h Mesa/src/eval.c Mesa/src/eval.h Mesa/src/extensions.c Mesa/src/extensions.h Mesa/src/feedback.c Mesa/src/feedback.h Mesa/src/fog.c Mesa/src/fog.h Mesa/src/get.c Mesa/src/get.h Mesa/src/glapi.c Mesa/src/glthread.h Mesa/src/highpc.c Mesa/src/hint.h Mesa/src/histogram.h Mesa/src/image.c Mesa/src/image.h Mesa/src/imports.c Mesa/src/light.c Mesa/src/light.h Mesa/src/lines.c Mesa/src/lines.h Mesa/src/logic.c Mesa/src/logic.h Mesa/src/masking.c Mesa/src/masking.h Mesa/src/matrix.c Mesa/src/matrix.h Mesa/src/pixel.c Mesa/src/pixel.h Mesa/src/points.c Mesa/src/points.h Mesa/src/polygon.c Mesa/src/polygon.h Mesa/src/rastpos.c Mesa/src/readpix.c Mesa/src/scissor.c Mesa/src/scissor.h Mesa/src/state.c Mesa/src/state.h Mesa/src/stencil.c Mesa/src/stencil.h Mesa/src/teximage.c Mesa/src/teximage.h Mesa/src/texobj.c Mesa/src/texobj.h Mesa/src/texstate.c Mesa/src/texstate.h Mesa/src/texture.c Mesa/src/texture.h Mesa/src/texutil.c Mesa/src/texutil.h Mesa/src/varray.c Mesa/src/varray.h Mesa/src/X/fakeglx.c Mesa/src/X/xm_api.c Mesa/src/X/xm_dd.c Mesa/src/X/xm_line.c Mesa/src/X/xm_span.c Mesa/src/X/xm_tri.c Mesa/src/swrast/s_aaline.c Mesa/src/swrast/s_aaline.h Mesa/src/swrast/s_aatriangle.h Mesa/src/swrast/s_accum.h Mesa/src/swrast/s_alpha.h Mesa/src/swrast/s_alphabuf.h Mesa/src/swrast/s_blend.h Mesa/src/swrast/s_context.c Mesa/src/swrast/s_context.h Mesa/src/swrast/s_depth.h Mesa/src/swrast/s_drawpix.h Mesa/src/swrast/s_feedback.h Mesa/src/swrast/s_fog.h Mesa/src/swrast/s_histogram.h Mesa/src/swrast/s_lines.h Mesa/src/swrast/s_logic.h Mesa/src/swrast/s_masking.h Mesa/src/swrast/s_pb.h Mesa/src/swrast/s_pixeltex.h Mesa/src/swrast/s_points.h Mesa/src/swrast/s_quads.c Mesa/src/swrast/s_quads.h Mesa/src/swrast/s_scissor.h Mesa/src/swrast/s_span.h Mesa/src/swrast/s_stencil.h Mesa/src/swrast/s_texture.h Mesa/src/swrast/s_triangle.h Mesa/src/swrast/s_zoom.h Mesa/src/swrast/swrast.h Mesa/src/swrast_setup/ss_context.h Mesa/src/swrast_setup/ss_triangle.c Mesa/src/swrast_setup/ss_triangle.h Mesa/src/swrast_setup/ss_vb.h Mesa/src/tnl/t_clip.c Mesa/src/tnl/t_clip.h Mesa/src/tnl/t_context.c Mesa/src/tnl/t_context.h Mesa/src/tnl/t_cva.c Mesa/src/tnl/t_cva.h Mesa/src/tnl/t_debug.c Mesa/src/tnl/t_debug.h Mesa/src/tnl/t_dlist.h Mesa/src/tnl/t_eval.c Mesa/src/tnl/t_eval.h Mesa/src/tnl/t_fog.c Mesa/src/tnl/t_fog.h Mesa/src/tnl/t_light.c Mesa/src/tnl/t_light.h Mesa/src/tnl/t_pipeline.c Mesa/src/tnl/t_pipeline.h Mesa/src/tnl/t_shade.c Mesa/src/tnl/t_shade.h Mesa/src/tnl/t_stages.c Mesa/src/tnl/t_stages.h Mesa/src/tnl/t_texture.c Mesa/src/tnl/t_texture.h Mesa/src/tnl/t_trans_elt.c Mesa/src/tnl/t_trans_elt.h Mesa/src/tnl/t_varray.c Mesa/src/tnl/t_varray.h Mesa/src/tnl/t_vb.c Mesa/src/tnl/t_vb.h Mesa/src/tnl/t_vbcull.c Mesa/src/tnl/t_vbcull.h Mesa/src/tnl/t_vbfill.c Mesa/src/tnl/t_vbfill.h Mesa/src/tnl/t_vbindirect.c Mesa/src/tnl/t_vbindirect.h Mesa/src/tnl/t_vbrender.c Mesa/src/tnl/t_vbrender.h Mesa/src/tnl/t_vbxform.c Mesa/src/tnl/t_vbxform.h Mesa/src/tnl/tnl.h Added Files: Mesa/src/mtypes.h Removed Files: Mesa/src/types.h Changed Mesa/src/types to Mesa/src/mtypes.h to avoid conflicts while compiling on a VMS system. ----------------------------------------------------------------------
* added _mesa_get_teximages_from_driver()Brian Paul2000-10-161-3/+9
|
* added const to _mesa_select_tex_object()Brian Paul2000-09-051-3/+3
|
* finished compressed texture support (Bill White)Brian Paul2000-08-291-3/+5
|
* Committing in .Jouk Jansen2000-06-051-2/+6
| | | | | | | | VMS max 31 character external problem. Modified Files: Mesa/src/teximage.h ----------------------------------------------------------------------
* more work on GL_ARB_texture_compressionBrian Paul2000-05-241-2/+7
|