#include "mesh.h"
#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)
{
RefPtr<Mesh> PostProcessor::get_fullscreen_quad()
{
- RefPtr<Mesh> mesh;
- mesh = fullscreen_quad;
+ RefPtr<Mesh> mesh = fullscreen_quad;
if(!mesh)
{
mesh = new Mesh(VERTEX2);
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)