Blender V5.0
compositor_convert_infos.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
6
7GPU_SHADER_CREATE_INFO(compositor_convert_shared)
9TYPEDEF_SOURCE("gpu_shader_compositor_type_conversion.glsl")
10COMPUTE_SOURCE("compositor_convert.glsl")
12
13GPU_SHADER_CREATE_INFO(compositor_convert_float_shared)
14ADDITIONAL_INFO(compositor_convert_shared)
15SAMPLER(0, sampler2D, input_tx)
17
18GPU_SHADER_CREATE_INFO(compositor_convert_int_shared)
19ADDITIONAL_INFO(compositor_convert_shared)
20SAMPLER(0, isampler2D, input_tx)
22
23/* --------------------------------------------------------------------
24 * Float to other.
25 */
26
27GPU_SHADER_CREATE_INFO(compositor_convert_float_to_int)
28ADDITIONAL_INFO(compositor_convert_float_shared)
29IMAGE(0, SINT_16, write, iimage2D, output_img)
30DEFINE_VALUE("CONVERT_EXPRESSION(value)", "ivec4(float_to_int(value.x), ivec3(0))")
33
34GPU_SHADER_CREATE_INFO(compositor_convert_float_to_int2)
35ADDITIONAL_INFO(compositor_convert_float_shared)
36IMAGE(0, SINT_16_16, write, iimage2D, output_img)
37DEFINE_VALUE("CONVERT_EXPRESSION(value)", "ivec4(float_to_int2(value.x), ivec2(0))")
40
41GPU_SHADER_CREATE_INFO(compositor_convert_float_to_float2)
42ADDITIONAL_INFO(compositor_convert_float_shared)
43IMAGE(0, SFLOAT_16_16, write, image2D, output_img)
44DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(float_to_float2(value.x), vec2(0.0f))")
47
48GPU_SHADER_CREATE_INFO(compositor_convert_float_to_float3)
49ADDITIONAL_INFO(compositor_convert_float_shared)
50IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
51DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(float_to_float3(value.x), 0.0f)")
54
55GPU_SHADER_CREATE_INFO(compositor_convert_float_to_color)
56ADDITIONAL_INFO(compositor_convert_float_shared)
57IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
58DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(float_to_color(value.x))")
61
62GPU_SHADER_CREATE_INFO(compositor_convert_float_to_float4)
63ADDITIONAL_INFO(compositor_convert_float_shared)
64IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
65DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(float_to_float4(value.x))")
68
69GPU_SHADER_CREATE_INFO(compositor_convert_float_to_bool)
70ADDITIONAL_INFO(compositor_convert_float_shared)
71IMAGE(0, SINT_8, write, iimage2D, output_img)
72DEFINE_VALUE("CONVERT_EXPRESSION(value)", "ivec4(float_to_bool(value.x))")
75
76/* --------------------------------------------------------------------
77 * Int to other.
78 */
79
80GPU_SHADER_CREATE_INFO(compositor_convert_int_to_int2)
81ADDITIONAL_INFO(compositor_convert_int_shared)
82IMAGE(0, SINT_16_16, write, iimage2D, output_img)
83DEFINE_VALUE("CONVERT_EXPRESSION(value)", "ivec4(int_to_int2(value.x), ivec2(0))")
86
87GPU_SHADER_CREATE_INFO(compositor_convert_int_to_float)
88ADDITIONAL_INFO(compositor_convert_int_shared)
89IMAGE(0, SFLOAT_16, write, image2D, output_img)
90DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(int_to_float(value.x), vec3(0.0f))")
93
94GPU_SHADER_CREATE_INFO(compositor_convert_int_to_float2)
95ADDITIONAL_INFO(compositor_convert_int_shared)
96IMAGE(0, SFLOAT_16_16, write, image2D, output_img)
97DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(int_to_float2(value.x), vec2(0.0f))")
100
101GPU_SHADER_CREATE_INFO(compositor_convert_int_to_float3)
102ADDITIONAL_INFO(compositor_convert_int_shared)
103IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
104DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(int_to_float3(value.x), 0.0f)")
107
108GPU_SHADER_CREATE_INFO(compositor_convert_int_to_color)
109ADDITIONAL_INFO(compositor_convert_int_shared)
110IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
111DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(int_to_color(value.x))")
114
115GPU_SHADER_CREATE_INFO(compositor_convert_int_to_float4)
116ADDITIONAL_INFO(compositor_convert_int_shared)
117IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
118DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(int_to_float4(value.x))")
121
122GPU_SHADER_CREATE_INFO(compositor_convert_int_to_bool)
123ADDITIONAL_INFO(compositor_convert_int_shared)
124IMAGE(0, SINT_8, write, iimage2D, output_img)
125DEFINE_VALUE("CONVERT_EXPRESSION(value)", "ivec4(int_to_bool(value.x))")
128
129/* --------------------------------------------------------------------
130 * Int2 to other.
131 */
132
133GPU_SHADER_CREATE_INFO(compositor_convert_int2_to_int)
134ADDITIONAL_INFO(compositor_convert_int_shared)
135IMAGE(0, SINT_16, write, iimage2D, output_img)
136DEFINE_VALUE("CONVERT_EXPRESSION(value)", "ivec4(int2_to_int(value.xy), ivec3(0))")
139
140GPU_SHADER_CREATE_INFO(compositor_convert_int2_to_float)
141ADDITIONAL_INFO(compositor_convert_int_shared)
142IMAGE(0, SFLOAT_16, write, image2D, output_img)
143DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(int2_to_float(value.xy), vec3(0.0f))")
146
147GPU_SHADER_CREATE_INFO(compositor_convert_int2_to_float2)
148ADDITIONAL_INFO(compositor_convert_int_shared)
149IMAGE(0, SFLOAT_16_16, write, image2D, output_img)
150DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(int2_to_float2(value.xy), vec2(0.0f))")
153
154GPU_SHADER_CREATE_INFO(compositor_convert_int2_to_float3)
155ADDITIONAL_INFO(compositor_convert_int_shared)
156IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
157DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(int2_to_float3(value.xy), 0.0f)")
160
161GPU_SHADER_CREATE_INFO(compositor_convert_int2_to_color)
162ADDITIONAL_INFO(compositor_convert_int_shared)
163IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
164DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(int2_to_color(value.xy))")
167
168GPU_SHADER_CREATE_INFO(compositor_convert_int2_to_float4)
169ADDITIONAL_INFO(compositor_convert_int_shared)
170IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
171DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(int2_to_float4(value.xy))")
174
175GPU_SHADER_CREATE_INFO(compositor_convert_int2_to_bool)
176ADDITIONAL_INFO(compositor_convert_int_shared)
177IMAGE(0, SINT_8, write, iimage2D, output_img)
178DEFINE_VALUE("CONVERT_EXPRESSION(value)", "ivec4(int2_to_bool(value.xy))")
181
182/* --------------------------------------------------------------------
183 * Float2 to other.
184 */
185
186GPU_SHADER_CREATE_INFO(compositor_convert_float2_to_float)
187ADDITIONAL_INFO(compositor_convert_float_shared)
188IMAGE(0, SFLOAT_16, write, image2D, output_img)
189DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(float2_to_float(value.xy), vec3(0.0f))")
192
193GPU_SHADER_CREATE_INFO(compositor_convert_float2_to_int)
194ADDITIONAL_INFO(compositor_convert_float_shared)
195IMAGE(0, SINT_16, write, iimage2D, output_img)
196DEFINE_VALUE("CONVERT_EXPRESSION(value)", "ivec4(float2_to_int(value.xy), ivec3(0))")
199
200GPU_SHADER_CREATE_INFO(compositor_convert_float2_to_int2)
201ADDITIONAL_INFO(compositor_convert_float_shared)
202IMAGE(0, SINT_16_16, write, iimage2D, output_img)
203DEFINE_VALUE("CONVERT_EXPRESSION(value)", "ivec4(float2_to_int2(value.xy), ivec2(0))")
206
207GPU_SHADER_CREATE_INFO(compositor_convert_float2_to_float3)
208ADDITIONAL_INFO(compositor_convert_float_shared)
209IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
210DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(float2_to_float3(value.xy), 0.0f)")
213
214GPU_SHADER_CREATE_INFO(compositor_convert_float2_to_color)
215ADDITIONAL_INFO(compositor_convert_float_shared)
216IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
217DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(float2_to_color(value.xy))")
220
221GPU_SHADER_CREATE_INFO(compositor_convert_float2_to_float4)
222ADDITIONAL_INFO(compositor_convert_float_shared)
223IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
224DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(float2_to_float4(value.xy))")
227
228GPU_SHADER_CREATE_INFO(compositor_convert_float2_to_bool)
229ADDITIONAL_INFO(compositor_convert_float_shared)
230IMAGE(0, SINT_8, write, iimage2D, output_img)
231DEFINE_VALUE("CONVERT_EXPRESSION(value)", "ivec4(float2_to_bool(value.xy))")
234
235/* --------------------------------------------------------------------
236 * Float3 to other.
237 */
238
239GPU_SHADER_CREATE_INFO(compositor_convert_float3_to_float)
240ADDITIONAL_INFO(compositor_convert_float_shared)
241IMAGE(0, SFLOAT_16, write, image2D, output_img)
242DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(float3_to_float(value.xyz), vec3(0.0f))")
245
246GPU_SHADER_CREATE_INFO(compositor_convert_float3_to_int)
247ADDITIONAL_INFO(compositor_convert_float_shared)
248IMAGE(0, SINT_16, write, iimage2D, output_img)
249DEFINE_VALUE("CONVERT_EXPRESSION(value)", "ivec4(float3_to_int(value.xyz), ivec3(0))")
252
253GPU_SHADER_CREATE_INFO(compositor_convert_float3_to_int2)
254ADDITIONAL_INFO(compositor_convert_float_shared)
255IMAGE(0, SINT_16_16, write, iimage2D, output_img)
256DEFINE_VALUE("CONVERT_EXPRESSION(value)", "ivec4(float3_to_int2(value.xyz), ivec2(0))")
259
260GPU_SHADER_CREATE_INFO(compositor_convert_float3_to_float2)
261ADDITIONAL_INFO(compositor_convert_float_shared)
262IMAGE(0, SFLOAT_16_16, write, image2D, output_img)
263DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(float3_to_float2(value.xyz), vec2(0.0f))")
266
267GPU_SHADER_CREATE_INFO(compositor_convert_float3_to_color)
268ADDITIONAL_INFO(compositor_convert_float_shared)
269IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
270DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(float3_to_color(value.xyz))")
273
274GPU_SHADER_CREATE_INFO(compositor_convert_float3_to_float4)
275ADDITIONAL_INFO(compositor_convert_float_shared)
276IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
277DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(float3_to_float4(value.xyz))")
280
281GPU_SHADER_CREATE_INFO(compositor_convert_float3_to_bool)
282ADDITIONAL_INFO(compositor_convert_float_shared)
283IMAGE(0, SINT_8, write, iimage2D, output_img)
284DEFINE_VALUE("CONVERT_EXPRESSION(value)", "ivec4(float3_to_bool(value.xyz))")
287
288/* --------------------------------------------------------------------
289 * Color to other.
290 */
291
292GPU_SHADER_CREATE_INFO(compositor_convert_color_to_float)
293ADDITIONAL_INFO(compositor_convert_float_shared)
294PUSH_CONSTANT(float3, luminance_coefficients_u)
295IMAGE(0, SFLOAT_16, write, image2D, output_img)
296DEFINE_VALUE("CONVERT_EXPRESSION(value)",
297 "vec4(color_to_float(value, luminance_coefficients_u), vec3(0.0f))")
300
301GPU_SHADER_CREATE_INFO(compositor_convert_color_to_int)
302ADDITIONAL_INFO(compositor_convert_float_shared)
303PUSH_CONSTANT(float3, luminance_coefficients_u)
304IMAGE(0, SINT_16, write, iimage2D, output_img)
305DEFINE_VALUE("CONVERT_EXPRESSION(value)",
306 "ivec4(color_to_int(value, luminance_coefficients_u), ivec3(0))")
309
310GPU_SHADER_CREATE_INFO(compositor_convert_color_to_int2)
311ADDITIONAL_INFO(compositor_convert_float_shared)
312IMAGE(0, SINT_16_16, write, iimage2D, output_img)
313DEFINE_VALUE("CONVERT_EXPRESSION(value)", "ivec4(color_to_int2(value), ivec2(0))")
316
317GPU_SHADER_CREATE_INFO(compositor_convert_color_to_float2)
318ADDITIONAL_INFO(compositor_convert_float_shared)
319IMAGE(0, SFLOAT_16_16, write, image2D, output_img)
320DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(color_to_float2(value), vec2(0.0f))")
323
324GPU_SHADER_CREATE_INFO(compositor_convert_color_to_float3)
325ADDITIONAL_INFO(compositor_convert_float_shared)
326IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
327DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(color_to_float3(value), 0.0f)")
330
331GPU_SHADER_CREATE_INFO(compositor_convert_color_to_float4)
332ADDITIONAL_INFO(compositor_convert_float_shared)
333IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
334DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(color_to_float4(value))")
337
338GPU_SHADER_CREATE_INFO(compositor_convert_color_to_bool)
339ADDITIONAL_INFO(compositor_convert_float_shared)
340PUSH_CONSTANT(float3, luminance_coefficients_u)
341IMAGE(0, SINT_8, write, iimage2D, output_img)
342DEFINE_VALUE("CONVERT_EXPRESSION(value)", "ivec4(color_to_bool(value, luminance_coefficients_u))")
345
346/* --------------------------------------------------------------------
347 * Float4 to other.
348 */
349
350GPU_SHADER_CREATE_INFO(compositor_convert_float4_to_float)
351ADDITIONAL_INFO(compositor_convert_float_shared)
352IMAGE(0, SFLOAT_16, write, image2D, output_img)
353DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(float4_to_float(value), vec3(0.0f))")
356
357GPU_SHADER_CREATE_INFO(compositor_convert_float4_to_int)
358ADDITIONAL_INFO(compositor_convert_float_shared)
359IMAGE(0, SINT_16, write, iimage2D, output_img)
360DEFINE_VALUE("CONVERT_EXPRESSION(value)", "ivec4(float4_to_int(value), ivec3(0))")
363
364GPU_SHADER_CREATE_INFO(compositor_convert_float4_to_int2)
365ADDITIONAL_INFO(compositor_convert_float_shared)
366IMAGE(0, SINT_16_16, write, iimage2D, output_img)
367DEFINE_VALUE("CONVERT_EXPRESSION(value)", "ivec4(float4_to_int2(value), ivec2(0))")
370
371GPU_SHADER_CREATE_INFO(compositor_convert_float4_to_float2)
372ADDITIONAL_INFO(compositor_convert_float_shared)
373IMAGE(0, SFLOAT_16_16, write, image2D, output_img)
374DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(float4_to_float2(value), vec2(0.0f))")
377
378GPU_SHADER_CREATE_INFO(compositor_convert_float4_to_float3)
379ADDITIONAL_INFO(compositor_convert_float_shared)
380IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
381DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(float4_to_float3(value), 0.0f)")
384
385GPU_SHADER_CREATE_INFO(compositor_convert_float4_to_color)
386ADDITIONAL_INFO(compositor_convert_float_shared)
387IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
388DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(float4_to_color(value))")
391
392GPU_SHADER_CREATE_INFO(compositor_convert_float4_to_bool)
393ADDITIONAL_INFO(compositor_convert_float_shared)
394IMAGE(0, SINT_8, write, iimage2D, output_img)
395DEFINE_VALUE("CONVERT_EXPRESSION(value)", "ivec4(float4_to_bool(value))")
398
399/* --------------------------------------------------------------------
400 * Bool to other.
401 */
402
403GPU_SHADER_CREATE_INFO(compositor_convert_bool_to_float)
404ADDITIONAL_INFO(compositor_convert_int_shared)
405IMAGE(0, SFLOAT_16, write, image2D, output_img)
406DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(bool_to_float(bool(value.x)), vec3(0.0f))")
409
410GPU_SHADER_CREATE_INFO(compositor_convert_bool_to_int)
411ADDITIONAL_INFO(compositor_convert_int_shared)
412IMAGE(0, SINT_16, write, iimage2D, output_img)
413DEFINE_VALUE("CONVERT_EXPRESSION(value)", "ivec4(bool_to_int(bool(value.x)), ivec3(0))")
416
417GPU_SHADER_CREATE_INFO(compositor_convert_bool_to_int2)
418ADDITIONAL_INFO(compositor_convert_int_shared)
419IMAGE(0, SINT_16_16, write, iimage2D, output_img)
420DEFINE_VALUE("CONVERT_EXPRESSION(value)", "ivec4(bool_to_int2(bool(value.x)), ivec2(0))")
423
424GPU_SHADER_CREATE_INFO(compositor_convert_bool_to_float2)
425ADDITIONAL_INFO(compositor_convert_int_shared)
426IMAGE(0, SFLOAT_16_16, write, image2D, output_img)
427DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(bool_to_float2(bool(value.x)), vec2(0.0f))")
430
431GPU_SHADER_CREATE_INFO(compositor_convert_bool_to_float3)
432ADDITIONAL_INFO(compositor_convert_int_shared)
433IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
434DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(bool_to_float3(bool(value.x)), 0.0f)")
437
438GPU_SHADER_CREATE_INFO(compositor_convert_bool_to_color)
439ADDITIONAL_INFO(compositor_convert_int_shared)
440IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
441DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(bool_to_color(bool(value.x)))")
444
445GPU_SHADER_CREATE_INFO(compositor_convert_bool_to_float4)
446ADDITIONAL_INFO(compositor_convert_int_shared)
447IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
448DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(bool_to_float4(bool(value.x)))")
451
452/* --------------------------------------------------------------------
453 * Color to channel.
454 */
455
456GPU_SHADER_CREATE_INFO(compositor_convert_color_to_alpha)
457ADDITIONAL_INFO(compositor_convert_float_shared)
458IMAGE(0, SFLOAT_16, write, image2D, output_img)
459DEFINE_VALUE("CONVERT_EXPRESSION(value)", "vec4(value.a)")
#define GPU_SHADER_CREATE_INFO(_info)
#define GPU_SHADER_CREATE_END()
#define TYPEDEF_SOURCE(filename)
#define SAMPLER(slot, type, name)
#define ADDITIONAL_INFO(info_name)
#define PUSH_CONSTANT(type, name)
#define LOCAL_GROUP_SIZE(...)
#define IMAGE(slot, format, qualifiers, type, name)
#define COMPUTE_SOURCE(filename)
#define DO_STATIC_COMPILATION()
#define DEFINE_VALUE(name, value)
ImageBase< int, 2 > iimage2D
ImageBase< float, 2 > image2D
SamplerBase< int, 2 > isampler2D
SamplerBase< float, 2 > sampler2D