//-------------------------------------------------------------- void testApp::draw(){ /* for (int i = 0; i < ofGetHeight(); i += 80) { ofPushStyle(); ofSetColor(0, 0, 0); ofRect(0, i, 1280, 40); ofPopStyle(); } */ drawBoxes(); fbos[0].draw(640, 0); fbos[1].draw(0, 360); shaders[0].begin(); fbos[0].draw(640, 360); shaders[0].end(); ofPushStyle(); ofSetColor(255,255,255); ofDrawBitmapString("0) No FBO", 20, 20); ofDrawBitmapString("1) FBO with Transparent Background", 660, 20); ofDrawBitmapString("2) FBO with Non-Transparent Background", 20, 370); ofDrawBitmapString("3) Alpha Value in FBO 1)", 660, 370); ofPopStyle(); }
void MyGL::GLDrawScene() { for(Geometry *g : scene.objects) { if(g->drawMode() == GL_TRIANGLES) { prog_lambert.setModelMatrix(g->transform.T()); prog_lambert.draw(*this, *g); } else if(g->drawMode() == GL_LINES) { prog_flat.setModelMatrix(g->transform.T()); prog_flat.draw(*this, *g); } } for(Geometry *l : scene.lights) { prog_flat.setModelMatrix(l->transform.T()); prog_flat.draw(*this, *l); } prog_flat.setModelMatrix(glm::mat4(1.0f)); prog_flat.draw(*this, scene.camera); //Recursively traverse the BVH hierarchy stored in the intersection engine and draw each node drawBoxes(this->intersection_engine.BVHrootNode); }
/** * @brief drawBVHnodes * @brief Helper function that draws BVHnodes */ void MyGL::drawBoxes(BVHnode* node) { if (node->geom != NULL && node->geom->isMesh()) { drawTriangles(((Mesh*)node->geom)->MeshRootBVHnode, 0); } prog_flat.setModelMatrix(node->boundingBox->transformation); prog_flat.draw(*this, *node->boundingBox); //recurse and draw children's boxes if(node->leftChild != NULL) { drawBoxes(node->leftChild); } if (node->rightChild != NULL) { drawBoxes(node->rightChild); } }
void DrawBoundingBox::postFrame() { program->bind(); GLint polygonMode; glGetIntegerv(GL_POLYGON_MODE, &polygonMode); // get current polygon mode glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); // paint using wireframe mode drawBoxes(); // draw all boxes glPolygonMode(GL_FRONT_AND_BACK, polygonMode); // restore previous polygon mode program->release(); }
//-------------------------------------------------------------- void testApp::setup(){ ofBackground(128, 128, 128); ofEnableAlphaBlending(); initShaders(); fbos[0].allocate(640, 360, GL_RGBA32F); fbos[1].allocate(640, 360, GL_RGBA32F); ofPushStyle(); fbos[0].begin(); ofClear(0, 0, 0, 0); drawBoxes(); fbos[0].end(); ofPushStyle(); fbos[1].begin(); ofClear(128, 128, 128, 255); drawBoxes(); fbos[1].end(); }
void DrawDebug::draw(Render::MaterialPass* r) { #if DEBUG setRenderer(r); if (cam) { auto c = cam->getCamMat(); vecMat.shaders->program.use(); vecCam.update(c); meshMat.shaders->program.use(); meshCam.update(c); } drawVectors(); drawSpheres(); drawBoxes(); #endif }
void game::render(){ window.clear(); //clears the widnow. if(meny->getShowMeny()){//if meny on. window.draw(*meny);//draw background for meny. window.draw(meny->getStart());//draw start text object. window.draw(meny->getQuit());//draw quit text object. } else {//if meny off. window.draw(backGrund);//draw game background. window.draw(fps);//draw fps text object. window.draw(extraLife); //draw extralife text object. window.draw(*fPlayer); //draw the player pad object. drawBoxes(); //member function drawing all boxes. window.draw(*ball); //draw the ball object. if(fPlayer->getLife() < 0){//check if the player lost. window.draw(meny->getGameOver()); //draw gameover text object. } if(boxesIsEmpty()){//check if all boxes is gone. window.draw(meny->getWin());//draw winning text object. } } window.display(); //display what been drawn in the window. }