//----------------------------------------------------------------// void GlutRefreshContext () { AKUContextID context = AKUGetContext (); if ( context ) { AKUDeleteContext ( context ); } AKUCreateContext (); #ifdef GLUTHOST_USE_FMOD_DESIGNER AKUFmodDesignerInit (); #endif #ifdef GLUTHOST_USE_FMOD_EX AKUFmodExInit (); #endif #ifdef GLUTHOST_USE_LUAEXT AKUExtLoadLuacrypto (); AKUExtLoadLuacurl (); AKUExtLoadLuafilesystem (); AKUExtLoadLuasocket (); AKUExtLoadLuasql (); AKUExtLoadLuamsgpack (); #endif #ifdef GLUTHOST_USE_UNTZ AKUUntzInit (); #endif #ifdef GLUTHOST_USE_AUDIOSAMPLER AKUAudioSamplerInit(); #endif #ifdef GLUTHOST_USE_PARTICLE_PRESETS ParticlePresets (); #endif AKUSetInputConfigurationName ( "AKUGlut" ); AKUReserveInputDevices ( GlutInputDeviceID::TOTAL ); AKUSetInputDevice ( GlutInputDeviceID::DEVICE, "device" ); AKUReserveInputDeviceSensors ( GlutInputDeviceID::DEVICE, GlutInputDeviceSensorID::TOTAL ); AKUSetInputDeviceKeyboard ( GlutInputDeviceID::DEVICE, GlutInputDeviceSensorID::KEYBOARD, "keyboard" ); AKUSetInputDevicePointer ( GlutInputDeviceID::DEVICE, GlutInputDeviceSensorID::POINTER, "pointer" ); AKUSetInputDeviceButton ( GlutInputDeviceID::DEVICE, GlutInputDeviceSensorID::MOUSE_LEFT, "mouseLeft" ); AKUSetInputDeviceButton ( GlutInputDeviceID::DEVICE, GlutInputDeviceSensorID::MOUSE_MIDDLE, "mouseMiddle" ); AKUSetInputDeviceButton ( GlutInputDeviceID::DEVICE, GlutInputDeviceSensorID::MOUSE_RIGHT, "mouseRight" ); AKUSetFunc_EnterFullscreenMode ( _AKUEnterFullscreenModeFunc ); AKUSetFunc_ExitFullscreenMode ( _AKUExitFullscreenModeFunc ); AKUSetFunc_OpenWindow ( _AKUOpenWindowFunc ); #ifdef GLUTHOST_USE_DEBUGGER AKUSetFunc_ErrorTraceback ( _AKUErrorTracebackFunc ); AKUDebugHarnessInit (); #endif AKURunBytecode ( moai_lua, moai_lua_SIZE ); }
//----------------------------------------------------------------// int GlutHost ( int argc, char** argv ) { // TODO: integrate this nicely with host //AKUInitMemPool ( 100 * 1024 * 1024 ); atexit ( _cleanup ); glutInit ( &argc, argv ); AKUCreateContext (); #ifdef GLUTHOST_USE_FMOD AKUFmodLoad (); #endif #ifdef GLUTHOST_USE_LUAEXT AKUExtLoadLuacrypto (); AKUExtLoadLuacurl (); AKUExtLoadLuasocket (); AKUExtLoadLuasql (); #endif #ifdef GLUTHOST_USE_UNTZ AKUUntzInit (); #endif #ifdef GLUTHOST_USE_PARTICLE_PRESETS ParticlePresets (); #endif AKUSetInputConfigurationName ( "AKUGlut" ); AKUReserveInputDevices ( GlutInputDeviceID::TOTAL ); AKUSetInputDevice ( GlutInputDeviceID::DEVICE, "device" ); AKUReserveInputDeviceSensors ( GlutInputDeviceID::DEVICE, GlutInputDeviceSensorID::TOTAL ); AKUSetInputDeviceKeyboard ( GlutInputDeviceID::DEVICE, GlutInputDeviceSensorID::KEYBOARD, "keyboard" ); AKUSetInputDevicePointer ( GlutInputDeviceID::DEVICE, GlutInputDeviceSensorID::POINTER, "pointer" ); AKUSetInputDeviceButton ( GlutInputDeviceID::DEVICE, GlutInputDeviceSensorID::MOUSE_LEFT, "mouseLeft" ); AKUSetInputDeviceButton ( GlutInputDeviceID::DEVICE, GlutInputDeviceSensorID::MOUSE_MIDDLE, "mouseMiddle" ); AKUSetInputDeviceButton ( GlutInputDeviceID::DEVICE, GlutInputDeviceSensorID::MOUSE_RIGHT, "mouseRight" ); AKUSetFunc_EnterFullscreenMode ( _AKUEnterFullscreenModeFunc ); AKUSetFunc_ExitFullscreenMode ( _AKUExitFullscreenModeFunc ); AKUSetFunc_OpenWindow ( _AKUOpenWindowFunc ); #ifdef GLUTHOST_USE_DEBUGGER AKUDebugHarnessInit (); #endif for ( int i = 1; i < argc; ++i ) { AKURunScript ( argv [ i ]); } if ( sHasWindow ) { glutTimerFunc ( 0, _onTimer, 0 ); glutMainLoop (); } return 0; }
void GlutRefreshContext () { AKUContextID context = AKUGetContext (); if ( context ) { AKUDeleteContext ( context ); } AKUCreateContext (); AKUInitializeUtil (); AKUInitializeSim (); #if MOAI_WITH_BOX2D AKUInitializeBox2D (); #endif #if MOAI_WITH_CHIPMUNK AKUInitializeChipmunk (); #endif #if MOAI_WITH_FMOD_EX AKUFmodLoad (); #endif #if MOAI_WITH_FMOD_DESIGNER AKUFmodDesignerInit (); #endif #if MOAI_WITH_LUAEXT AKUExtLoadLuacrypto (); AKUExtLoadLuacurl (); AKUExtLoadLuafilesystem (); AKUExtLoadLuasocket (); AKUExtLoadLuasql (); #endif #if MOAI_WITH_HARNESS AKUSetFunc_ErrorTraceback ( _debuggerTracebackFunc ); AKUDebugHarnessInit (); #endif #if MOAI_WITH_HTTP_CLIENT AKUInitializeHttpClient (); #endif #if MOAI_WITH_PARTICLE_PRESETS ParticlePresets (); #endif #if MOAI_WITH_UNTZ AKUInitializeUntz (); #endif AKUSetInputConfigurationName ( "AKUGlut" ); AKUReserveInputDevices ( GlutInputDeviceID::TOTAL ); AKUSetInputDevice ( GlutInputDeviceID::DEVICE, "device" ); AKUReserveInputDeviceSensors ( GlutInputDeviceID::DEVICE, GlutInputDeviceSensorID::TOTAL ); AKUSetInputDeviceKeyboard ( GlutInputDeviceID::DEVICE, GlutInputDeviceSensorID::KEYBOARD, "keyboard" ); AKUSetInputDevicePointer ( GlutInputDeviceID::DEVICE, GlutInputDeviceSensorID::POINTER, "pointer" ); AKUSetInputDeviceButton ( GlutInputDeviceID::DEVICE, GlutInputDeviceSensorID::MOUSE_LEFT, "mouseLeft" ); AKUSetInputDeviceButton ( GlutInputDeviceID::DEVICE, GlutInputDeviceSensorID::MOUSE_MIDDLE, "mouseMiddle" ); AKUSetInputDeviceButton ( GlutInputDeviceID::DEVICE, GlutInputDeviceSensorID::MOUSE_RIGHT, "mouseRight" ); AKUSetFunc_EnterFullscreenMode ( _AKUEnterFullscreenModeFunc ); AKUSetFunc_ExitFullscreenMode ( _AKUExitFullscreenModeFunc ); AKUSetFunc_OpenWindow ( _AKUOpenWindowFunc ); AKURunData ( moai_lua, moai_lua_SIZE, AKU_DATA_STRING, AKU_DATA_ZIPPED ); }