2 #ifndef SPV_GENERATED_HEADER
3 #define SPV_GENERATED_HEADER
8 extern std::vector<uint8_t> VSH_CODE;
12 layout( location = 0 ) in vec3 aPosition;
14 layout( set = 0, binding = 0, std140 ) uniform world
21 layout( set = 0, binding = 1, std140 ) uniform clipUniform
26 layout( location = 0 ) out vec4 triColor;
27 layout( location = 1 ) out vec2 uvCoords;
32 gl_Position = clip * mvp * vec4( aPosition* size, 1.0 );
33 uvCoords = aPosition.xy + vec2( 0.5, 0.5 );
38 extern std::vector<uint8_t> FSH_CODE;
42 layout( location = 0 ) in vec4 triColor;
43 layout( location = 1 ) in vec2 uvCoords;
44 layout( location = 0 ) out vec4 outColor;
46 layout( set = 0, binding = 4 ) uniform sampler2D sTexture;
47 layout( set = 0, binding = 2 ) uniform sampler2D sTexture2;
51 outColor = texture( sTexture, uvCoords) * triColor;
55 extern std::vector<uint8_t> VSH_IMAGE_VISUAL_CODE;
59 layout( location = 0 ) in vec2 aPosition;
61 layout( set = 0, binding = 0, std140 ) uniform vertData
63 mat4 uModelMatrix; // 0
64 mat4 uViewMatrix; // 64
65 mat4 uProjection; // 128
67 vec4 pixelArea; // 204
68 float uPixelAligned; // 220
70 //Visual size and offset
73 vec4 offsetSizeMode; // 240
75 vec2 anchorPoint; // 264
79 layout( location = 0 ) out vec2 vTexCoord;
81 vec4 ComputeVertexPosition()
83 vec2 visualSize = mix(uSize.xy*size, size, offsetSizeMode.zw );
84 vec2 visualOffset = mix( offset, offset/uSize.xy, offsetSizeMode.xy);
85 return vec4( (aPosition + anchorPoint)*visualSize + (visualOffset + origin)*uSize.xy, 0.0, 1.0 );
90 vec4 vertexPosition = uViewMatrix * uModelMatrix * ComputeVertexPosition();
91 vec4 alignedVertexPosition = vertexPosition;
92 alignedVertexPosition.xy = floor ( vertexPosition.xy ); // Pixel alignment
93 vertexPosition = uProjection * mix( vertexPosition, alignedVertexPosition, uPixelAligned );
94 vTexCoord = pixelArea.xy+pixelArea.zw*(aPosition + vec2(0.5) );
95 gl_Position = vertexPosition;
99 extern std::vector<uint8_t> FSH_IMAGE_VISUAL_CODE;
103 layout( location = 0 ) in vec2 vTexCoord;
105 layout( set = 0, binding = 1, std140 ) uniform fragData
110 float preMultipliedAlpha;
113 layout( set = 0, binding = 2 ) uniform sampler2D sTexture;
115 layout( location = 0 ) out vec4 fragColor;
117 vec4 visualMixColor()
119 return vec4( mixColor * mix( 1.0, opacity, preMultipliedAlpha ), opacity );
123 fragColor = texture( sTexture, vTexCoord ) * uColor * visualMixColor();
128 #endif // SPV_GENERATED_HEADER