//------------------------------------------------------------ void ofAppGlutWindow::motion_cb(int x, int y) { if (nFrameCount > 0){ ofNotifyMouseDragged(x, y, buttonInUse); } }
//------------------------------------------------------------ void ofxFensterManager::motion_cb(GLFWwindow* windowP_, double x, double y) { rotateMouseXY(ofGetOrientation(), x, y); ofxFensterPtr fenster = get()->getFensterByGlfwHandle(windowP_); fenster->curMouseX = x; fenster->curMouseY = y; if(!fenster->buttonPressed) { if(fenster == get()->mainWindow) ofNotifyMouseMoved(x, y); ofMouseEventArgs args; args.x = fenster->curMouseX; args.y = fenster->curMouseY; args.type = ofMouseEventArgs::Moved; ofNotifyEvent(fenster->onMouseMoved, args); } else { if(fenster == get()->mainWindow) ofNotifyMouseDragged(x, y, fenster->buttonInUse); ofMouseEventArgs args; args.x = fenster->curMouseX; args.y = fenster->curMouseY; args.type = ofMouseEventArgs::Dragged; ofNotifyEvent(fenster->onMouseDragged, args); } }
//------------------------------------------------------------ void ofAppGlutWindow::motion_cb(int x, int y) { rotateMouseXY(orientation, x, y); if (nFrameCount > 0){ ofNotifyMouseDragged(x, y, buttonInUse); } }
void Java_cc_openframeworks_OFAndroid_onTouchMoved(JNIEnv* env, jclass thiz, jint id,jfloat x,jfloat y,jfloat pressure){ ofNotifyMouseMoved(x,y); ofNotifyMouseDragged(x,y,0); ofTouchEventArgs touch; touch.id = id; touch.x = x; touch.y = y; touch.pressure = pressure; ofNotifyEvent(ofEvents.touchMoved,touch); }
//------------------------------------------------------------ void ofAppGlutWindow::motion_cb(int x, int y) { if (nFrameCount > 0){ if(ofAppPtr){ ofAppPtr->mouseX = x; ofAppPtr->mouseY = y; } ofNotifyMouseDragged(x, y, buttonInUse); } }
//------------------------------------------ void ofNotifyMouseEvent(const ofMouseEventArgs & mouseEvent){ switch(mouseEvent.type){ case ofMouseEventArgs::Moved: ofNotifyMouseMoved(mouseEvent.x,mouseEvent.y); break; case ofMouseEventArgs::Dragged: ofNotifyMouseDragged(mouseEvent.x,mouseEvent.y,mouseEvent.button); break; case ofMouseEventArgs::Pressed: ofNotifyMousePressed(mouseEvent.x,mouseEvent.y,mouseEvent.button); break; case ofMouseEventArgs::Released: ofNotifyMouseReleased(mouseEvent.x,mouseEvent.y,mouseEvent.button); break; } }
void Java_cc_openframeworks_OFAndroid_onTouchMoved(JNIEnv* env, jclass thiz, jint id,jfloat x,jfloat y,jfloat pressure){ ofNotifyMouseMoved(x,y); ofNotifyMouseDragged(x,y,0); ofTouchEventArgs touch; touch.id = id; touch.x = x; touch.y = y; touch.pressure = pressure; touch.type = ofTouchEventArgs::move; if(threadedTouchEvents){ ofNotifyEvent(ofEvents().touchMoved,touch); }else{ mutex.lock(); touchEventArgsQueue.push(touch); mutex.unlock(); } }
void Touch::tuioUpdated(ofxTuioCursor &tuioCursor){ ofPoint loc = ofPoint(tuioCursor.getX()*ofGetWidth(),tuioCursor.getY()*ofGetHeight()); ofLog(OF_LOG_VERBOSE) << "Point n" << tuioCursor.getSessionId() << " updated at " << loc << endl; ofNotifyMouseDragged(loc.x, loc.y, 0); lastMoved = ofGetUnixTime(); }
/* Call to render the next GL frame */ void Java_cc_openframeworks_OFAndroid_render( JNIEnv* env, jclass thiz ) { if(paused || surfaceDestroyed) return; if(!threadedTouchEvents){ mutex.lock(); queue<ofTouchEventArgs> events = touchEventArgsQueue; while(!touchEventArgsQueue.empty()) touchEventArgsQueue.pop(); mutex.unlock(); while(!events.empty()){ switch(events.front().type){ case ofTouchEventArgs::down: ofNotifyMousePressed(events.front().x,events.front().y,0); ofNotifyEvent(ofEvents().touchDown,events.front()); break; case ofTouchEventArgs::up: ofNotifyMouseReleased(events.front().x,events.front().y,0); ofNotifyEvent(ofEvents().touchUp,events.front()); break; case ofTouchEventArgs::move: ofNotifyMouseMoved(events.front().x,events.front().y); ofNotifyMouseDragged(events.front().x,events.front().y,0); ofNotifyEvent(ofEvents().touchMoved,events.front()); break; case ofTouchEventArgs::doubleTap: ofNotifyEvent(ofEvents().touchDoubleTap,events.front()); break; case ofTouchEventArgs::cancel: ofNotifyEvent(ofEvents().touchCancelled,events.front()); break; } events.pop(); } } ofNotifyUpdate(); if(ofGetGLProgrammableRenderer()){ ofGetGLProgrammableRenderer()->startRender(); } int width, height; width = sWindowWidth; height = sWindowHeight; height = height > 0 ? height : 1; // set viewport, clear the screen //glViewport( 0, 0, width, height ); ofViewport(0, 0, width, height, false); // used to be glViewport( 0, 0, width, height ); float * bgPtr = ofBgColorPtr(); bool bClearAuto = ofbClearBg(); if ( bClearAuto == true || ofGetFrameNum() < 3){ ofClear(bgPtr[0]*255,bgPtr[1]*255,bgPtr[2]*255, bgPtr[3]*255); } if(bSetupScreen) ofSetupScreen(); ofNotifyDraw(); if(ofGetGLProgrammableRenderer()){ ofGetGLProgrammableRenderer()->finishRender(); } }
/* Call to render the next GL frame */ void Java_cc_openframeworks_OFAndroid_render( JNIEnv* env, jclass thiz ) { unsigned long beginFrameMicros = ofGetElapsedTimeMicros(); if(paused || surfaceDestroyed) return; lastFrameTime = double(beginFrameMicros - previousFrameMicros)/1000000.; previousFrameMicros = beginFrameMicros; if(!threadedTouchEvents){ mutex.lock(); while(!touchEventArgsQueue.empty()){ switch(touchEventArgsQueue.front().type){ case ofTouchEventArgs::down: ofNotifyMousePressed(touchEventArgsQueue.front().x,touchEventArgsQueue.front().y,0); ofNotifyEvent(ofEvents().touchDown,touchEventArgsQueue.front()); break; case ofTouchEventArgs::up: ofNotifyMouseReleased(touchEventArgsQueue.front().x,touchEventArgsQueue.front().y,0); ofNotifyEvent(ofEvents().touchUp,touchEventArgsQueue.front()); break; case ofTouchEventArgs::move: ofNotifyMouseMoved(touchEventArgsQueue.front().x,touchEventArgsQueue.front().y); ofNotifyMouseDragged(touchEventArgsQueue.front().x,touchEventArgsQueue.front().y,0); ofNotifyEvent(ofEvents().touchMoved,touchEventArgsQueue.front()); break; case ofTouchEventArgs::doubleTap: ofNotifyEvent(ofEvents().touchDoubleTap,touchEventArgsQueue.front()); break; case ofTouchEventArgs::cancel: ofNotifyEvent(ofEvents().touchCancelled,touchEventArgsQueue.front()); break; } touchEventArgsQueue.pop(); } mutex.unlock(); } ofNotifyUpdate(); int width, height; width = sWindowWidth; height = sWindowHeight; height = height > 0 ? height : 1; // set viewport, clear the screen //glViewport( 0, 0, width, height ); ofViewport(0, 0, width, height, false); // used to be glViewport( 0, 0, width, height ); float * bgPtr = ofBgColorPtr(); bool bClearAuto = ofbClearBg(); if ( bClearAuto == true || nFrameCount < 3){ ofClear(bgPtr[0]*255,bgPtr[1]*255,bgPtr[2]*255, bgPtr[3]*255); } if(bSetupScreen) ofSetupScreen(); ofNotifyDraw(); unsigned long currTime = ofGetElapsedTimeMicros(); unsigned long frameMicros = currTime - beginFrameMicros; nFrameCount++; // increase the overall frame count*/ frames++; if(currTime - onesec>=1000000){ frameRate = frames; frames = 0; onesec = currTime; } if(bFrameRateSet && frameMicros<oneFrameTime) usleep(oneFrameTime-frameMicros); }