void SoundPlayer::init() { assert(initOpenAL()); while(mThreads.size() < LEFT_SOUNDPLAYER_THREADCOUNT) { SoundThread * current = new SoundThread; current->handle = CreateThread(0, 0, &stream_run, current, CREATE_SUSPENDED, 0); current->running = true; current->occupied = false; current->sound = 0; mThreads.push_back(current); } }
int main(int argc,char **argv) { initRandNum("scripts/mines.lua"); //call for Lua to do the random number generator int *pScreen; pScreen = configScreen(); //pScreen now becomes the array returned by configScreen player one; //creates a player struct configPlayer(one); //fills player struct startX = one.StartPosX; //takes variables from player struct for OpenGL to use startY = one.StartPosY; int number; cout << "\nHow many mines do you want in the game " << endl; cin >> number; mineGenerator(number); //Calls function to randomly generate mines initOpenAL(); alGetError(); if (loadALData() == AL_FALSE) return 0; setListenerValues(); atexit(killALData); alSourcePlay(Sources[LOOP]); glutInit(&argc,argv); glutInitWindowPosition(100,100); glutInitWindowSize(pScreen[0],pScreen[1]); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); init(); win = glutCreateWindow("Mine Sweeper"); createMenu(); glutDisplayFunc(drawScene); glutKeyboardFunc(handleKeypress); glutIdleFunc(handleIdle); glutSpecialFunc(handleSpecialKeys); glOrtho(-1,16,-1,16,0,-1); //gluLookAt (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); glutMainLoop(); }
void c3dInitGame(){ //----start global timer Cc3dGlobalTimer::sharedGlobalTimer()->start(); //----随机数--abc srand(time(0)); //----初始化openal initOpenAL(); //----初始化opengl initOpenGL(); //----openal状态--abc alDistanceModel(AL_INVERSE_DISTANCE_CLAMPED);//设置距离模型--abc alListenerf(AL_GAIN, 1.0);//set listener gain //----opengl状态--abc glEnable(GL_BLEND); glEnable(GL_DEPTH_TEST); #if (C3D_TARGET_PLATFORM == C3D_PLATFORM_WIN32) glEnable(GL_TEXTURE_2D);//on windows, do not forget this!!! glEnable(GL_TEXTURE_CUBE_MAP); #endif ////glEnable(GL_VERTEX_PROGRAM_POINT_SIZE);// Enable point size by default on windows.(wait, it is not support on iOS!) glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glClearColor(0, 0, 0, 0);//指定清理color buffers时所用的颜色,默认值为(0,0,0,0),见:http://msdn.microsoft.com/en-us/library/windows/desktop/dd318377(v=vs.85).aspx glEnableVertexAttribArray(ATTRIB_LOC_position); glEnableVertexAttribArray(ATTRIB_LOC_texCoord); glEnableVertexAttribArray(ATTRIB_LOC_normal); glEnableVertexAttribArray(ATTRIB_LOC_color); glEnableVertexAttribArray(ATTRIB_LOC_texCoord2); //----show system info Cc3dDeviceAndOSInfo::sharedDeviceAndOSInfo()->showSystemInfo(); //----获取设备信息--abc cout<<"screenSize: "<<Cc3dDeviceAndOSInfo::sharedDeviceAndOSInfo()->getScreenSize().x()<<" "<<Cc3dDeviceAndOSInfo::sharedDeviceAndOSInfo()->getScreenSize().y()<<endl; cout<<"resolution: "<<Cc3dDeviceAndOSInfo::sharedDeviceAndOSInfo()->getResolutionSize().x()<<" "<<Cc3dDeviceAndOSInfo::sharedDeviceAndOSInfo()->getResolutionSize().y()<<endl; //----创建默认shaderProgam buildinProgramSetUp(); }
void Game::init() { if (initialized) { return; } initGlobals(); initialized = true; // SDL if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER) < 0) { Log::message(Log::Error, SDL_GetError()); exit(0); } // TTF if (TTF_Init()) { Log::message(Log::Error, TTF_GetError()); exit(0); } // SDLNet if (SDLNet_Init()) { Log::message(Log::Error, SDLNet_GetError()); exit(0); } // OpenAL if (!initOpenAL()) { Log::message(Log::Error, alError); exit(0); } initLocks(); Graphics::init(); Audio::init(); }
Audio::Audio() { initOpenAL(); }