PDA

View Full Version : Set pixelFormat under Windows...



SuperSu
09-04-2011, 02:42 AM
I'm new to OpenGL and I'm currently having a problem that I just cannot figure out:

In MacOS I can create a EAGLView like this:



EAGLView *glView = [EAGLView viewWithFrame:[window bounds]
pixelFormat:kEAGLColorFormatRGBA8
depthFormat:0];


kEAGLColorFormatRGBA8
Specifies a 32-bit RGBA format that corresponds to the OpenGL ES GL_RGBA8888 format.

And in windows, I the code is like this:



static CCEGL * create(CCEGLView * pWindow)
{
CCEGL * pEGL = new CCEGL;
BOOL bSuccess = FALSE;
do
{
CC_BREAK_IF(! pEGL);

pEGL->m_eglNativeWindow = pWindow->getHWnd();

pEGL->m_eglNativeDisplay = GetDC(pEGL->m_eglNativeWindow);

EGLDisplay eglDisplay;
CC_BREAK_IF(EGL_NO_DISPLAY == (eglDisplay = eglGetDisplay(pEGL->m_eglNativeDisplay)));

EGLint nMajor, nMinor;
CC_BREAK_IF(EGL_FALSE == eglInitialize(eglDisplay, &nMajor, &nMinor) || 1 != nMajor);

const EGLint aConfigAttribs[] =
{
EGL_LEVEL, 0,
EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
EGL_NATIVE_RENDERABLE, EGL_FALSE,
EGL_DEPTH_SIZE, 0,
EGL_NONE,
};
EGLint iConfigs;
EGLConfig eglConfig;
CC_BREAK_IF(EGL_FALSE == eglChooseConfig(eglDisplay, aConfigAttribs, &eglConfig, 1, &iConfigs)
|| (iConfigs != 1));

EGLContext eglContext;
eglContext = eglCreateContext(eglDisplay, eglConfig, NULL, NULL);
CC_BREAK_IF(EGL_NO_CONTEXT == eglContext);

EGLSurface eglSurface;
eglSurface = eglCreateWindowSurface(eglDisplay, eglConfig, pEGL->m_eglNativeWindow, NULL);
CC_BREAK_IF(EGL_NO_SURFACE == eglSurface);

CC_BREAK_IF(EGL_FALSE == eglMakeCurrent(eglDisplay, eglSurface, eglSurface, eglContext));

pEGL->m_eglDisplay = eglDisplay;
pEGL->m_eglConfig = eglConfig;
pEGL->m_eglContext = eglContext;
pEGL->m_eglSurface = eglSurface;
bSuccess = TRUE;
} while (0);

if (! bSuccess)
{
CC_SAFE_DELETE(pEGL);
}

return pEGL;
}


I tired to find the "pixelFormat" method but it seems like there's no such functions out there.

So I would like to know how to set the pixelformat to GL_RGBA8888 in windows os?

Any replay will be appreciated, thanks in advance :)

V-man
09-04-2011, 05:22 AM
http://nehe.gamedev.net/tutorial/lessons_01__05/22004/