X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fmain%2Ftexobj.h;h=f10623899fcb09dfe222e4580b4b71e6d6de1363;hb=1ebe4305fd0e4b4f023eb50ca0b8229bdd7c1a5e;hp=723b2773b6261080f0c6d31d49de850a14b719b6;hpb=77aabd8be237b68921d2e7c69fd1a0be3d36de01;p=mesa.git diff --git a/src/mesa/main/texobj.h b/src/mesa/main/texobj.h index 723b2773b62..f10623899fc 100644 --- a/src/mesa/main/texobj.h +++ b/src/mesa/main/texobj.h @@ -54,12 +54,6 @@ _mesa_lookup_texture(struct gl_context *ctx, GLuint id); extern struct gl_texture_object * _mesa_lookup_texture_err(struct gl_context *ctx, GLuint id, const char* func); -extern void -_mesa_begin_texture_lookups(struct gl_context *ctx); - -extern void -_mesa_end_texture_lookups(struct gl_context *ctx); - extern struct gl_texture_object * _mesa_lookup_texture_locked(struct gl_context *ctx, GLuint id); @@ -120,31 +114,19 @@ _mesa_unlock_texture(struct gl_context *ctx, struct gl_texture_object *texObj) } -/** - * Return number of faces for a texture target. This will be 6 for - * cube maps (and cube map arrays) and 1 otherwise. - * NOTE: this function is not used for cube map arrays which operate - * more like 2D arrays than cube maps. - */ -static inline GLuint -_mesa_num_tex_faces(GLenum target) -{ - switch (target) { - case GL_TEXTURE_CUBE_MAP: - case GL_PROXY_TEXTURE_CUBE_MAP: - return 6; - default: - return 1; - } -} - - /** Is the texture "complete" with respect to the given sampler state? */ static inline GLboolean _mesa_is_texture_complete(const struct gl_texture_object *texObj, const struct gl_sampler_object *sampler) { - if (texObj->_IsIntegerFormat && + /* + * According to ARB_stencil_texturing, NEAREST_MIPMAP_NEAREST would + * be forbidden, however it is allowed per GL 4.5 rules, allow it + * even without GL 4.5 since it was a spec mistake. + */ + if ((texObj->_IsIntegerFormat || + (texObj->StencilSampling && + texObj->Image[0][texObj->BaseLevel]->_BaseFormat == GL_DEPTH_STENCIL)) && (sampler->MagFilter != GL_NEAREST || (sampler->MinFilter != GL_NEAREST && sampler->MinFilter != GL_NEAREST_MIPMAP_NEAREST))) { @@ -152,20 +134,6 @@ _mesa_is_texture_complete(const struct gl_texture_object *texObj, return GL_FALSE; } - /* From the ARB_stencil_texturing specification: - * "Add a new bullet point for the conditions that cause the texture - * to not be complete: - * - * * The internal format of the texture is DEPTH_STENCIL, the - * DEPTH_STENCIL_TEXTURE_MODE for the texture is STENCIL_INDEX and either - * the magnification filter or the minification filter is not NEAREST." - */ - if (texObj->StencilSampling && - texObj->Image[0][texObj->BaseLevel]->_BaseFormat == GL_DEPTH_STENCIL && - (sampler->MagFilter != GL_NEAREST || sampler->MinFilter != GL_NEAREST)) { - return GL_FALSE; - } - if (_mesa_is_mipmap_filter(sampler)) return texObj->_MipmapComplete; else @@ -177,6 +145,10 @@ extern void _mesa_test_texobj_completeness( const struct gl_context *ctx, struct gl_texture_object *obj ); +extern GLboolean +_mesa_cube_level_complete(const struct gl_texture_object *texObj, + const GLint level); + extern GLboolean _mesa_cube_complete(const struct gl_texture_object *texObj); @@ -198,11 +170,6 @@ _mesa_unlock_context_textures( struct gl_context *ctx ); extern void _mesa_lock_context_textures( struct gl_context *ctx ); -extern void -_mesa_bind_texture_unit(struct gl_context *ctx, - GLuint unit, - struct gl_texture_object *texObj); - /*@}*/ /** @@ -210,9 +177,15 @@ _mesa_bind_texture_unit(struct gl_context *ctx, */ /*@{*/ +void GLAPIENTRY +_mesa_GenTextures_no_error(GLsizei n, GLuint *textures); + extern void GLAPIENTRY _mesa_GenTextures(GLsizei n, GLuint *textures); +void GLAPIENTRY +_mesa_CreateTextures_no_error(GLenum target, GLsizei n, GLuint *textures); + extern void GLAPIENTRY _mesa_CreateTextures(GLenum target, GLsizei n, GLuint *textures); @@ -223,6 +196,9 @@ _mesa_DeleteTextures( GLsizei n, const GLuint *textures ); extern void GLAPIENTRY _mesa_BindTexture( GLenum target, GLuint texture ); +void GLAPIENTRY +_mesa_BindTextureUnit_no_error(GLuint unit, GLuint texture); + extern void GLAPIENTRY _mesa_BindTextureUnit(GLuint unit, GLuint texture);