[PATCH 2/7] wined3d: Add support for integer samplers.
Józef Kucia
jkucia at codeweavers.com
Thu Jan 21 18:11:35 CST 2016
Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
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:
--
2.4.10
More information about the wine-patches
mailing list