} void Chapter21App::DestroyShaders() { GLenum ErrorCheckValue = glGetError(); glUseProgram(0); glDetachShader(ProgramId, VertexShaderId); glDetachShader(ProgramId, FragmentShaderId); glDeleteShader(FragmentShaderId); glDeleteShader(VertexShaderId); glDeleteProgram(ProgramId); ErrorCheckValue = glGetError(); if (ErrorCheckValue != GL_NO_ERROR) { fprintf( stderr, "ERROR: Could not destroy the shaders: %s \n", gluErrorString(ErrorCheckValue) ); exit(-1); } } CINDER_APP( Chapter21App,RendererGl( RendererGl::Options().msaa( 16 ) ), &Chapter21App::prepareSettings );
gl::color(1.0f,1.0f,1.0f); gl::draw(background_tex,getWindowBounds()); for(int i=0;i<recipeViews.size();i++){ recipeViews.at(i).draw(); } if(model.useFrontPlate) gl::draw(foreground_tex,getWindowBounds()); if(controller.getDebugState()!=0){ char buffer [50]; int n; n=sprintf (buffer, "%i, %i, %i", pConnector.getVal(148920, 0),pConnector.getVal(148920,2),pConnector.getVal(148920, 2)); if(controller.getDebugState()!=0){ cTarget->update(buffer); cTarget->update(getMousePos()); cTarget->draw(); } if(model.useSensors) pg.draw(Rectf(getWindowWidth()/3.0f,getWindowHeight()/3.0f,getWindowWidth()*2.0f/3.0f,getWindowHeight()*2.0f/3.0f)); mParams.show(); params::InterfaceGl::draw(); } else { mParams.hide(); } } CINDER_APP_BASIC( VideoTable, RendererGl(0) );
int y2 = Rand::randInt(y1 + 150, mImage->getHeight()); mSrcArea = Area(x1, y1, x2, y2); } break; case KeyEvent::KEY_SPACE: // toggle drawing mode mUseBeginEnd = !mUseBeginEnd; updateWindowTitle(); break; } } } void ReymentaServerApp::keyUp(KeyEvent event) { // pass this key event to the warp editor first if (!Warp::handleKeyUp(mWarps, event)) { // let your application perform its keyUp handling here } } void ReymentaServerApp::updateWindowTitle() { if (mUseBeginEnd) getWindow()->setTitle("Warping Sample - Using begin() and end()"); else getWindow()->setTitle("Warping Sample - Using draw()"); } CINDER_APP(ReymentaServerApp, RendererGl(RendererGl::Options().msaa(8)), &ReymentaServerApp::prepare)