void coordinate_cross::draw_overlay( const gl::render_context_ptr& context, const math::mat4f& proj_matrix, const math::mat4f& view_matrix, const float line_width) { using namespace scm; using namespace scm::gl; using namespace scm::math; context_state_objects_guard csg(context); context_program_guard cpg(context); context_vertex_input_guard vig(context); _coord_program->uniform("in_mvp", proj_matrix * view_matrix); context->set_depth_stencil_state(_dstate_overlay); context->set_blend_state(_no_blend); context->set_rasterizer_state(_raster_no_cull, line_width); context->bind_program(_coord_program); context->bind_vertex_array(_vertex_array); context->apply(); context->draw_arrays(_prim_topology, 0, _vertex_count); }