2 #include "meshbuilder.h"
3 #include "postprocessor.h"
10 WeakPtr<Mesh> PostProcessor::fullscreen_quad;
11 WeakPtr<Sampler> PostProcessor::nearest_sampler;
12 WeakPtr<Sampler> PostProcessor::linear_sampler;
14 void PostProcessor::render(Renderer &, const Texture2D &color, const Texture2D &depth)
19 RefPtr<Mesh> PostProcessor::get_fullscreen_quad()
21 RefPtr<Mesh> mesh = fullscreen_quad;
24 mesh = new Mesh(VERTEX2);
25 MeshBuilder builder(*mesh);
26 builder.begin(TRIANGLE_STRIP);
27 builder.vertex(-1, 1);
28 builder.vertex(-1, -1);
30 builder.vertex(1, -1);
32 fullscreen_quad = mesh;
37 RefPtr<Sampler> PostProcessor::get_nearest_sampler()
39 RefPtr<Sampler> sampler = nearest_sampler;
42 sampler = new Sampler;
43 sampler->set_filter(NEAREST);
44 sampler->set_wrap(CLAMP_TO_EDGE);
45 nearest_sampler = sampler;
50 RefPtr<Sampler> PostProcessor::get_linear_sampler()
52 RefPtr<Sampler> sampler = linear_sampler;
55 sampler = new Sampler;
56 sampler->set_filter(LINEAR);
57 sampler->set_wrap(CLAMP_TO_EDGE);
58 linear_sampler = sampler;
64 PostProcessor::Template::Template():
69 PostProcessor::Template::Loader::Loader(Template &t):
70 DataFile::ObjectLoader<Template>(t)
72 add("size_divisor", &Template::size_divisor);