X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fwidget.cpp;h=9dbd9da5ba2df7f60f44d824a8a7989d11d917dd;hb=fdc7fecc65f5f517d66abe3546a949a46836c4a6;hp=4b48e8ba11400d2f410790de92b8464e890b68b3;hpb=1aa6cd9b865e366737dcc9d2d36c4f8faed5bc4f;p=libs%2Fgltk.git diff --git a/source/widget.cpp b/source/widget.cpp index 4b48e8b..9dbd9da 100644 --- a/source/widget.cpp +++ b/source/widget.cpp @@ -160,24 +160,24 @@ void Widget::rebuild() } } -void Widget::render() const +void Widget::render(GL::Renderer &renderer) const { if(!style) throw logic_error(format("Attempt to render a widget with null style (class=\"%s\", style_name=\"%s\")", get_class(), style_name)); - GL::MatrixStack::Push _pushm(GL::MatrixStack::modelview()); - GL::MatrixStack::modelview() *= GL::Matrix::translation(geom.x, geom.y, 0); + GL::MatrixStack::Push _pushm(renderer.matrix_stack()); + renderer.matrix_stack() *= GL::Matrix::translation(geom.x, geom.y, 0); const Style::PartSeq &parts = style->get_parts(); list::const_iterator j = cached_parts.begin(); for(Style::PartSeq::const_iterator i=parts.begin(); (i!=parts.end() && j!=cached_parts.end()); ++i, ++j) { if(j->mesh && j->texture) { - GL::Bind bind_tex(j->texture); - j->mesh->draw(); + renderer.set_texture(j->texture); + j->mesh->draw(renderer); } else if(!i->get_name().empty()) - render_special(*i); + render_special(*i, renderer); } }