summaryrefslogtreecommitdiffstats
path: root/src/gui/rhi
diff options
context:
space:
mode:
authorChristian Strømme <christian.stromme@qt.io>2022-02-02 10:09:54 +0100
committerMarc Mutz <marc.mutz@qt.io>2022-02-05 03:55:11 +0100
commit96f16e7487f9a78fdb4059d8f839c552bab8f341 (patch)
tree3d24ffc4fc458ced4fab9328442e23e93f1d8d4e /src/gui/rhi
parentc3c2a0f75486b0dd10524219e99f6d88d023981c (diff)
Convert string tables in QShaderDescription to use string literals [1/2]
Avoid allocating all these strings on load. Part 1: tables. Pick-to: 6.3 6.2 Change-Id: Ibf7af9aea0088efe68b247c68022b98143634616 Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'src/gui/rhi')
-rw-r--r--src/gui/rhi/qshaderdescription.cpp246
1 files changed, 123 insertions, 123 deletions
diff --git a/src/gui/rhi/qshaderdescription.cpp b/src/gui/rhi/qshaderdescription.cpp
index 67d70281e6..136627409c 100644
--- a/src/gui/rhi/qshaderdescription.cpp
+++ b/src/gui/rhi/qshaderdescription.cpp
@@ -564,147 +564,147 @@ std::array<uint, 3> QShaderDescription::computeShaderLocalSize() const
return d->localSize;
}
-static struct TypeTab {
- QString k;
+static const struct TypeTab {
+ const char k[20];
QShaderDescription::VariableType v;
} typeTab[] = {
- { QLatin1String("float"), QShaderDescription::Float },
- { QLatin1String("vec2"), QShaderDescription::Vec2 },
- { QLatin1String("vec3"), QShaderDescription::Vec3 },
- { QLatin1String("vec4"), QShaderDescription::Vec4 },
- { QLatin1String("mat2"), QShaderDescription::Mat2 },
- { QLatin1String("mat3"), QShaderDescription::Mat3 },
- { QLatin1String("mat4"), QShaderDescription::Mat4 },
-
- { QLatin1String("struct"), QShaderDescription::Struct },
-
- { QLatin1String("sampler1D"), QShaderDescription::Sampler1D },
- { QLatin1String("sampler2D"), QShaderDescription::Sampler2D },
- { QLatin1String("sampler2DMS"), QShaderDescription::Sampler2DMS },
- { QLatin1String("sampler3D"), QShaderDescription::Sampler3D },
- { QLatin1String("samplerCube"), QShaderDescription::SamplerCube },
- { QLatin1String("sampler1DArray"), QShaderDescription::Sampler1DArray },
- { QLatin1String("sampler2DArray"), QShaderDescription::Sampler2DArray },
- { QLatin1String("sampler2DMSArray"), QShaderDescription::Sampler2DMSArray },
- { QLatin1String("sampler3DArray"), QShaderDescription::Sampler3DArray },
- { QLatin1String("samplerCubeArray"), QShaderDescription::SamplerCubeArray },
- { QLatin1String("samplerRect"), QShaderDescription::SamplerRect },
- { QLatin1String("samplerBuffer"), QShaderDescription::SamplerBuffer },
- { QLatin1String("samplerExternalOES"), QShaderDescription::SamplerExternalOES },
- { QLatin1String("sampler"), QShaderDescription::Sampler },
-
- { QLatin1String("mat2x3"), QShaderDescription::Mat2x3 },
- { QLatin1String("mat2x4"), QShaderDescription::Mat2x4 },
- { QLatin1String("mat3x2"), QShaderDescription::Mat3x2 },
- { QLatin1String("mat3x4"), QShaderDescription::Mat3x4 },
- { QLatin1String("mat4x2"), QShaderDescription::Mat4x2 },
- { QLatin1String("mat4x3"), QShaderDescription::Mat4x3 },
-
- { QLatin1String("int"), QShaderDescription::Int },
- { QLatin1String("ivec2"), QShaderDescription::Int2 },
- { QLatin1String("ivec3"), QShaderDescription::Int3 },
- { QLatin1String("ivec4"), QShaderDescription::Int4 },
-
- { QLatin1String("uint"), QShaderDescription::Uint },
- { QLatin1String("uvec2"), QShaderDescription::Uint2 },
- { QLatin1String("uvec3"), QShaderDescription::Uint3 },
- { QLatin1String("uvec4"), QShaderDescription::Uint4 },
-
- { QLatin1String("bool"), QShaderDescription::Bool },
- { QLatin1String("bvec2"), QShaderDescription::Bool2 },
- { QLatin1String("bvec3"), QShaderDescription::Bool3 },
- { QLatin1String("bvec4"), QShaderDescription::Bool4 },
-
- { QLatin1String("double"), QShaderDescription::Double },
- { QLatin1String("dvec2"), QShaderDescription::Double2 },
- { QLatin1String("dvec3"), QShaderDescription::Double3 },
- { QLatin1String("dvec4"), QShaderDescription::Double4 },
- { QLatin1String("dmat2"), QShaderDescription::DMat2 },
- { QLatin1String("dmat3"), QShaderDescription::DMat3 },
- { QLatin1String("dmat4"), QShaderDescription::DMat4 },
- { QLatin1String("dmat2x3"), QShaderDescription::DMat2x3 },
- { QLatin1String("dmat2x4"), QShaderDescription::DMat2x4 },
- { QLatin1String("dmat3x2"), QShaderDescription::DMat3x2 },
- { QLatin1String("dmat3x4"), QShaderDescription::DMat3x4 },
- { QLatin1String("dmat4x2"), QShaderDescription::DMat4x2 },
- { QLatin1String("dmat4x3"), QShaderDescription::DMat4x3 },
-
- { QLatin1String("image1D"), QShaderDescription::Image1D },
- { QLatin1String("image2D"), QShaderDescription::Image2D },
- { QLatin1String("image2DMS"), QShaderDescription::Image2DMS },
- { QLatin1String("image3D"), QShaderDescription::Image3D },
- { QLatin1String("imageCube"), QShaderDescription::ImageCube },
- { QLatin1String("image1DArray"), QShaderDescription::Image1DArray },
- { QLatin1String("image2DArray"), QShaderDescription::Image2DArray },
- { QLatin1String("image2DMSArray"), QShaderDescription::Image2DMSArray },
- { QLatin1String("image3DArray"), QShaderDescription::Image3DArray },
- { QLatin1String("imageCubeArray"), QShaderDescription::ImageCubeArray },
- { QLatin1String("imageRect"), QShaderDescription::ImageRect },
- { QLatin1String("imageBuffer"), QShaderDescription::ImageBuffer }
+ { "float", QShaderDescription::Float },
+ { "vec2", QShaderDescription::Vec2 },
+ { "vec3", QShaderDescription::Vec3 },
+ { "vec4", QShaderDescription::Vec4 },
+ { "mat2", QShaderDescription::Mat2 },
+ { "mat3", QShaderDescription::Mat3 },
+ { "mat4", QShaderDescription::Mat4 },
+
+ { "struct", QShaderDescription::Struct },
+
+ { "sampler1D", QShaderDescription::Sampler1D },
+ { "sampler2D", QShaderDescription::Sampler2D },
+ { "sampler2DMS", QShaderDescription::Sampler2DMS },
+ { "sampler3D", QShaderDescription::Sampler3D },
+ { "samplerCube", QShaderDescription::SamplerCube },
+ { "sampler1DArray", QShaderDescription::Sampler1DArray },
+ { "sampler2DArray", QShaderDescription::Sampler2DArray },
+ { "sampler2DMSArray", QShaderDescription::Sampler2DMSArray },
+ { "sampler3DArray", QShaderDescription::Sampler3DArray },
+ { "samplerCubeArray", QShaderDescription::SamplerCubeArray },
+ { "samplerRect", QShaderDescription::SamplerRect },
+ { "samplerBuffer", QShaderDescription::SamplerBuffer },
+ { "samplerExternalOES", QShaderDescription::SamplerExternalOES },
+ { "sampler", QShaderDescription::Sampler },
+
+ { "mat2x3", QShaderDescription::Mat2x3 },
+ { "mat2x4", QShaderDescription::Mat2x4 },
+ { "mat3x2", QShaderDescription::Mat3x2 },
+ { "mat3x4", QShaderDescription::Mat3x4 },
+ { "mat4x2", QShaderDescription::Mat4x2 },
+ { "mat4x3", QShaderDescription::Mat4x3 },
+
+ { "int", QShaderDescription::Int },
+ { "ivec2", QShaderDescription::Int2 },
+ { "ivec3", QShaderDescription::Int3 },
+ { "ivec4", QShaderDescription::Int4 },
+
+ { "uint", QShaderDescription::Uint },
+ { "uvec2", QShaderDescription::Uint2 },
+ { "uvec3", QShaderDescription::Uint3 },
+ { "uvec4", QShaderDescription::Uint4 },
+
+ { "bool", QShaderDescription::Bool },
+ { "bvec2", QShaderDescription::Bool2 },
+ { "bvec3", QShaderDescription::Bool3 },
+ { "bvec4", QShaderDescription::Bool4 },
+
+ { "double", QShaderDescription::Double },
+ { "dvec2", QShaderDescription::Double2 },
+ { "dvec3", QShaderDescription::Double3 },
+ { "dvec4", QShaderDescription::Double4 },
+ { "dmat2", QShaderDescription::DMat2 },
+ { "dmat3", QShaderDescription::DMat3 },
+ { "dmat4", QShaderDescription::DMat4 },
+ { "dmat2x3", QShaderDescription::DMat2x3 },
+ { "dmat2x4", QShaderDescription::DMat2x4 },
+ { "dmat3x2", QShaderDescription::DMat3x2 },
+ { "dmat3x4", QShaderDescription::DMat3x4 },
+ { "dmat4x2", QShaderDescription::DMat4x2 },
+ { "dmat4x3", QShaderDescription::DMat4x3 },
+
+ { "image1D", QShaderDescription::Image1D },
+ { "image2D", QShaderDescription::Image2D },
+ { "image2DMS", QShaderDescription::Image2DMS },
+ { "image3D", QShaderDescription::Image3D },
+ { "imageCube", QShaderDescription::ImageCube },
+ { "image1DArray", QShaderDescription::Image1DArray },
+ { "image2DArray", QShaderDescription::Image2DArray },
+ { "image2DMSArray", QShaderDescription::Image2DMSArray },
+ { "image3DArray", QShaderDescription::Image3DArray },
+ { "imageCubeArray", QShaderDescription::ImageCubeArray },
+ { "imageRect", QShaderDescription::ImageRect },
+ { "imageBuffer", QShaderDescription::ImageBuffer }
};
-static QString typeStr(const QShaderDescription::VariableType &t)
+static QLatin1String typeStr(const QShaderDescription::VariableType &t)
{
for (size_t i = 0; i < sizeof(typeTab) / sizeof(TypeTab); ++i) {
if (typeTab[i].v == t)
- return typeTab[i].k;
+ return QLatin1String(typeTab[i].k);
}
- return QString();
+ return QLatin1String();
}
-static struct ImageFormatTab {
- QString k;
+static const struct ImageFormatTab {
+ const char k[15];
QShaderDescription::ImageFormat v;
} imageFormatTab[] {
- { QLatin1String("unknown"), QShaderDescription::ImageFormatUnknown },
- { QLatin1String("rgba32f"), QShaderDescription::ImageFormatRgba32f },
- { QLatin1String("rgba16"), QShaderDescription::ImageFormatRgba16f },
- { QLatin1String("r32f"), QShaderDescription::ImageFormatR32f },
- { QLatin1String("rgba8"), QShaderDescription::ImageFormatRgba8 },
- { QLatin1String("rgba8_snorm"), QShaderDescription::ImageFormatRgba8Snorm },
- { QLatin1String("rg32f"), QShaderDescription::ImageFormatRg32f },
- { QLatin1String("rg16f"), QShaderDescription::ImageFormatRg16f },
- { QLatin1String("r11f_g11f_b10f"), QShaderDescription::ImageFormatR11fG11fB10f },
- { QLatin1String("r16f"), QShaderDescription::ImageFormatR16f },
- { QLatin1String("rgba16"), QShaderDescription::ImageFormatRgba16 },
- { QLatin1String("rgb10_a2"), QShaderDescription::ImageFormatRgb10A2 },
- { QLatin1String("rg16"), QShaderDescription::ImageFormatRg16 },
- { QLatin1String("rg8"), QShaderDescription::ImageFormatRg8 },
- { QLatin1String("r16"), QShaderDescription::ImageFormatR16 },
- { QLatin1String("r8"), QShaderDescription::ImageFormatR8 },
- { QLatin1String("rgba16_snorm"), QShaderDescription::ImageFormatRgba16Snorm },
- { QLatin1String("rg16_snorm"), QShaderDescription::ImageFormatRg16Snorm },
- { QLatin1String("rg8_snorm"), QShaderDescription::ImageFormatRg8Snorm },
- { QLatin1String("r16_snorm"), QShaderDescription::ImageFormatR16Snorm },
- { QLatin1String("r8_snorm"), QShaderDescription::ImageFormatR8Snorm },
- { QLatin1String("rgba32i"), QShaderDescription::ImageFormatRgba32i },
- { QLatin1String("rgba16i"), QShaderDescription::ImageFormatRgba16i },
- { QLatin1String("rgba8i"), QShaderDescription::ImageFormatRgba8i },
- { QLatin1String("r32i"), QShaderDescription::ImageFormatR32i },
- { QLatin1String("rg32i"), QShaderDescription::ImageFormatRg32i },
- { QLatin1String("rg16i"), QShaderDescription::ImageFormatRg16i },
- { QLatin1String("rg8i"), QShaderDescription::ImageFormatRg8i },
- { QLatin1String("r16i"), QShaderDescription::ImageFormatR16i },
- { QLatin1String("r8i"), QShaderDescription::ImageFormatR8i },
- { QLatin1String("rgba32ui"), QShaderDescription::ImageFormatRgba32ui },
- { QLatin1String("rgba16ui"), QShaderDescription::ImageFormatRgba16ui },
- { QLatin1String("rgba8ui"), QShaderDescription::ImageFormatRgba8ui },
- { QLatin1String("r32ui"), QShaderDescription::ImageFormatR32ui },
- { QLatin1String("rgb10_a2ui"), QShaderDescription::ImageFormatRgb10a2ui },
- { QLatin1String("rg32ui"), QShaderDescription::ImageFormatRg32ui },
- { QLatin1String("rg16ui"), QShaderDescription::ImageFormatRg16ui },
- { QLatin1String("rg8ui"), QShaderDescription::ImageFormatRg8ui },
- { QLatin1String("r16ui"), QShaderDescription::ImageFormatR16ui },
- { QLatin1String("r8ui"), QShaderDescription::ImageFormatR8ui }
+ { "unknown", QShaderDescription::ImageFormatUnknown },
+ { "rgba32f", QShaderDescription::ImageFormatRgba32f },
+ { "rgba16", QShaderDescription::ImageFormatRgba16f },
+ { "r32f", QShaderDescription::ImageFormatR32f },
+ { "rgba8", QShaderDescription::ImageFormatRgba8 },
+ { "rgba8_snorm", QShaderDescription::ImageFormatRgba8Snorm },
+ { "rg32f", QShaderDescription::ImageFormatRg32f },
+ { "rg16f", QShaderDescription::ImageFormatRg16f },
+ { "r11f_g11f_b10f", QShaderDescription::ImageFormatR11fG11fB10f },
+ { "r16f", QShaderDescription::ImageFormatR16f },
+ { "rgba16", QShaderDescription::ImageFormatRgba16 },
+ { "rgb10_a2", QShaderDescription::ImageFormatRgb10A2 },
+ { "rg16", QShaderDescription::ImageFormatRg16 },
+ { "rg8", QShaderDescription::ImageFormatRg8 },
+ { "r16", QShaderDescription::ImageFormatR16 },
+ { "r8", QShaderDescription::ImageFormatR8 },
+ { "rgba16_snorm", QShaderDescription::ImageFormatRgba16Snorm },
+ { "rg16_snorm", QShaderDescription::ImageFormatRg16Snorm },
+ { "rg8_snorm", QShaderDescription::ImageFormatRg8Snorm },
+ { "r16_snorm", QShaderDescription::ImageFormatR16Snorm },
+ { "r8_snorm", QShaderDescription::ImageFormatR8Snorm },
+ { "rgba32i", QShaderDescription::ImageFormatRgba32i },
+ { "rgba16i", QShaderDescription::ImageFormatRgba16i },
+ { "rgba8i", QShaderDescription::ImageFormatRgba8i },
+ { "r32i", QShaderDescription::ImageFormatR32i },
+ { "rg32i", QShaderDescription::ImageFormatRg32i },
+ { "rg16i", QShaderDescription::ImageFormatRg16i },
+ { "rg8i", QShaderDescription::ImageFormatRg8i },
+ { "r16i", QShaderDescription::ImageFormatR16i },
+ { "r8i", QShaderDescription::ImageFormatR8i },
+ { "rgba32ui", QShaderDescription::ImageFormatRgba32ui },
+ { "rgba16ui", QShaderDescription::ImageFormatRgba16ui },
+ { "rgba8ui", QShaderDescription::ImageFormatRgba8ui },
+ { "r32ui", QShaderDescription::ImageFormatR32ui },
+ { "rgb10_a2ui", QShaderDescription::ImageFormatRgb10a2ui },
+ { "rg32ui", QShaderDescription::ImageFormatRg32ui },
+ { "rg16ui", QShaderDescription::ImageFormatRg16ui },
+ { "rg8ui", QShaderDescription::ImageFormatRg8ui },
+ { "r16ui", QShaderDescription::ImageFormatR16ui },
+ { "r8ui", QShaderDescription::ImageFormatR8ui }
};
-static QString imageFormatStr(const QShaderDescription::ImageFormat &f)
+static QLatin1String imageFormatStr(const QShaderDescription::ImageFormat &f)
{
for (size_t i = 0; i < sizeof(imageFormatTab) / sizeof(ImageFormatTab); ++i) {
if (imageFormatTab[i].v == f)
- return imageFormatTab[i].k;
+ return QLatin1String(imageFormatTab[i].k);
}
- return QString();
+ return QLatin1String();
}
#ifndef QT_NO_DEBUG_STREAM