]> git.tdb.fi Git - libs/gl.git/blob - source/postprocessor.cpp
Use a renderer in the viewer
[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         "varying vec2 texcoord;\n"
10         "void main()\n"
11         "{\n"
12         "       gl_Position = gl_Vertex;\n"
13         "       texcoord = gl_Vertex.xy*0.5+0.5;\n"
14         "}\n";
15
16 }
17
18
19 namespace Msp {
20 namespace GL {
21
22 Shader &PostProcessor::get_fullscreen_vertex_shader()
23 {
24         static VertexShader shader(fullscreen_vs_source);
25         return shader;
26 }
27
28 const Mesh &PostProcessor::get_fullscreen_quad()
29 {
30         static const Mesh &mesh = create_fullscreen_quad();
31         return mesh;
32 }
33
34 const Mesh &PostProcessor::create_fullscreen_quad()
35 {
36         static Mesh mesh(GL::VERTEX2);
37         MeshBuilder builder(mesh);
38         builder.begin(TRIANGLE_STRIP);
39         builder.vertex(-1, 1);
40         builder.vertex(-1, -1);
41         builder.vertex(1, 1);
42         builder.vertex(1, -1);
43         builder.end();
44         return mesh;
45 }
46
47 } // namespace GL
48 } // namespace Msp