summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/glformats.c
diff options
context:
space:
mode:
authorTopi Pohjolainen <[email protected]>2016-11-26 18:03:56 +0200
committerTopi Pohjolainen <[email protected]>2017-01-27 08:57:26 +0200
commita283a4ee2fba6c8efa4f4e4eeea6b3d7b21df4d0 (patch)
treef6729e86b366ace5de0dfd91a8cc2b10fdb284f3 /src/mesa/main/glformats.c
parent542bb8504991c91d50f2b0302c2d04f58003030f (diff)
meta: Refactor texture format translation
Reviewed-by: Anuj Phogat <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Signed-off-by: Topi Pohjolainen <[email protected]>
Diffstat (limited to 'src/mesa/main/glformats.c')
-rw-r--r--src/mesa/main/glformats.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/mesa/main/glformats.c b/src/mesa/main/glformats.c
index a95909c9bc9..4f240206ff4 100644
--- a/src/mesa/main/glformats.c
+++ b/src/mesa/main/glformats.c
@@ -3632,6 +3632,21 @@ _mesa_format_from_format_and_type(GLenum format, GLenum type)
unreachable("Unsupported format");
}
+uint32_t
+_mesa_tex_format_from_format_and_type(const struct gl_context *ctx,
+ GLenum gl_format, GLenum type)
+{
+ mesa_format format = _mesa_format_from_format_and_type(gl_format, type);
+
+ if (_mesa_format_is_mesa_array_format(format))
+ format = _mesa_format_from_array_format(format);
+
+ if (format == MESA_FORMAT_NONE || !ctx->TextureFormatSupported[format])
+ return MESA_FORMAT_NONE;
+
+ return format;
+}
+
/**
* Returns true if \p internal_format is a sized internal format that
* is marked "Color Renderable" in Table 8.10 of the ES 3.2 specification.