コード例 #1
0
ファイル: testApp.cpp プロジェクト: kynd/apps_of0074_osx
//--------------------------------------------------------------
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();
    
}
コード例 #2
0
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);

}
コード例 #3
0
/**
 * @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);
    }
}
コード例 #4
0
ファイル: draw-bounding-box.cpp プロジェクト: EikaNN/FIB-G
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();
}
コード例 #5
0
ファイル: testApp.cpp プロジェクト: kynd/apps_of0074_osx
//--------------------------------------------------------------
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();
}
コード例 #6
0
ファイル: DrawDebug.cpp プロジェクト: budjmt/WreckEngine
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
}
コード例 #7
0
ファイル: game.cpp プロジェクト: mejan/SFML-break-out-game
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.
}