X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Feffects%2Fambientocclusion.h;h=0171d89e87ac2e781ba267f72d67e918ff3d29c1;hp=2497d5b7fb4f2d2d150144a67062cdee72a558b0;hb=1863f17c5c5563be8492d7f01e5c613a740ea1e9;hpb=6f39983060a27634c012f66c82fea0d09fea9774 diff --git a/source/effects/ambientocclusion.h b/source/effects/ambientocclusion.h index 2497d5b7..0171d89e 100644 --- a/source/effects/ambientocclusion.h +++ b/source/effects/ambientocclusion.h @@ -35,24 +35,26 @@ public: 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; 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); @@ -62,6 +64,8 @@ public: void set_darkness(float); virtual void render(Renderer &, const Texture2D &, const Texture2D &); + + virtual void set_debug_name(const std::string &); }; } // namespace GL