Vom Vulkan Tutorial Legendes:Ärger Vulkan Shader
#version 450
#extension GL_ARB_separate_shader_objects : enable
out gl_PerVertex {
vec4 gl_Position;
};
vec2 positions[3] = vec2[](
vec2(0.0, -0.5),
vec2(0.5, 0.5),
vec2(-0.5, 0.5)
);
void main() {
gl_Position = vec4(positions[gl_VertexIndex], 0.0, 1.0);
}
Frage 1: Was ist bezeichnen das?
out gl_PerVertex {
vec4 gl_Position;
};
Frage 2: Was die Syntax vec2 positions[3] = vec2[](...)
erklärt? Um das Array zu initialisieren, sollte nicht die Syntax seine
vec2 positions[3] = {
vec2(0.0, -0.5),
vec2(0.5, 0.5),
vec2(-0.5, 0.5)
};
Ist die Shader-spezifische Syntax oder arrayType[](...)
kann als constructer in C++ verwendet werden?