float tri_vertices[] = {-0.5f, -0.5f, 0.0f, 0.5f, -0.5f, 0.0f, 0.0f, 0.5f, 0.0f}; float tri_rgb_vertices[] = { 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 0.0f, /**/ -0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 0.0f, /**/ 0.0f, 0.5f, 0.0f, 0.0f, 0.0f, 1.0f /**/ }; float sqr_vertices[] = { 0.5f, 0.5f, 0.0f, /*top R*/ 0.5f, -0.5f, 0.0f, /*bottom R*/ -0.5f, -0.5f, 0.0f, /*bottom L*/ -0.5f, 0.5f, 0.0f /*top R*/ }; unsigned int sqr_indices[] = { 0, 1, 3, /*tl triangle*/ 1, 2, 3 /*br triangle*/ }; float sqr_tex_vertices[] = { /*positions*colors*texture coords*/ 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, /*top right*/ 0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, /*bottom right*/ -0.5f, -0.5f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, /*bottom left*/ -0.5f, 0.5f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f /*top left*/ }; float cube_vertices[] = { /*positions*texture cords*/ -0.5f, -0.5f, -0.5f, 0.0f, 0.0f, 0.5f, -0.5f, -0.5f, 1.0f, 0.0f, 0.5f, 0.5f, -0.5f, 1.0f, 1.0f, 0.5f, 0.5f, -0.5f, 1.0f, 1.0f, -0.5f, 0.5f, -0.5f, 0.0f, 1.0f, -0.5f, -0.5f, -0.5f, 0.0f, 0.0f, -0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 0.5f, -0.5f, 0.5f, 1.0f, 0.0f, 0.5f, 0.5f, 0.5f, 1.0f, 1.0f, 0.5f, 0.5f, 0.5f, 1.0f, 1.0f, -0.5f, 0.5f, 0.5f, 0.0f, 1.0f, -0.5f, -0.5f, 0.5f, 0.0f, 0.0f, -0.5f, 0.5f, 0.5f, 1.0f, 0.0f, -0.5f, 0.5f, -0.5f, 1.0f, 1.0f, -0.5f, -0.5f, -0.5f, 0.0f, 1.0f, -0.5f, -0.5f, -0.5f, 0.0f, 1.0f, -0.5f, -0.5f, 0.5f, 0.0f, 0.0f, -0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 0.5f, 0.5f, -0.5f, 1.0f, 1.0f, 0.5f, -0.5f, -0.5f, 0.0f, 1.0f, 0.5f, -0.5f, -0.5f, 0.0f, 1.0f, 0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, -0.5f, -0.5f, -0.5f, 0.0f, 1.0f, 0.5f, -0.5f, -0.5f, 1.0f, 1.0f, 0.5f, -0.5f, 0.5f, 1.0f, 0.0f, 0.5f, -0.5f, 0.5f, 1.0f, 0.0f, -0.5f, -0.5f, 0.5f, 0.0f, 0.0f, -0.5f, -0.5f, -0.5f, 0.0f, 1.0f, -0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.5f, 0.5f, -0.5f, 1.0f, 1.0f, 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, -0.5f, 0.5f, 0.5f, 0.0f, 0.0f, -0.5f, 0.5f, -0.5f, 0.0f, 1.0f }; const char *basicVertexShaderSource = "#version 330 core\n" "layout (location = 0) in vec3 aPos;\n" "out vec3 color;\n" "void main()\n" "{\n" " color = aPos;" " gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0);\n" "}\0"; const char *basicFragmentShaderSource = "#version 330 core\n" "out vec3 FragColor;\n" "in vec3 color;" "void main()\n" "{\n" " FragColor = (color/2+.5)*1.5;\n" "}\n"; const char *rgbVertexShaderSource = "#version 330 core\n" "layout (location = 0) in vec3 aPos;\n" "layout (location = 1) in vec3 aColor;\n" "out vec3 color;\n" "void main()\n" "{\n" " color = aColor;\n" " gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0);\n" "}\0"; const char *rgbFragmentShaderSource = "#version 330 core\n" "out vec4 FragColor;\n" "in vec3 color;\n" "void main()\n" "{\n" " FragColor = vec4(color, 1.0);\n" "}\0"; const char *rgbPulseFragmentShaderSource = "#version 330 core\n" "out vec4 FragColor;\n" "in vec3 color;\n" "uniform float u_time;" "void main()\n" "{\n" " FragColor = vec4(color,0.0)*(sin(u_time)/2.0+0.5);\n" "}\0";