void InitGlut(int argc, char** argv, char* lessonTitle) { glutInit(&argc, argv); glutInitWindowSize(512, 512); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); gMainHandle = glutCreateWindow(lessonTitle); glutSetWindow(gMainHandle); glutDisplayFunc(RenderCallback); glutReshapeFunc(ReshapeCallback); glutIdleFunc(IdleCallback); glutKeyboardFunc(KeyboardCallback); glutKeyboardUpFunc(KeyboardUpCallback); glutSpecialFunc(SpecialCallback); glutMouseFunc(MouseCallback); glutMotionFunc(MotionCallback); MotionCallback(0,0); atexit(ExitCallback); // Setup default render states glClearColor(0.5f, 0.6f, 0.7f, 1.0); glEnable(GL_DEPTH_TEST); glEnable(GL_COLOR_MATERIAL); glShadeModel(GL_SMOOTH); glLightModelf(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE); // Setup lighting glEnable(GL_LIGHTING); float AmbientColor[] = { 0.1f, 0.2f, 0.3f, 1.0f }; glLightfv(GL_LIGHT0, GL_AMBIENT, AmbientColor); float DiffuseColor[] = { 0.5f, 0.5f, 0.5f, 0.0f }; glLightfv(GL_LIGHT0, GL_DIFFUSE, DiffuseColor); float SpecularColor[] = { 0.3f, 0.3f, 0.3f, 0.0f }; glLightfv(GL_LIGHT0, GL_SPECULAR, SpecularColor); float Position[] = { 100.0f, 100.0f, -400.0f, 1.0f }; glLightfv(GL_LIGHT0, GL_POSITION, Position); glEnable(GL_LIGHT0); }
void MouseCallback(int button, int state, int x, int y) { mx = x; my = y; if (button == GLUT_RIGHT_BUTTON && state == GLUT_DOWN) { Pick(x, y); // this prevents from only grabbing it when the mouse moves MotionCallback(x, y); } else if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN) { bLeftMouseButtonPressed = true; } if (state == GLUT_UP) { LetGo(); bLeftMouseButtonPressed = false; } }
void glInit (int * pargc, char ** argv) { glutInit(pargc, argv); //window1 glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowSize(GL_WIN_SIZE_X, GL_WIN_SIZE_Y); int mainHandle = glutCreateWindow("PKgame"); glutSetWindow(mainHandle); glutKeyboardFunc(glutKeyboard); glutDisplayFunc(glutDisplay); glutReshapeFunc(ReshapeCallback); glutIdleFunc(glutIdle); glutSpecialFunc(ArrowKeyCallback); glutMouseFunc(MouseCallback); glutMotionFunc(MotionCallback); MotionCallback(0,0); // デフォルトの描画パラメータ glClearColor(0.3f, 0.4f, 0.5f, 1.0); glEnable(GL_COLOR_MATERIAL); // 光源の設定 float ambientColor[] = { 0.0f, 0.1f, 0.2f, 0.0f }; float diffuseColor[] = { 1.0f, 1.0f, 1.0f, 0.0f }; float specularColor[] = { 0.0f, 0.0f, 0.0f, 0.0f }; float position[] = { 100.0f, 100.0f, -400.0f, 1.0f }; glLightfv(GL_LIGHT0, GL_AMBIENT, ambientColor); glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuseColor); glLightfv(GL_LIGHT0, GL_SPECULAR, specularColor); glLightfv(GL_LIGHT0, GL_POSITION, position); glEnable(GL_LIGHT0); glEnableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_COLOR_ARRAY); }
int main(int argc, char** argv) { // Initialize Glut glutInit(&argc, argv); glutInitWindowSize(glutScreenWidth, glutScreenHeight); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); int mainHandle = glutCreateWindow("TestBullet"); glutSetWindow(mainHandle); glutDisplayFunc(RenderCallback); glutReshapeFunc(ReshapeCallback); glutIdleFunc(IdleCallback); glutKeyboardFunc(KeyboardCallback); glutSpecialFunc(ArrowKeyCallback); glutMouseFunc(MouseCallback); glutMotionFunc(MotionCallback); MotionCallback(0,0); // Setup default render states glClearColor(0.3f, 0.4f, 0.5f, 1.0); glEnable(GL_DEPTH_TEST); glEnable(GL_COLOR_MATERIAL); glEnable(GL_CULL_FACE); // Setup lighting glEnable(GL_LIGHTING); float AmbientColor[] = { 0.0f, 0.1f, 0.2f, 0.0f }; glLightfv(GL_LIGHT0, GL_AMBIENT, AmbientColor); float DiffuseColor[] = { 1.0f, 1.0f, 1.0f, 0.0f }; glLightfv(GL_LIGHT0, GL_DIFFUSE, DiffuseColor); float SpecularColor[] = { 0.0f, 0.0f, 0.0f, 0.0f }; glLightfv(GL_LIGHT0, GL_SPECULAR, SpecularColor); float Position[] = { -10.0f, 1000.0f, -4.0f, 1.0f }; glLightfv(GL_LIGHT0, GL_POSITION, Position); glEnable(GL_LIGHT0); // bool Status = gConvex0.LoadFromFile("convex0.bin"); if(!Status) { Status = gConvex0.LoadFromFile("../../convex0.bin"); if(!Status) { printf("Failed to load object!\n"); exit(0); } } Status = gConvex1.LoadFromFile("convex0.bin"); if(!Status) { Status = gConvex1.LoadFromFile("../../convex0.bin"); if(!Status) { printf("Failed to load object!\n"); exit(0); } } // gConvex0.mTransform.setOrigin(btVector3(1.0f, 1.0f, 0.0f)); gConvex0.mTransform.setOrigin(btVector3(0.20000069f, 0.95000005f, 0.0f)); // Run glutMainLoop(); return 0; }
int main(int argc, char** argv) { { ::SetPriorityClass(::GetCurrentProcess(),REALTIME_PRIORITY_CLASS); /*btDbvt::benchmark(); exit(0);*/ } // Initialize AntTweakBar // (note that AntTweakBar could also be intialize after GLUT, no matter) if(!TwInit(TW_OPENGL, NULL)) { // A fatal error occured fprintf(stderr, "AntTweakBar initialization failed: %s\n", TwGetLastError()); } // Initialize Glut glutInit(&argc, argv); glutInitWindowSize(WINDOW_WIDTH, WINDOW_HEIGHT); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); int mainHandle = glutCreateWindow("CD Test Framework"); /* HWND hWnd; hWnd = FindWindow("GLUT", "CD Test Framework"); RECT Rect; GetWindowRect(hWnd, &Rect); */ glutCreateMenu(NULL); glutSetWindow(mainHandle); glutDisplayFunc(RenderCallback); glutReshapeFunc(ReshapeCallback); glutIdleFunc(IdleCallback); glutKeyboardFunc(KeyboardCallback); glutSpecialFunc(ArrowKeyCallback); glutMouseFunc(MouseCallback); glutMotionFunc(MotionCallback); atexit(Terminate); // Called after glutMainLoop ends glutPassiveMotionFunc((GLUTmousemotionfun)TwEventMouseMotionGLUT); TwGLUTModifiersFunc(glutGetModifiers); // Setup default render states glClearColor(0.3f, 0.4f, 0.5f, 1.0); glEnable(GL_DEPTH_TEST); glEnable(GL_COLOR_MATERIAL); glEnable(GL_CULL_FACE); glDepthFunc(GL_LEQUAL); // Setup lighting glEnable(GL_LIGHTING); float AmbientColor[] = { 0.0f, 0.1f, 0.2f, 0.0f }; glLightfv(GL_LIGHT0, GL_AMBIENT, AmbientColor); float DiffuseColor[] = { 1.0f, 1.0f, 1.0f, 0.0f }; glLightfv(GL_LIGHT0, GL_DIFFUSE, DiffuseColor); float SpecularColor[] = { 0.0f, 0.0f, 0.0f, 0.0f }; glLightfv(GL_LIGHT0, GL_SPECULAR, SpecularColor); float Position[] = { -10.0f, 1000.0f, -4.0f, 1.0f }; glLightfv(GL_LIGHT0, GL_POSITION, Position); glEnable(GL_LIGHT0); gFnt.init(); gFnt.setScreenResolution(WINDOW_WIDTH, WINDOW_HEIGHT); gFnt.setColor(1.0f, 1.0f, 1.0f, 1.0f); CreateTerrain(); // Create main tweak bar { gMainBar = TwNewBar("CollisionTests"); TwEnumVal testEV[MAX_NB_TESTS] = { // {TEST_SPHERE_MESH_QUERY, "Sphere-mesh query"}, // {TEST_OBB_MESH_QUERY, "OBB-mesh query"}, // {TEST_CAPSULE_MESH_QUERY, "Capsule-mesh query"}, // {TEST_COMPLETE_BOX_PRUNING, "OPCODE SAP 1024"}, {TEST_COMPLETE_BOX_PRUNING_8192, "OPCODE BOX PRUNING 8192"}, // {TEST_BULLET_SAP_1024, "Bullet SAP HASHPAIR 1024"}, // {TEST_BULLET_SAP_8192, "Bullet SAP HASHPAIR 8192"}, // {TEST_BULLET_SAP_SORTEDPAIRS_8192, "Bullet SAP SORTEDPAIR 8192"}, // {TEST_BULLET_MULTISAP_8192, "Bullet MultiSAP 8192"}, // {TEST_BIPARTITE_BOX_PRUNING, "Bipartite box pruning"}, {TEST_DBVT_8192, "Bullet DBVT 8192"}, {TEST_BULLET_CUDA_8192, "Bullet CUDA 8192"}, {TEST_BULLET_3DGRID_8192, "Bullet 3D Grid 8192"}, {TEST_OPCODE_ARRAY_SAP, "OPCODE ARRAY SAP"}, }; TwType testType = TwDefineEnum("CollisionTest", testEV, MAX_NB_TESTS); TwAddVarRW(gMainBar, "CollisionTests", testType, &gSelectedTest, ""); TwAddVarRW(gMainBar, "% of updates",TW_TYPE_INT32,&percentUpdate,"min=0 max=100"); TwAddVarRW(gMainBar, "Draw",TW_TYPE_BOOLCPP,&enableDraw,""); } // Create tests gTest = 0; // gCollisionTests[TEST_SPHERE_MESH_QUERY] = new SphereMeshQuery; // gCollisionTests[TEST_OBB_MESH_QUERY] = new OBBMeshQuery; // gCollisionTests[TEST_CAPSULE_MESH_QUERY] = new CapsuleMeshQuery; // gCollisionTests[TEST_COMPLETE_BOX_PRUNING] = new CompleteBoxPruningTest(NUM_SAP_BOXES); // gCollisionTests[TEST_COMPLETE_BOX_PRUNING_8192] = new CompleteBoxPruningTest(NUM_SAP_BOXES); gCollisionTests[TEST_COMPLETE_BOX_PRUNING_8192] = new CompleteBoxPruningTest(NUM_SAP_BOXES); // gCollisionTests[TEST_BULLET_SAP_1024] = new BulletSAPCompleteBoxPruningTest(NUM_SAP_BOXES,1); // gCollisionTests[TEST_BULLET_SAP_8192] = new BulletSAPCompleteBoxPruningTest(NUM_SAP_BOXES,1); // gCollisionTests[TEST_BULLET_SAP_SORTEDPAIRS_8192] = new BulletSAPCompleteBoxPruningTest(NUM_SAP_BOXES,3); // gCollisionTests[TEST_BULLET_MULTISAP_8192] = new BulletSAPCompleteBoxPruningTest(NUM_SAP_BOXES,6); // gCollisionTests[TEST_BIPARTITE_BOX_PRUNING] = new BipartiteBoxPruningTest; gCollisionTests[TEST_DBVT_8192] = new BulletSAPCompleteBoxPruningTest(NUM_SAP_BOXES,7); gCollisionTests[TEST_BULLET_CUDA_8192] = new BulletSAPCompleteBoxPruningTest(NUM_SAP_BOXES,8); gCollisionTests[TEST_BULLET_3DGRID_8192] = new BulletSAPCompleteBoxPruningTest(NUM_SAP_BOXES,9); gCollisionTests[TEST_OPCODE_ARRAY_SAP] = new OpcodeArraySAPTest(NUM_SAP_BOXES); for(int i=0;i<MAX_NB_TESTS;i++) gCollisionTests[i]->Init(); gCollisionTests[gTest]->Select(); // MotionCallback(0,0); // Run glutMainLoop(); return 0; }
int main(int argc, char** argv) { #ifdef __PPCGEKKO__ printf("Press the keys 1,2,+,-, and b to create various things.\nThe object will appear in randomly in one of two scenes.\n"); printf("Use the arrow keys to move around.\n"); printf("Press a to pause the simulation.\n"); #else printf("Press the keys w,space,s,b, and t to create various things.\nThe object will appear in randomly in one of two scenes.\n"); printf("Use the arrow keys or 2, 4, 6 and 8 or d, f, e and g to move around.\nUse the mouse to look around.\n"); printf("Press p to pause the simulation.\n"); #endif // Initialize Glut glutInit(&argc, argv); glutInitWindowSize(512, 512); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); gMainHandle = glutCreateWindow("SampleMultipleScenes"); glutSetWindow(gMainHandle); glutDisplayFunc(RenderCallback); glutReshapeFunc(ReshapeCallback); glutIdleFunc(IdleCallback); glutKeyboardFunc(KeyboardCallback); glutSpecialFunc(ArrowKeyCallback); glutMouseFunc(MouseCallback); glutMotionFunc(MotionCallback); MotionCallback(0,0); atexit(ExitCallback); #ifdef __PPCGEKKO__ glutRemapButtonExt('a','p'); glutRemapButtonExt('b','w'); glutRemapButtonExt('1','s'); glutRemapButtonExt('2','b'); glutRemapButtonExt('+','t'); glutRemapButtonExt('-',' '); glutRemapButtonExt(GLUT_KEY_UP,'8'); glutRemapButtonExt(GLUT_KEY_DOWN,'2'); glutRemapButtonExt(GLUT_KEY_LEFT,'4'); glutRemapButtonExt(GLUT_KEY_RIGHT,'6'); #endif // Setup default render states glClearColor(0.5f, 0.4f, 0.5f, 1.0); glEnable(GL_DEPTH_TEST); glEnable(GL_COLOR_MATERIAL); glEnable(GL_CULL_FACE); // Setup lighting glEnable(GL_LIGHTING); float AmbientColor[] = { 0.1f, 0.1f, 0.1f, 0.0f }; glLightfv(GL_LIGHT0, GL_AMBIENT, AmbientColor); float DiffuseColor[] = { 1.0f, 1.0f, 1.0f, 0.0f }; glLightfv(GL_LIGHT0, GL_DIFFUSE, DiffuseColor); float SpecularColor[] = { 0.0f, 0.0f, 0.0f, 0.0f }; glLightfv(GL_LIGHT0, GL_SPECULAR, SpecularColor); float Position[] = { 0.0f, 10.0f, 40.0f, 1.0f }; glLightfv(GL_LIGHT0, GL_POSITION, Position); glEnable(GL_LIGHT0); // Initialize physics scene and start the application main loop if scene was created if (InitNx()) glutMainLoop(); return 0; }
int main(int argc, char** argv) { // Initialize Glut #ifdef __PPCGEKKO__ printf("Press 1,2,+,-,a,HOME to drop boxes. Press b to shoot a box.\nArrows camera.\n"); #else printf("Press 1-6 to drop boxes. Press w to shoot a box.\nArrows and mouse move camera.\n"); printf("Press p to pause the simulation.\n"); #endif #if defined(_XBOX) || defined(__CELLOS_LV2__) glutRemapButtonExt(0, 'w', false); // A/X to shoot box glutRemapButtonExt(1, '1', false); // B/O, X/S, Y/T shifted/unshifted to drop boxes glutRemapButtonExt(2, '2', false); glutRemapButtonExt(3, '3', false); glutRemapButtonExt(1, '4', true); glutRemapButtonExt(2, '5', true); glutRemapButtonExt(3, '6', true); #endif #ifdef __PPCGEKKO__ glutRemapButtonExt('a','1'); glutRemapButtonExt('b','w'); glutRemapButtonExt('1','2'); glutRemapButtonExt('2','3'); glutRemapButtonExt('+','4'); glutRemapButtonExt('-','5'); glutRemapButtonExt(GLUT_KEY_HOME,'6'); glutRemapButtonExt(GLUT_KEY_UP,101); glutRemapButtonExt(GLUT_KEY_DOWN,103); glutRemapButtonExt(GLUT_KEY_LEFT,100); glutRemapButtonExt(GLUT_KEY_RIGHT,102); #endif glutInit(&argc, argv); glutInitWindowSize(512, 512); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); gMainHandle = glutCreateWindow("SampleMaterials"); glutSetWindow(gMainHandle); glutDisplayFunc(RenderCallback); glutReshapeFunc(ReshapeCallback); glutIdleFunc(IdleCallback); glutKeyboardFunc(KeyboardCallback); glutSpecialFunc(ArrowKeyCallback); glutMouseFunc(MouseCallback); glutMotionFunc(MotionCallback); MotionCallback(0,0); atexit(ExitCallback); // Setup default render states glClearColor(0.3f, 0.4f, 0.5f, 1.0); glEnable(GL_DEPTH_TEST); glEnable(GL_COLOR_MATERIAL); glEnable(GL_CULL_FACE); // Setup lighting glEnable(GL_LIGHTING); float AmbientColor[] = { 0.0f, 0.1f, 0.2f, 0.0f }; glLightfv(GL_LIGHT0, GL_AMBIENT, AmbientColor); float DiffuseColor[] = { 1.0f, 1.0f, 1.0f, 0.0f }; glLightfv(GL_LIGHT0, GL_DIFFUSE, DiffuseColor); float SpecularColor[] = { 0.0f, 0.0f, 0.0f, 0.0f }; glLightfv(GL_LIGHT0, GL_SPECULAR, SpecularColor); float Position[] = { 100.0f, 100.0f, 400.0f, 1.0f }; glLightfv(GL_LIGHT0, GL_POSITION, Position); glEnable(GL_LIGHT0); // Initialize physics scene and start the application main loop if scene was created if (InitNx()) glutMainLoop(); return 0; }