MCPcopy Create free account
hub / github.com/cinder/Cinder / execute

Method execute

src/cinder/app/android/EventManagerAndroid.cpp:648–807  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

646}
647
648void EventManagerAndroid::execute()
649{
650 mNativeApp->userData = this;
651 mNativeApp->onInputEvent = EventManagerAndroid::NativeHandleInput;
652 mNativeApp->onAppCmd = EventManagerAndroid::NativeHandleCmd;
653
654 mSensorManager = ASensorManager_getInstance();
655 mAccelerometerSensor->mSensor = ASensorManager_getDefaultSensor( mSensorManager, ASENSOR_TYPE_ACCELEROMETER );
656 mMagneticFieldSensor->mSensor = ASensorManager_getDefaultSensor( mSensorManager, ASENSOR_TYPE_MAGNETIC_FIELD );
657 mGyroscopeSensor->mSensor = ASensorManager_getDefaultSensor( mSensorManager, ASENSOR_TYPE_GYROSCOPE );
658 mLightSensor->mSensor = ASensorManager_getDefaultSensor( mSensorManager, ASENSOR_TYPE_LIGHT );
659 mProximitySensor->mSensor = ASensorManager_getDefaultSensor( mSensorManager, ASENSOR_TYPE_PROXIMITY );
660 mGravitySensor->mSensor = ASensorManager_getDefaultSensor( mSensorManager, ASENSOR_TYPE_GRAVITY );
661 mRotationVectorSensor->mSensor = ASensorManager_getDefaultSensor( mSensorManager, ASENSOR_TYPE_GAME_ROTATION_VECTOR );
662 if( nullptr == mRotationVectorSensor->mSensor ) {
663 mRotationVectorSensor->mSensor = ASensorManager_getDefaultSensor( mSensorManager, ASENSOR_TYPE_ROTATION_VECTOR );
664 mHasGameRotationVector = false;
665 }
666
667 mSensorEventQueue = ASensorManager_createEventQueue( mSensorManager, mNativeApp->looper, LOOPER_ID_USER, nullptr, nullptr );
668
669 dbg_log_sensor( "mAccelerometerSensor ", mAccelerometerSensor );
670 dbg_log_sensor( "mMagneticFieldSensor ", mMagneticFieldSensor );
671 dbg_log_sensor( "mGyroscopeSensor ", mGyroscopeSensor );
672 dbg_log_sensor( "mLightSensor ", mLightSensor );
673 dbg_log_sensor( "mProximitySensor ", mProximitySensor );
674 dbg_log_sensor( "mGravitySensor ", mGravitySensor );
675 if( mHasGameRotationVector ) {
676 dbg_log_sensor( "mRotationVectorSensor(G)", mRotationVectorSensor );
677 }
678 else {
679 dbg_log_sensor( "mRotationVectorSensor ", mRotationVectorSensor );
680 }
681
682 ci::android::JniHelper::Initialize( mNativeApp->activity );
683 ci::android::app::CinderNativeActivity::registerComponents();
684
685 // Set keep screen on before the window gets initialized
686 ci::android::app::CinderNativeActivity::setKeepScreenOn( ci::app::AppAndroid::isKeepScreenOn() );
687
688dbg_app_log( "Starting Event Loop" );
689 // Event loop
690 while( ! mShouldQuit ) {
691 // Sleep until next frame;
692 if( mAppImplInst && mAppImplInst->mCanProcessEvents ) {
693 mAppImplInst->sleepUntilNextFrame();
694 }
695
696
697 // Process events
698 {
699 // Read all pending events.
700 int ident;
701 int events;
702 struct android_poll_source *source = nullptr;
703
704 // If not running, we will block forever waiting for events.
705 // If animating, we loop until all events are read, then continue

Callers

nothing calls this directly

Calls 5

dbg_log_sensorFunction · 0.85
dbg_app_logFunction · 0.85
updateAndDrawMethod · 0.80
sleepUntilNextFrameMethod · 0.45
processMethod · 0.45

Tested by

no test coverage detected