static const char* vertexSource20embedded = R"( #version 100 // vertexPosition was bound to attribute index 0 and vertexColor was bound to attribute index 1 attribute vec2 vertexPosition; attribute vec4 vertexColor; attribute vec2 vertexTextureUV; // We output the ex_Color variable to the next shader in the chain varying vec4 fragmentColor; varying vec2 fragmentTextureUV; uniform mat4 uObjectToProjection; void main(void) { // Since we are using flat lines, our input only had two points: x and y. // Set the Z coordinate to 0 and W coordinate to 1 //The flooring of the position avoided jittery movement for sprites/text. vec2 floorPosition = floor(vertexPosition); gl_Position = vec4(floorPosition, 0.0, 1.0) * uObjectToProjection; fragmentColor = vertexColor; fragmentColor.rgb *= fragmentColor.a; fragmentTextureUV = vertexTextureUV; } )";