#include "meshbuilder.h"
#include "postprocessor.h"
#include "sampler.h"
-#include "shader.h"
namespace Msp {
namespace GL {
-WeakPtr<Mesh> PostProcessor::fullscreen_quad;
-WeakPtr<Sampler> PostProcessor::nearest_sampler;
-WeakPtr<Sampler> PostProcessor::linear_sampler;
-
-void PostProcessor::render(Renderer &, const Texture2D &color, const Texture2D &depth)
-{
- render(color, depth);
-}
-
-RefPtr<Mesh> PostProcessor::get_fullscreen_quad()
-{
- RefPtr<Mesh> mesh = fullscreen_quad;
- if(!mesh)
- {
- mesh = new Mesh(VERTEX2);
- MeshBuilder builder(*mesh);
- builder.begin(TRIANGLE_STRIP);
- builder.vertex(-1, 1);
- builder.vertex(-1, -1);
- builder.vertex(1, 1);
- builder.vertex(1, -1);
- builder.end();
- fullscreen_quad = mesh;
- }
- return mesh;
-}
-
-RefPtr<Sampler> PostProcessor::get_nearest_sampler()
-{
- RefPtr<Sampler> sampler = nearest_sampler;
- if(!sampler)
- {
- sampler = new Sampler;
- sampler->set_filter(NEAREST);
- sampler->set_wrap(CLAMP_TO_EDGE);
- nearest_sampler = sampler;
- }
- return sampler;
-}
-
-RefPtr<Sampler> PostProcessor::get_linear_sampler()
-{
- RefPtr<Sampler> sampler = linear_sampler;
- if(!sampler)
- {
- sampler = new Sampler;
- sampler->set_filter(LINEAR);
- sampler->set_wrap(CLAMP_TO_EDGE);
- linear_sampler = sampler;
- }
- return sampler;
-}
-
-
-PostProcessor::Template::Template():
- size_divisor(1)
-{ }
-
-
PostProcessor::Template::Loader::Loader(Template &t):
DataFile::ObjectLoader<Template>(t)
{