Example #1
0
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);
}