void CNotificationDlg::OnTimer(UINT_PTR nIDEvent) { // TODO: Add your message handler code here and/or call default if(nIDEvent==100){ CRect rect; GetWindowRect(rect); int y=EaseOut(_i, src_y, dst_y+1, 50); SetWindowPos(NULL, rect.left, y, 0, 0, SWP_NOZORDER|SWP_NOSIZE|SWP_NOACTIVATE); CDC scrdc; scrdc.Attach(::GetDC(0)); BLENDFUNCTION func; func.BlendOp=AC_SRC_OVER; func.AlphaFormat=AC_SRC_ALPHA; func.SourceConstantAlpha=EaseOut(_i, 0, 255, 50); func.BlendFlags=0; UpdateLayeredWindow(&scrdc, &CPoint(rect.left, y), &CSize(200, 95), &bdc, &CPoint(0,0), 0, &func, ULW_ALPHA); ::ReleaseDC(0, scrdc); _i++; if(_i==50){ KillTimer(100); SetTimer(101, 3000, NULL); _i=0; } } if(nIDEvent==101){ KillTimer(101); if(!mouseInside){ SetTimer(102, 10, NULL); }else{ cls=true; } } if(nIDEvent==102){ CRect rect; GetWindowRect(rect); CDC scrdc; scrdc.Attach(::GetDC(0)); BLENDFUNCTION func; func.BlendOp=AC_SRC_OVER; func.AlphaFormat=AC_SRC_ALPHA; func.SourceConstantAlpha=EaseIn(_i, 255, -255, 50); func.BlendFlags=0; UpdateLayeredWindow(&scrdc, &CPoint(rect.left, src_y+dst_y), &CSize(200, 95), &bdc, &CPoint(0,0), 0, &func, ULW_ALPHA); ::ReleaseDC(0, scrdc); _i++; if(_i==50){ KillTimer(102); PostMessage(WM_CLOSE); } } CDialog::OnTimer(nIDEvent); }
void CNotificationWnd::DoTransitionIn(){ RECT rect; GetWindowRect(&rect); int src_y=rect.top; int dst_y=-30; for(int i=0;i<50;i++){ int y=EaseOut(i, src_y, dst_y+1, 50); SetWindowPos(NULL, rect.left, y, 0, 0, SWP_NOZORDER|SWP_NOSIZE|SWP_NOACTIVATE); CDC scrdc; scrdc.Attach(::GetDC(0)); BLENDFUNCTION func; func.BlendOp=AC_SRC_OVER; func.AlphaFormat=AC_SRC_ALPHA; func.SourceConstantAlpha=EaseOut(i, 0, 255, 50); func.BlendFlags=0; UpdateLayeredWindow(&scrdc, &CPoint(rect.left, y), &CSize(200, 95), &bdc, &CPoint(0,0), 0, &func, ULW_ALPHA); ::ReleaseDC(0, scrdc); _sleep(10); } for(int i=0;i<300;i++){ _sleep(10); if(needClose)break; } while(mouseInside && !needClose){ _sleep(10); } if(!this)return; for(int i=0;i<50;i++){ CDC scrdc; scrdc.Attach(::GetDC(0)); BLENDFUNCTION func; func.BlendOp=AC_SRC_OVER; func.AlphaFormat=AC_SRC_ALPHA; func.SourceConstantAlpha=EaseIn(i, 255, -255, 50); func.BlendFlags=0; UpdateLayeredWindow(&scrdc, &CPoint(rect.left, src_y+dst_y), &CSize(200, 95), &bdc, &CPoint(0,0), 0, &func, ULW_ALPHA); ::ReleaseDC(0, scrdc); _sleep(10); } SendMessage(WM_CLOSE); }
//-------------------------------------------------------------- void ofApp::draw(){ // ofSetColor(245, 58, 135); // ofFill(); if (camera_home == true){ mx = ofGetWidth()/2; my = ofGetHeight()/2; } else if (camera_lock == false){ mx += EaseIn(mx, float(mouseX), 0.05); my += EaseIn(my, float(mouseY), 0.05); if (abs(mouseX - mx) < 1) mx = mouseX; if (abs(mouseY - my) < 1) my = mouseY; } scale_display += EaseIn(scale_display, scale_target, 0.05); display.begin(); ofBackground(34, 34, 34); waveShader_displayTiled.begin(); waveShader_displayTiled.setUniform2f("mouse", mx, my); waveShader_displayTiled.setUniform1f("scale_factor", scale_display); waveShader_displayTiled.setUniform1i("pos", 0); height_Fbo0.draw(0,0); waveShader_displayTiled.end(); waveShader_displayTiled.begin(); waveShader_displayTiled.setUniform2f("mouse", mx, my); waveShader_displayTiled.setUniform1f("scale_factor", scale_display); waveShader_displayTiled.setUniform1i("pos", 1); height_Fbo1.draw(0,0); waveShader_displayTiled.end(); waveShader_displayTiled.begin(); waveShader_displayTiled.setUniform2f("mouse", mx, my); waveShader_displayTiled.setUniform1f("scale_factor", scale_display); waveShader_displayTiled.setUniform1i("pos", 2); height_Fbo2.draw(0,0); waveShader_displayTiled.end(); waveShader_displayTiled.begin(); waveShader_displayTiled.setUniform2f("mouse", mx, my); waveShader_displayTiled.setUniform1f("scale_factor", scale_display); waveShader_displayTiled.setUniform1i("pos", 3); height_Fbo3.draw(0,0); waveShader_displayTiled.end(); display.end(); // finally display the image display.draw(0,0); // show framerate at top left if (showFPS){ ofSetColor(0); ofRect(10, 5, 60, 15); ofSetColor(255); string framerate = ofToString(ofGetFrameRate()); font.drawString(framerate, 10, 18); } // cout<<"frame "<<frame_num<<endl; }
double easeIn(double easingFunction(double) = Easing::Quart) const { return EaseIn(easingFunction, m_value); }
Type easeIn() const { return EaseIn(m_start, m_end, m_easingFunction, elapsed()); }
float CCinemaPath::EaseOutIn(float t) const { if (t < m_Switch) return EaseOut(1.0f/m_Switch * t) * m_Switch; return EaseIn(1.0f/m_Switch * (t-m_Switch)) * m_Switch + m_Switch; }
float CCinemaPath::EaseOut(float t) const { return 1.0f - EaseIn(1.0f-t); }
[[nodiscard]] constexpr double easeIn(double easingFunction(double) = Easing::Quart) const { return EaseIn(easingFunction, m_value); }
float Bounce::EaseInOut( float t, float b, float c, float d ) { if ( t < d / 2 ) return EaseIn( t * 2, 0, c, d ) * .5f + b; else return EaseOut( t * 2 - d, 0, c, d ) * .5f + c*.5f + b; }