X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbackends%2Fopengl%2Fcommands_backend.cpp;h=7d599153e74e10ecec77bd603af376783b021286;hb=2a70fecfbbe8708be2bdaa75d222dd5a889a8ed3;hp=97b4f12c7400857cb9f31162bb5f19180817c686;hpb=4cd245dafe6a7ee5c93edca5aee2d146f1155309;p=libs%2Fgl.git diff --git a/source/backends/opengl/commands_backend.cpp b/source/backends/opengl/commands_backend.cpp index 97b4f12c..7d599153 100644 --- a/source/backends/opengl/commands_backend.cpp +++ b/source/backends/opengl/commands_backend.cpp @@ -18,6 +18,11 @@ using namespace std; namespace Msp { namespace GL { +void OpenGLCommands::submit_frame() +{ + glFlush(); +} + void OpenGLCommands::use_pipeline(const PipelineState *ps) { pipeline_state = ps; @@ -31,6 +36,9 @@ void OpenGLCommands::clear(const ClearValue *values) if(!target) throw invalid_operation("OpenGLCommands::clear"); + if(!values) + return; + static Require _req(MSP_clear_buffer); pipeline_state->apply(); @@ -83,7 +91,10 @@ void OpenGLCommands::resolve_multisample(Framebuffer &target) unsigned buffers = get_gl_buffer_bits(source->get_format())&get_gl_buffer_bits(target.get_format()); if(ARB_direct_state_access) + { + target.refresh(); glBlitNamedFramebuffer(source->id, target.id, 0, 0, width, height, 0, 0, width, height, buffers, GL_NEAREST); + } else { glBindFramebuffer(GL_READ_FRAMEBUFFER, source->id);