yangorcvs
01-04-2011 13:59:46
i use SDL+OpenGL+MyGUI under VS2008
here's my SDL init code:
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
SDL_GL_SetAttribute(SDL_GL_RED_SIZE,
;
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE,
;
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE,
;
SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE,
;
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE,
;
SDL_Surface* drawContext;
Uint32 flags;
flags = SDL_OPENGL;//|SDL_FULLSCREEN;
drawContext = SDL_SetVideoMode(screenwidth, screenheight, 0, flags);
glFrontFace( GL_CCW );
glCullFace( GL_BACK );
glDepthFunc(GL_LEQUAL);
glEnable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glShadeModel(GL_FLAT);
glEnable(GL_TEXTURE_2D);
glAlphaFunc(GL_GREATER, 0);
glEnable(GL_ALPHA_TEST);
glViewport( 0, 0, screenwidth, screenheight );
glOrtho(0, screenwidth, screenheight,0, -20, 20);
in main game loop , i call my game's render first, and then call
mPlatform->getRenderManagerPtr()->drawOneFrame();
when i run the game, i see mygui render everything behind my game's own objects.
i tried to glDisable(GL_DEPTH_TEST) before i call mPlatform->getRenderManagerPtr()->drawOneFrame();, but no use
any idea? best wishes to you...
here's my SDL init code:
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
SDL_GL_SetAttribute(SDL_GL_RED_SIZE,

SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE,

SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE,

SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE,

SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE,

SDL_Surface* drawContext;
Uint32 flags;
flags = SDL_OPENGL;//|SDL_FULLSCREEN;
drawContext = SDL_SetVideoMode(screenwidth, screenheight, 0, flags);
glFrontFace( GL_CCW );
glCullFace( GL_BACK );
glDepthFunc(GL_LEQUAL);
glEnable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glShadeModel(GL_FLAT);
glEnable(GL_TEXTURE_2D);
glAlphaFunc(GL_GREATER, 0);
glEnable(GL_ALPHA_TEST);
glViewport( 0, 0, screenwidth, screenheight );
glOrtho(0, screenwidth, screenheight,0, -20, 20);
in main game loop , i call my game's render first, and then call
mPlatform->getRenderManagerPtr()->drawOneFrame();
when i run the game, i see mygui render everything behind my game's own objects.
i tried to glDisable(GL_DEPTH_TEST) before i call mPlatform->getRenderManagerPtr()->drawOneFrame();, but no use
any idea? best wishes to you...