mimic a swap on flush events to force display in single buffering mode (and glSwapBuffers would not be called).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28806 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -236,7 +236,7 @@ MesaSoftwareRenderer::MesaSoftwareRenderer(BGLView* view, ulong options,
|
||||
const GLint blue = rgbFlag ? 8 : 0;
|
||||
const GLint alpha = alphaFlag ? 8 : 0;
|
||||
|
||||
//fOptions = options | BGL_INDIRECT;
|
||||
fOptions = options; // | BGL_INDIRECT;
|
||||
struct dd_function_table functions;
|
||||
|
||||
fVisual = _mesa_create_visual(rgbFlag, dblFlag, stereoFlag, red, green,
|
||||
@@ -253,6 +253,7 @@ MesaSoftwareRenderer::MesaSoftwareRenderer(BGLView* view, ulong options,
|
||||
//functions.ClearColor = ClearColor;
|
||||
functions.Error = Error;
|
||||
functions.Viewport = Viewport;
|
||||
functions.Flush = Flush;
|
||||
|
||||
// create core context
|
||||
fContext = _mesa_create_context(fVisual, NULL, &functions, this);
|
||||
@@ -420,6 +421,9 @@ MesaSoftwareRenderer::UnlockGL()
|
||||
{
|
||||
CALLED();
|
||||
_mesa_make_current(fContext, NULL, NULL);
|
||||
if ((fOptions & BGL_DOUBLE) == 0) {
|
||||
SwapBuffers();
|
||||
}
|
||||
BGLRenderer::UnlockGL();
|
||||
}
|
||||
|
||||
@@ -771,3 +775,13 @@ MesaSoftwareRenderer::RenderbufferStorage(GLcontext* ctx,
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
MesaSoftwareRenderer::Flush(GLcontext *ctx)
|
||||
{
|
||||
CALLED();
|
||||
MesaSoftwareRenderer *mr = (MesaSoftwareRenderer *) ctx->DriverCtx;
|
||||
if ((mr->fOptions & BGL_DOUBLE) == 0) {
|
||||
mr->SwapBuffers();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -58,11 +58,13 @@ private:
|
||||
struct gl_renderbuffer* render,
|
||||
GLenum internalFormat,
|
||||
GLuint width, GLuint height);
|
||||
static void Flush(GLcontext *ctx);
|
||||
|
||||
BBitmap* fBitmap;
|
||||
bool fDirectModeEnabled;
|
||||
direct_buffer_info* fInfo;
|
||||
BLocker fInfoLocker;
|
||||
ulong fOptions;
|
||||
|
||||
GLcontext* fContext;
|
||||
GLvisual* fVisual;
|
||||
|
||||
Reference in New Issue
Block a user