=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: wined3d: Add support for integer samplers.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Jan 25 09:27:59 CST 2016
Module: wine
Branch: master
Commit: be84caf85c0dcf3d59b2d5f073cb6a316e4456c7
URL: http://source.winehq.org/git/wine.git/?a=commit;h=be84caf85c0dcf3d59b2d5f073cb6a316e4456c7
Author: Józef Kucia <jkucia at codeweavers.com>
Date: Mon Jan 25 10:57:24 2016 +0100
wined3d: Add support for integer samplers.
Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/wined3d/glsl_shader.c | 27 +++++++++++++++++++++++++--
1 file changed, 25 insertions(+), 2 deletions(-)
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 8dc97b9..f08cc02 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -1734,8 +1734,8 @@ static void shader_generate_glsl_declarations(const struct wined3d_context *cont
for (i = 0; i < reg_maps->sampler_map.count; ++i)
{
struct wined3d_shader_sampler_map_entry *entry;
+ const char *sampler_type_prefix, *sampler_type;
BOOL shadow_sampler, tex_rect;
- const char *sampler_type;
entry = ®_maps->sampler_map.entries[i];
@@ -1745,6 +1745,28 @@ static void shader_generate_glsl_declarations(const struct wined3d_context *cont
continue;
}
+ switch (reg_maps->resource_info[entry->resource_idx].data_type)
+ {
+ case WINED3D_DATA_FLOAT:
+ case WINED3D_DATA_UNORM:
+ case WINED3D_DATA_SNORM:
+ sampler_type_prefix = "";
+ break;
+
+ case WINED3D_DATA_INT:
+ sampler_type_prefix = "i";
+ break;
+
+ case WINED3D_DATA_UINT:
+ sampler_type_prefix = "u";
+ break;
+
+ default:
+ sampler_type_prefix = "";
+ ERR("Unhandled resource data type %#x.\n", reg_maps->resource_info[i].data_type);
+ break;
+ }
+
shadow_sampler = version->type == WINED3D_SHADER_TYPE_PIXEL && (ps_args->shadow & (1u << entry->sampler_idx));
switch (reg_maps->resource_info[entry->resource_idx].type)
{
@@ -1792,7 +1814,8 @@ static void shader_generate_glsl_declarations(const struct wined3d_context *cont
FIXME("Unhandled resource type %#x.\n", reg_maps->resource_info[i].type);
break;
}
- shader_addline(buffer, "uniform %s %s_sampler%u;\n", sampler_type, prefix, entry->bind_idx);
+ shader_addline(buffer, "uniform %s%s %s_sampler%u;\n",
+ sampler_type_prefix, sampler_type, prefix, entry->bind_idx);
}
/* Declare uniforms for NP2 texcoord fixup:
More information about the wine-cvs
mailing list