added a child window to one demo, added different menus attached to

different mouse buttons, for testing
Also added missing post redisplay to keep animation going


git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1355 7f0cb862-5218-0410-a997-914c9d46530a
This commit is contained in:
dcnieho 2012-07-21 14:15:39 +00:00
parent 233d93d550
commit 4a14f60a4e

View File

@ -23,6 +23,7 @@
int g_LeaveGameMode = 0; int g_LeaveGameMode = 0;
int g_InGameMode = 0; int g_InGameMode = 0;
int g_mainwin, g_sw1;
/* /*
* Call this function to have some text drawn at given coordinates * Call this function to have some text drawn at given coordinates
@ -96,6 +97,19 @@ void PrintText( int nX, int nY, char* pszText )
static float g_fTime = 0.0f; static float g_fTime = 0.0f;
void SampleDisplay( void ) void SampleDisplay( void )
{
int win = glutGetWindow();
if (win==g_sw1)
{
/*
* Clear the screen
*/
glClearColor(0.7f,0.7f,0.7f,1);
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glutPostWindowRedisplay(g_mainwin);
}
else
{ {
/* /*
* Clear the screen * Clear the screen
@ -136,11 +150,13 @@ void SampleDisplay( void )
PrintText( 20, 20, "Hello there cruel world!" ); PrintText( 20, 20, "Hello there cruel world!" );
else else
PrintText( 20, 20, "Press ESC to leave the game mode!" ); PrintText( 20, 20, "Press ESC to leave the game mode!" );
}
/* /*
* And swap this context's buffers * And swap this context's buffers
*/ */
glutSwapBuffers( ); glutSwapBuffers( );
glutPostWindowRedisplay(win);
} }
/* /*
@ -289,7 +305,7 @@ int main( int argc, char** argv )
glutAttachMenu( GLUT_LEFT_BUTTON ); glutAttachMenu( GLUT_LEFT_BUTTON );
glutInitWindowPosition( 200, 200 ); glutInitWindowPosition( 200, 200 );
glutCreateWindow( "I am not Jan B." ); g_mainwin = glutCreateWindow( "I am not Jan B." );
glutDisplayFunc( SampleDisplay ); glutDisplayFunc( SampleDisplay );
glutReshapeFunc( SampleReshape ); glutReshapeFunc( SampleReshape );
glutKeyboardFunc( SampleKeyboard ); glutKeyboardFunc( SampleKeyboard );
@ -299,6 +315,11 @@ int main( int argc, char** argv )
glutSetMenu(subMenuA); glutSetMenu(subMenuA);
glutAttachMenu( GLUT_RIGHT_BUTTON); glutAttachMenu( GLUT_RIGHT_BUTTON);
g_sw1=glutCreateSubWindow(g_mainwin,200,0,100,100);
glutDisplayFunc( SampleDisplay );
glutSetMenu(subMenuB);
glutAttachMenu( GLUT_LEFT_BUTTON);
printf( "Testing game mode string parsing, don't panic!\n" ); printf( "Testing game mode string parsing, don't panic!\n" );
glutGameModeString( "320x240:32@100" ); glutGameModeString( "320x240:32@100" );
glutGameModeString( "640x480:16@72" ); glutGameModeString( "640x480:16@72" );