+#define RECT_VERT \
+ "#version 140\n"\
+ "#extension GL_ARB_shading_language_420pack : require\n"\
+ "#extension GL_ARB_explicit_attrib_location : require\n"\
+ "\n"\
+ "layout(std140, binding=0) uniform ViewBounds\n"\
+ "{\n"\
+ "\tfloat bounds_x;\n"\
+ "\tfloat bounds_y;\n"\
+ "\tfloat bounds_w;\n"\
+ "\tfloat bounds_h;\n"\
+ "};\n"\
+ "\n"\
+ "layout(location = 0) in vec2 position;\n"\
+ "\n"\
+ "void main()\n"\
+ "{\n"\
+ "\tvec2 transformed_position;\n"\
+ "\ttransformed_position.x = (position.x - bounds_x) / bounds_w;\n"\
+ "\ttransformed_position.y = (position.y - bounds_y) / bounds_h;\n"\
+ "\t// Transform to clip coordinates (-1,1, -1,1).\n"\
+ "\tgl_Position.x = (transformed_position.x*2) - 1;\n"\
+ "\tgl_Position.y = 1 - (transformed_position.y*2);\n"\
+ "\tgl_Position.z = 0.0;\n"\
+ "\tgl_Position.w = 1.0;\n"\
+ "}\n"
+
+#define RECT_FRAG \
+ "#version 140\n"\
+ "\n"\
+ "out vec4 output_colour;\n"\
+ "\n"\
+ "uniform vec4 colour;\n"\
+ "\n"\
+ "void main()\n"\
+ "{\n"\
+ "\toutput_colour = colour;\n"\
+ "}\n"