mesa: Export shader image format to mesa format conversion function.

This function will be useful for back-ends to translate an image internal
format as specified in GLSL code into a mesa format.

Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
Francisco Jerez 2014-11-18 14:14:46 +02:00
parent 96142a3e87
commit dded5271e4
2 changed files with 12 additions and 5 deletions

View file

@ -58,8 +58,8 @@
# define MESA_FORMAT_SIGNED_RG_8 MESA_FORMAT_R8G8_SNORM
#endif
static mesa_format
get_image_format(GLenum format)
mesa_format
_mesa_get_shader_image_format(GLenum format)
{
switch (format) {
case GL_RGBA32F:
@ -421,7 +421,7 @@ validate_bind_image_texture(struct gl_context *ctx, GLuint unit,
return GL_FALSE;
}
if (!get_image_format(format)) {
if (!_mesa_get_shader_image_format(format)) {
_mesa_error(ctx, GL_INVALID_VALUE, "glBindImageTexture(format)");
return GL_FALSE;
}
@ -458,7 +458,7 @@ _mesa_BindImageTexture(GLuint unit, GLuint texture, GLint level,
u->Level = level;
u->Access = access;
u->Format = format;
u->_ActualFormat = get_image_format(format);
u->_ActualFormat = _mesa_get_shader_image_format(format);
if (_mesa_tex_target_is_layered(t->Target)) {
u->Layered = layered;
@ -573,7 +573,7 @@ _mesa_BindImageTextures(GLuint first, GLsizei count, const GLuint *textures)
continue;
}
actualFormat = get_image_format(image->InternalFormat);
actualFormat = _mesa_get_shader_image_format(image->InternalFormat);
if (actualFormat == MESA_FORMAT_NONE) {
/* The ARB_multi_bind spec says:

View file

@ -28,9 +28,16 @@
#define SHADERIMAGE_H
#include "glheader.h"
#include "formats.h"
struct gl_context;
/**
* Get the matching mesa_format for a shader image format GL enum.
*/
mesa_format
_mesa_get_shader_image_format(GLenum format);
/**
* Recalculate the \c _Valid flag of a context's shader image units.
*