#include "programdata.h"
#include "rendertarget.h"
#include "texture2d.h"
-#include "texturing.h"
namespace Msp {
namespace GL {
Template();
- virtual AmbientOcclusion *create(Resources &, unsigned, unsigned) const;
+ virtual AmbientOcclusion *create(unsigned, unsigned) const;
};
private:
- Texture2D rotate_lookup;
+ const Texture2D &rotate_lookup;
RenderTarget occlude_target;
- Texturing texturing;
const Program &occlude_shader;
const Program &combine_shader;
mutable ProgramData shdata;
const Mesh &quad;
const Sampler &linear_sampler;
+ const Sampler &nearest_clamp_sampler;
const Sampler &nearest_sampler;
public:
- AmbientOcclusion(Resources &, unsigned, unsigned, float = 1.0f);
+ AmbientOcclusion(unsigned, unsigned, float = 1.0f);
private:
- static float random(unsigned &);
+ static const Texture2D &get_or_create_rotate_lookup();
+ static float radical_inverse(unsigned);
public:
void set_n_samples(unsigned);
void set_darkness(float);
virtual void render(Renderer &, const Texture2D &, const Texture2D &);
+
+ virtual void set_debug_name(const std::string &);
};
} // namespace GL