summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorFrancisco Jerez <[email protected]>2014-11-18 14:14:46 +0200
committerFrancisco Jerez <[email protected]>2015-05-04 17:44:15 +0300
commitdded5271e4e811fa6df5005df0961295f58d3a1d (patch)
tree2cd9f6d03708107522f63e9c6a71fb4165f30da7 /src/mesa
parent96142a3e87abb9e61ee87e895df64f5f64606e83 (diff)
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 <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/main/shaderimage.c10
-rw-r--r--src/mesa/main/shaderimage.h7
2 files changed, 12 insertions, 5 deletions
diff --git a/src/mesa/main/shaderimage.c b/src/mesa/main/shaderimage.c
index dcbcca62360..f8120731e5a 100644
--- a/src/mesa/main/shaderimage.c
+++ b/src/mesa/main/shaderimage.c
@@ -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:
diff --git a/src/mesa/main/shaderimage.h b/src/mesa/main/shaderimage.h
index 733ac774777..4aa859ca5cc 100644
--- a/src/mesa/main/shaderimage.h
+++ b/src/mesa/main/shaderimage.h
@@ -28,10 +28,17 @@
#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.
*
* To be called when the state of any texture bound to an image unit