opengles emulator: handle window surface resize

resize the internal pbuffer we use for a WindowSurface
when a color buffer of different size is attached to the "window".
That fixes "Glyder 2 by glu" application view while loading.

Change-Id: I8f235f428e93077d57bd200f10b45b9a92f1a9d3
This commit is contained in:
Guy Zadickario
2011-08-03 12:56:49 +03:00
committed by David 'Digit' Turner
parent af8fb702d5
commit 62c6532937
2 changed files with 105 additions and 28 deletions

View File

@@ -18,6 +18,7 @@
#include "ColorBuffer.h"
#include "RenderContext.h"
#include "FBConfig.h"
#include "SmartPtr.h"
#include "FixedBuffer.h"
#include <EGL/egl.h>
@@ -44,6 +45,7 @@ private:
WindowSurface();
void copyToColorBuffer(); // copy pbuffer content with readback+download
bool resizePbuffer(unsigned int p_width, unsigned int p_height);
private:
GLuint m_fbObj; // GLES Framebuffer object (when EGLimage is used)
@@ -55,10 +57,13 @@ private:
RenderContextPtr m_drawContext;
GLuint m_width;
GLuint m_height;
GLuint m_pbufWidth;
GLuint m_pbufHeight;
bool m_useEGLImage;
bool m_useBindToTexture;
FixedBuffer m_xferBuffer;
FixedBuffer m_xUpdateBuf;
const FBConfig *m_fbconf;
};
typedef SmartPtr<WindowSurface> WindowSurfacePtr;