X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fmain%2Fdd.h;h=70c53240e73da2e97d308369849b093a795e56e7;hb=d012e6d8fe2f4f1139af9e47a684960e8cde103e;hp=e60d019bb0d8c5933ea96275e9f7734ce646e652;hpb=7e0cb473b063072fee121d536e7e37679528e991;p=mesa.git diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h index e60d019bb0d..70c53240e73 100644 --- a/src/mesa/main/dd.h +++ b/src/mesa/main/dd.h @@ -189,12 +189,15 @@ struct dd_function_table { /*@{*/ /** - * Choose actual hardware texture format given the user-provided source - * image format and type and the desired internal format. In some - * cases, srcFormat and srcType can be GL_NONE. + * Choose actual hardware texture format given the texture target, the + * user-provided source image format and type and the desired internal + * format. In some cases, srcFormat and srcType can be GL_NONE. + * Note: target may be GL_TEXTURE_CUBE_MAP, but never + * GL_TEXTURE_CUBE_MAP_[POSITIVE/NEGATIVE]_[XYZ]. * Called by glTexImage(), etc. */ - gl_format (*ChooseTextureFormat)( struct gl_context *ctx, GLint internalFormat, + gl_format (*ChooseTextureFormat)( struct gl_context *ctx, + GLenum target, GLint internalFormat, GLenum srcFormat, GLenum srcType ); /** @@ -208,8 +211,6 @@ struct dd_function_table { */ void (*TexImage)(struct gl_context *ctx, GLuint dims, 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); @@ -250,14 +251,14 @@ struct dd_function_table { struct gl_texture_object *texObj); /** - * Called by glTexImage[123]D when user specifies a proxy texture - * target. - * - * \return GL_TRUE if the proxy test passes, or GL_FALSE if the test fails. + * Called by glTexImage, glCompressedTexImage, glCopyTexImage + * and glTexStorage to check if the dimensions of the texture image + * are too large. + * \param target any GL_PROXY_TEXTURE_x target + * \return GL_TRUE if the image is OK, GL_FALSE if too large */ GLboolean (*TestProxyTexImage)(struct gl_context *ctx, GLenum target, - GLint level, GLint internalFormat, - GLenum format, GLenum type, + GLint level, gl_format format, GLint width, GLint height, GLint depth, GLint border); /*@}*/ @@ -273,9 +274,6 @@ struct dd_function_table { */ void (*CompressedTexImage)(struct gl_context *ctx, GLuint dims, struct gl_texture_image *texImage, - GLint internalFormat, - GLsizei width, GLsizei height, GLsizei depth, - GLint border, GLsizei imageSize, const GLvoid *data); /** @@ -329,9 +327,7 @@ struct dd_function_table { /** Called to allocate memory for a single texture image */ GLboolean (*AllocTextureImageBuffer)(struct gl_context *ctx, - struct gl_texture_image *texImage, - gl_format format, GLsizei width, - GLsizei height, GLsizei depth); + struct gl_texture_image *texImage); /** Free the memory for a single texture image */ void (*FreeTextureImageBuffer)(struct gl_context *ctx, @@ -403,6 +399,13 @@ struct dd_function_table { GLboolean (*ProgramStringNotify)(struct gl_context *ctx, GLenum target, struct gl_program *prog); + /** + * Notify driver that the sampler uniforms for the current program have + * changed. On some drivers, this may require shader recompiles. + */ + void (*SamplerUniformChange)(struct gl_context *ctx, GLenum target, + struct gl_program *prog); + /** Query if program can be loaded onto hardware */ GLboolean (*IsProgramNative)(struct gl_context *ctx, GLenum target, struct gl_program *prog); @@ -900,7 +903,7 @@ typedef struct { void (GLAPIENTRYP Begin)( GLenum ); void (GLAPIENTRYP End)( void ); void (GLAPIENTRYP PrimitiveRestartNV)( void ); - /* GL_NV_vertex_program */ + /* Originally for GL_NV_vertex_program, now used only dlist.c and friends */ void (GLAPIENTRYP VertexAttrib1fNV)( GLuint index, GLfloat x ); void (GLAPIENTRYP VertexAttrib1fvNV)( GLuint index, const GLfloat *v ); void (GLAPIENTRYP VertexAttrib2fNV)( GLuint index, GLfloat x, GLfloat y );