X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Frenderpass.cpp;h=eb4ae1f93ba145b029ff5a23847b02e557f56c37;hp=3f63ec47a8c382b058bd3321df01161290e387f2;hb=d713e5391dc5d85759c7aab36f6df7a85c3d8eff;hpb=72a13418cc19e750abf3f8d8a52aea5e1abe4983 diff --git a/source/renderpass.cpp b/source/renderpass.cpp index 3f63ec47..eb4ae1f9 100644 --- a/source/renderpass.cpp +++ b/source/renderpass.cpp @@ -25,7 +25,7 @@ RenderPass::RenderPass(): RenderPass::RenderPass(const RenderPass &other): shprog(other.shprog), - shdata(other.shdata ? new ProgramData(*other.shdata) : 0), + shdata(other.shdata), uniform_slots(other.uniform_slots), material(other.material), texturing(other.texturing ? new Texturing(*other.texturing) : 0), @@ -36,7 +36,7 @@ RenderPass::RenderPass(const RenderPass &other): RenderPass &RenderPass::operator=(const RenderPass &other) { shprog = other.shprog; - shdata = other.shdata ? new ProgramData(*other.shdata) : 0; + shdata = other.shdata; uniform_slots = other.uniform_slots; material = other.material; texturing = other.texturing ? new Texturing(*other.texturing) : 0; @@ -48,13 +48,11 @@ RenderPass &RenderPass::operator=(const RenderPass &other) RenderPass::~RenderPass() { delete texturing; - delete shdata; } void RenderPass::set_shader_program(const Program *prog, const ProgramData *data) { shprog = prog; - delete shdata; shdata = new ProgramData(*data); } @@ -95,7 +93,7 @@ void RenderPass::apply(Renderer &renderer) const { renderer.set_texturing(texturing); renderer.set_material(material.get()); - renderer.set_shader_program(shprog, shdata); + renderer.set_shader_program(shprog, shdata.get()); renderer.set_reverse_winding(back_faces); }