diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2019-06-04 09:37:12 +0200 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2019-06-05 16:05:13 +0200 |
commit | 7f72710d73510b9d58e822ffa5b39dbd3fbbc11a (patch) | |
tree | dd903a1b468d004e0a2d212e6c770fb2eb93be00 /tests | |
parent | bece22b6385ff1b6088006edcac1cd0dc5201190 (diff) |
Uniform: add handling of uniform of Image based types
Change-Id: I94adc182a0f744b022fb13f4e2dbd16e47e2ba71
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/render/graphicshelpergl4/tst_graphicshelpergl4.cpp | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/tests/auto/render/graphicshelpergl4/tst_graphicshelpergl4.cpp b/tests/auto/render/graphicshelpergl4/tst_graphicshelpergl4.cpp index 8fb2dbc01..6e5c54303 100644 --- a/tests/auto/render/graphicshelpergl4/tst_graphicshelpergl4.cpp +++ b/tests/auto/render/graphicshelpergl4/tst_graphicshelpergl4.cpp @@ -174,6 +174,28 @@ const QByteArray fragCodeSamplers = QByteArrayLiteral( " texture(srect, texCoord);\n" \ "}\n"); +const QByteArray fragCodeImages = QByteArrayLiteral( + "#version 430 core\n" \ + "in vec2 texCoord;\n" \ + "out vec4 color;\n" \ + "layout(location = 1, rgba32f) readonly uniform image1D s1;\n" \ + "layout(location = 2, rg16f) readonly uniform image2D s2;\n" \ + "layout(location = 3, r16f) readonly uniform image2DArray s2a;\n" \ + "layout(location = 4, rg8) readonly uniform image3D s3;\n" \ + "layout(location = 5, rgba16_snorm) readonly uniform imageCube scube;\n" \ + "layout(location = 6, rg16) readonly uniform image2DRect srect;\n" \ + "void main()\n" \ + "{\n" \ + " ivec2 coords = ivec2(texCoord);\n"\ + " color = vec4(1, 0, 0, 1) *" \ + " imageLoad(s1, coords.x) *" \ + " imageLoad(s2, coords) *" \ + " imageLoad(s2a, ivec3(coords, 0)) *" \ + " imageLoad(s3, ivec3(coords, 0)) *" \ + " imageLoad(scube, ivec3(coords, 0)) *" \ + " imageLoad(srect, coords);\n" \ + "}\n"); + const QByteArray computeShader = QByteArrayLiteral( "#version 430 core\n" \ "uniform float particleStep;\n" \ @@ -1508,6 +1530,13 @@ private Q_SLOTS: ADD_UNIFORM_ENTRY(fragCodeSamplers, GL_SAMPLER_3D, 4, 1, 4); ADD_UNIFORM_ENTRY(fragCodeSamplers, GL_SAMPLER_CUBE, 5, 1, 4); ADD_UNIFORM_ENTRY(fragCodeSamplers, GL_SAMPLER_2D_RECT, 6, 1, 4); + + ADD_UNIFORM_ENTRY(fragCodeImages, GL_IMAGE_1D, 1, 1, 4); + ADD_UNIFORM_ENTRY(fragCodeImages, GL_IMAGE_2D, 2, 1, 4); + ADD_UNIFORM_ENTRY(fragCodeImages, GL_IMAGE_2D_ARRAY, 3, 1, 4); + ADD_UNIFORM_ENTRY(fragCodeImages, GL_IMAGE_3D, 4, 1, 4); + ADD_UNIFORM_ENTRY(fragCodeImages, GL_IMAGE_CUBE, 5, 1, 4); + ADD_UNIFORM_ENTRY(fragCodeImages, GL_IMAGE_2D_RECT, 6, 1, 4); } void uniformsByteSize() @@ -2329,6 +2358,38 @@ private Q_SLOTS: ADD_GL_TYPE_ENTRY(GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY, UniformType::Sampler); ADD_GL_TYPE_ENTRY(GL_UNSIGNED_INT_SAMPLER_CUBE, UniformType::Sampler); ADD_GL_TYPE_ENTRY(GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY, UniformType::Sampler); + ADD_GL_TYPE_ENTRY(GL_IMAGE_1D, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_IMAGE_2D, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_IMAGE_3D, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_IMAGE_2D_RECT, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_IMAGE_CUBE, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_IMAGE_BUFFER, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_IMAGE_1D_ARRAY, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_IMAGE_2D_ARRAY, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_IMAGE_CUBE_MAP_ARRAY, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_IMAGE_2D_MULTISAMPLE, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_IMAGE_2D_MULTISAMPLE_ARRAY, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_INT_IMAGE_1D, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_INT_IMAGE_2D, UniformType::Image); ADD_GL_TYPE_ENTRY(GL_INT_IMAGE_3D, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_INT_IMAGE_2D_RECT, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_INT_IMAGE_CUBE, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_INT_IMAGE_BUFFER, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_INT_IMAGE_1D_ARRAY, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_INT_IMAGE_2D_ARRAY, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_INT_IMAGE_CUBE_MAP_ARRAY, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_INT_IMAGE_2D_MULTISAMPLE, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_UNSIGNED_INT_IMAGE_1D, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_UNSIGNED_INT_IMAGE_2D, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_UNSIGNED_INT_IMAGE_3D, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_UNSIGNED_INT_IMAGE_2D_RECT, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_UNSIGNED_INT_IMAGE_CUBE, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_UNSIGNED_INT_IMAGE_BUFFER, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_UNSIGNED_INT_IMAGE_1D_ARRAY, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_UNSIGNED_INT_IMAGE_2D_ARRAY, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE, UniformType::Image); + ADD_GL_TYPE_ENTRY(GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY, UniformType::Image); } void uniformTypeFromGLType() |