]> git.tdb.fi Git - libs/gl.git/blob - source/postprocessor.cpp
Make postprocessor shaders compatible with modern interface
[libs/gl.git] / source / postprocessor.cpp
1 #include "mesh.h"
2 #include "meshbuilder.h"
3 #include "postprocessor.h"
4 #include "shader.h"
5
6 namespace {
7
8 const char fullscreen_vs_source[] =
9         "attribute vec4 vertex;\n"
10         "varying vec2 texcoord;\n"
11         "void main()\n"
12         "{\n"
13         "       gl_Position = vertex;\n"
14         "       texcoord = vertex.xy*0.5+0.5;\n"
15         "}\n";
16
17 }
18
19
20 namespace Msp {
21 namespace GL {
22
23 Shader &PostProcessor::get_fullscreen_vertex_shader()
24 {
25         static VertexShader shader(fullscreen_vs_source);
26         return shader;
27 }
28
29 const Mesh &PostProcessor::get_fullscreen_quad()
30 {
31         static const Mesh &mesh = create_fullscreen_quad();
32         return mesh;
33 }
34
35 const Mesh &PostProcessor::create_fullscreen_quad()
36 {
37         static Mesh mesh(GL::VERTEX2);
38         MeshBuilder builder(mesh);
39         builder.begin(TRIANGLE_STRIP);
40         builder.vertex(-1, 1);
41         builder.vertex(-1, -1);
42         builder.vertex(1, 1);
43         builder.vertex(1, -1);
44         builder.end();
45         return mesh;
46 }
47
48 } // namespace GL
49 } // namespace Msp