X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Feffects%2Fambientocclusion.cpp;h=c7fff846fbbe655b7d25f0d5b7daf886ed42d866;hp=96fc7317a9b2fe5727c66f6bdea5362496cd5d76;hb=8d211effd0c6db66e57f9ffd8ee712eef6069a1c;hpb=f853ca0a365ae8b43ba8b2f4d6f21cd1c2bd4bd5 diff --git a/source/effects/ambientocclusion.cpp b/source/effects/ambientocclusion.cpp index 96fc7317..c7fff846 100644 --- a/source/effects/ambientocclusion.cpp +++ b/source/effects/ambientocclusion.cpp @@ -79,7 +79,7 @@ void AmbientOcclusion::set_n_samples(unsigned n) Geometry::Angle a = Geometry::Angle::from_turns(d); sample_points[i] = Vector3(cos(a)*r, sin(a)*r, z)*(0.1f+0.9f*d*d); } - shdata.uniform3_array("sample_points", n, &sample_points[0].x); + shdata.uniform3_array("sample_points", n, &sample_points[0][0]); shdata.uniform("n_samples", static_cast(n)); } @@ -109,10 +109,14 @@ void AmbientOcclusion::render(Renderer &renderer, const Texture2D &color, const renderer.set_texture("rotate", &rotate_lookup, &nearest_sampler); renderer.set_shader_program(&occlude_shader, &shdata); + renderer.set_pipeline_key(this); renderer.set_framebuffer(&occlude_target.get_framebuffer()); + renderer.clear(0); quad.draw(renderer); + renderer.set_pipeline_key(this, 1); renderer.set_framebuffer(out_fbo); + renderer.clear(0); renderer.set_shader_program(&combine_shader); quad.draw(renderer); }