示例#1
0
//--------------------------------------------------------------
void ofApp::mousePressed(int x, int y, int button)
{
    cout << "change renderer" << endl;
    
    if (ofGetCurrentRenderer() == _defaultRenderer)
    {
        ofSetCurrentRenderer(_shivaVGRenderer);
    }
    else
    {
        ofSetCurrentRenderer(_defaultRenderer);
    }
}
示例#2
0
void ofSetCurrentRenderer(const string & rendererType,bool setDefaults){
	if(rendererType==ofGLProgrammableRenderer::TYPE){
		ofSetCurrentRenderer(ofPtr<ofBaseRenderer>(new ofGLProgrammableRenderer),setDefaults);
	}else if(rendererType==ofGLRenderer::TYPE){
		ofSetCurrentRenderer(ofPtr<ofBaseRenderer>(new ofGLRenderer),setDefaults);
#if !defined(TARGET_OF_IOS) && !defined(TARGET_ANDROID)
	}else if(rendererType==ofCairoRenderer::TYPE){
		ofSetCurrentRenderer(ofPtr<ofBaseRenderer>(new ofCairoRenderer),setDefaults);
#endif
	}else{
		ofLogError("ofGraphics") << "ofSetCurrentRenderer(): unknown renderer type " << rendererType << ", setting an ofGLRenderer";
		ofLogError("ofGraphics") << "if you want to use a custom renderer, pass an ofPtr to a new instance of it";
		ofSetCurrentRenderer(ofPtr<ofBaseRenderer>(new ofGLRenderer),setDefaults);
	}
}
示例#3
0
void setDesiredRenderer(const CX_WindowConfiguration& config, bool setDefaultRendererIfNoneDesired, ofAppBaseWindow* window) {
	if (config.desiredRenderer != nullptr) {
		if (config.desiredRenderer->getType() == ofGLProgrammableRenderer::TYPE) {
			if (Private::glCompareVersions(config.desiredOpenGLVersion, Private::CX_GLVersion(3, 2, 0)) >= 0) {
				ofSetCurrentRenderer(config.desiredRenderer, true);
			} else {
				CX::Instances::Log.warning("CX_EntryPoint") << "Desired renderer could not be used: "
					"High enough version of OpenGL is not available (requires OpenGL >= 3.2). Falling back on ofGLRenderer.";

#if OF_VERSION_MAJOR == 0 && OF_VERSION_MINOR == 9 && OF_VERSION_PATCH >= 0
				std::shared_ptr<ofBaseRenderer> newRenderer = std::shared_ptr<ofBaseRenderer>(new ofGLRenderer(window));
				std::dynamic_pointer_cast<ofGLRenderer>(newRenderer)->setup();
				ofSetCurrentRenderer(newRenderer, true);
				window->renderer() = newRenderer;
#else
				ofSetCurrentRenderer(ofPtr<ofBaseRenderer>(new ofGLRenderer), true);
#endif

			}
		} else {
			ofSetCurrentRenderer(config.desiredRenderer, true);
		}

		return;

	}

	if (!setDefaultRendererIfNoneDesired) {
		return;
	}

	//Check to see if the OpenGL version is high enough to fully support ofGLProgrammableRenderer. If not, fall back on ofGLRenderer.
	if (Private::glCompareVersions(config.desiredOpenGLVersion, Private::CX_GLVersion(3, 2, 0)) >= 0) {

#if OF_VERSION_MAJOR == 0 && OF_VERSION_MINOR == 9 && OF_VERSION_PATCH >= 0
		std::shared_ptr<ofBaseRenderer> newRenderer = std::shared_ptr<ofBaseRenderer>(new ofGLProgrammableRenderer(window));
		std::dynamic_pointer_cast<ofGLProgrammableRenderer>(newRenderer)->setup(config.desiredOpenGLVersion.major, config.desiredOpenGLVersion.minor);
		ofSetCurrentRenderer(newRenderer, true);
		window->renderer() = newRenderer;
#else
		ofSetCurrentRenderer(ofPtr<ofBaseRenderer>(new ofGLProgrammableRenderer), true);
#endif

	} else {

#if OF_VERSION_MAJOR == 0 && OF_VERSION_MINOR == 9 && OF_VERSION_PATCH >= 0
		std::shared_ptr<ofBaseRenderer> newRenderer = std::shared_ptr<ofBaseRenderer>(new ofGLRenderer(window));
		std::dynamic_pointer_cast<ofGLRenderer>(newRenderer)->setup();
		ofSetCurrentRenderer(newRenderer, true);
		window->renderer() = newRenderer;
#else
		ofSetCurrentRenderer(ofPtr<ofBaseRenderer>(new ofGLRenderer), true);
#endif

	}

	
}
示例#4
0
//========================================================================
int main( ){
	
    ofSetCurrentRenderer(ofGLProgrammableRenderer::TYPE); 
    ofSetupOpenGL(1280, 720, OF_WINDOW);
    ofRunApp( new ofApp());
	
}
示例#5
0
int main(){
	ofSetLogLevel(OF_LOG_VERBOSE);
#if defined(TARGET_OPENGLES)
	#if (OF_VERSION_MINOR == 9)
        ofGLESWindowSettings settings;
        settings.width = 1280;
        settings.height = 720;
        settings.setGLESVersion(2);
        ofCreateWindow(settings);
    #else
        ofSetLogLevel("ofThread", OF_LOG_ERROR);
        ofSetCurrentRenderer(ofGLProgrammableRenderer::TYPE);
        ofSetupOpenGL(1280, 720, OF_WINDOW);
    #endif
#else
#ifdef FORCE_PROGRAMMMABLE
	ofGLWindowSettings glWindowSettings;
	glWindowSettings.width = 1280;
	glWindowSettings.height = 720;
	glWindowSettings.setGLVersion(3, 2);
	ofCreateWindow(glWindowSettings);
#else
	ofSetLogLevel("ofThread", OF_LOG_ERROR);
    ofSetupOpenGL(1280, 720, OF_WINDOW);
#endif

#endif
	//ofSetupOpenGL(1024,768, OF_WINDOW);			// <-------- setup the GL context

	// this kicks off the running of my app
	// can be OF_WINDOW or OF_FULLSCREEN
	// pass in width and height too:
	ofRunApp( new ofApp() );
	return 0;
}
示例#6
0
// draws once at start
//--------------------------------------------------------------
void testApp::setup(){		
	   
    // Replace the default ofGLRenderer with ofxSosoRenderer which has overriden setupScreen() and setupScreenPerspective().
    // This lets us set up the scene graph how we want to.
    // Warning: Up is up and down is down in this world.
    ofSetCurrentRenderer(ofPtr<ofBaseRenderer>(new ofxSosoRenderer(false)));
    
    // Create a scene.
    // The scene is a scene graph that renders objects added to its root and their children and their children's children and so on.
    // When the render mode of the scene is set to RENDER_ALPHA_DEPTH_SORTED, it handles sorting of both transparent and opaque objects in the z-axis.
    scene = new ofxScene(ofGetWidth(), ofGetHeight());
    scene->setBackgroundColor(10, 10, 10);
    
    // Display background image of Baccarat lobby
    newLobbyImage = new bacLobbyObject();                                                          //Call this with true to center it.	Defaults to lower left origin.
    scene->getRoot()->addChild(newLobbyImage);                                                     //Add the object to the scene's root.

    // Display our fake people couple
    peopleImage = new ofxImageObject("Lobby-Render-visualizer-people.png");
    peopleImage->setTrans(0,0,2);                                                               // z-index is 2: above lobby image but beneath lights
    peopleImage->setSpecialTransparency(true);
    peopleImage->setCentered(true);
    scene->getRoot()->addChild(peopleImage);
    
    // Container for all light objects
    newLightsMatrix = new bacLightMatrix();
    newLightsMatrix->setTrans(-225, -292.5, 1);                                                     // origin is at the bottom

    scene->getRoot()->addChild(newLightsMatrix);
    
    
}
示例#7
0
int main()
{
	ofSetLogLevel(OF_LOG_VERBOSE);
	ofSetCurrentRenderer(ofGLProgrammableRenderer::TYPE);
	ofSetupOpenGL(768, 576, OF_FULLSCREEN);
	ofRunApp( new multiPlayer());
}
示例#8
0
int main( ){
  #ifdef TARGET_OPENGLES
  ofSetCurrentRenderer(ofGLProgrammableRenderer::TYPE);
  #endif
  ofSetupOpenGL(1024, 768, OF_WINDOW);
  ofRunApp(new pooksApp());
}
示例#9
0
//--------------------------------------
void ofSetupOpenGL(ofPtr<ofAppBaseWindow> windowPtr, int w, int h, int screenMode){
    if(!ofGetCurrentRenderer()) {
	#ifdef USE_PROGRAMMABLE_GL
	    ofPtr<ofBaseRenderer> renderer(new ofGLProgrammableRenderer(false));
	#else
	    ofPtr<ofBaseRenderer> renderer(new ofGLRenderer(false));
	#endif
	    ofSetCurrentRenderer(renderer,false);
    }

	window = windowPtr;

	if(ofIsGLProgrammableRenderer()){
        #if defined(TARGET_RASPBERRY_PI)
		static_cast<ofAppEGLWindow*>(window.get())->setGLESVersion(2);
		#elif defined(TARGET_LINUX_ARM)
		static_cast<ofAppGLFWWindow*>(window.get())->setOpenGLVersion(2,0);
		#elif !defined(TARGET_OPENGLES)
		static_cast<ofAppGLFWWindow*>(window.get())->setOpenGLVersion(3,2);
		#endif
	}else{
	    #if defined(TARGET_LINUX_ARM) && !defined(TARGET_RASPBERRY_PI)
		static_cast<ofAppGLFWWindow*>(window.get())->setOpenGLVersion(1,0);
		#endif
	}

	window->setupOpenGL(w, h, screenMode);
}
示例#10
0
	int main()
	{
		ofSetLogLevel(OF_LOG_VERBOSE);
		ofSetCurrentRenderer(ofGLProgrammableRenderer::TYPE);
		ofSetupOpenGL(1920, 1080, OF_FULLSCREEN);
		ofRunApp( new testApp());
	}
示例#11
0
//========================================================================
int main( )
{
    ofSetCurrentRenderer(ofGLProgrammableRenderer::TYPE);
	ofSetupOpenGL(800,600,OF_WINDOW);
	ofSetWindowTitle("RV TD1");

	ofRunApp(new ofApp());
}
示例#12
0
//========================================================================
int main( ){
	ofSetLogLevel(OF_LOG_VERBOSE); 
	#ifdef TARGET_OPENGLES
		#ifdef PROGRAMMABLE_PRESENT
			ofSetCurrentRenderer(ofPtr<ofBaseRenderer>(new ofGLProgrammableRenderer()));
		#else
			ofSetCurrentRenderer(ofPtr<ofBaseRenderer>(new ofGLES2Renderer()));
		#endif
	#endif
	ofSetupOpenGL(1280,720, OF_WINDOW);			// <-------- setup the GL context

	// this kicks off the running of my app
	// can be OF_WINDOW or OF_FULLSCREEN
	// pass in width and height too:
	ofRunApp( new testApp());

}
示例#13
0
//========================================================================
int main( ){

	ofSetLogLevel(OF_LOG_VERBOSE);
	ofSetCurrentRenderer(ofGLProgrammableRenderer::TYPE);
	ofSetupOpenGL(640, 480, OF_WINDOW);			// <-------- setup the GL context
	ofRunApp( new testApp());

}
示例#14
0
//========================================================================
int main( ){
	
    //commenting this line will allow to work
    ofSetCurrentRenderer(ofGLProgrammableRenderer::TYPE); 
    ofSetupOpenGL(1280, 720, OF_WINDOW);
    ofRunApp( new ofApp());
	
}
//========================================================================
int main( ){
    ofSetCurrentRenderer(ofGLProgrammableRenderer::TYPE);
    
    ofSetupOpenGL(1024,768,OF_WINDOW);
    ofSetCircleResolution(32);

    ofRunApp(new testApp());
}
示例#16
0
//========================================================================
int main()
{
    ovr_InitializeRenderingShim();
    ofSetCurrentRenderer(ofGLProgrammableRenderer::TYPE);
    
    ofSetupOpenGL(1200, 800, OF_WINDOW);
    ofRunApp( new ofApp()) ; // start the app
}
示例#17
0
int main()
{

	ofAppNoWindow w;	
	ofSetLogLevel(OF_LOG_VERBOSE);
	ofSetCurrentRenderer(ofGLProgrammableRenderer::TYPE);
	ofSetupOpenGL(&w,640, 480, OF_WINDOW);
	ofRunApp( new pixelsApp());
}
示例#18
0
//------------------------------------------------------------
void ofxAppNoWindow::runAppViaInfiniteLoop(ofBaseApp * appPtr){

	ofSetCurrentRenderer(ofPtr<ofBaseRenderer>(new ofNoopRenderer));

	ofAppPtr = appPtr;

	#if defined TARGET_OSX || defined TARGET_LINUX
	// for keyboard
	//set_conio_terminal_mode();
	#endif

	ofNotifySetup();

//    ofLogNotice("ofxAppNoWindow")
//		<< "***" << endl
//		<< "***" << endl
//		<< "*** running a headless (no window) app" << endl
//		<< "***" << endl
//		<< "*** keyboard input works here" << endl
//		<< "***"<< endl
//		<< "*** press Esc or Ctrl-C to quit" << endl
//		<< "***" << endl;

	while (true)
	{
        /// listen for escape
        #ifdef TARGET_WIN32
        if (GetAsyncKeyState(VK_ESCAPE))
            ofNotifyKeyPressed(OF_KEY_ESC);
        #endif

		#if defined TARGET_OSX || defined TARGET_LINUX
		while ( kbhit() )
		{
			int key = getch();
			if ( key == 27 )
			{
				ofNotifyKeyPressed(OF_KEY_ESC);
			}
			else if ( key == /* ctrl-c */ 3 )
			{
				ofLogNotice("ofxAppNoWindow") << "Ctrl-C pressed" << endl;
				OF_EXIT_APP(0);
			}
			else
			{
				ofNotifyKeyPressed(key);
			}
		}
		#endif


		ofNotifyUpdate();
		ofNotifyDraw();

	}
}
示例#19
0
//========================================================================
int main( ){
	
    
	
    
#ifdef USE_PROGRAMMABLE_GL
	// we are using the programmable gl renderer.
    
	ofPtr<ofBaseRenderer> renderer(new ofGLProgrammableRenderer(false));
	ofSetCurrentRenderer(renderer, false);
	ofSetupOpenGL(1280,720,OF_WINDOW);			// <-------- setup the GL context
    
#else
	// we are not using the progammable gl renderer.
	
	// when we are not using the programmable gl renderer it is not safe to assume
	// out current gl context provides us with the necessary openGL extensions to
	// run this example.
	
	// let's check if the current openGL context provides us with glDrawElementsInstanced
	// we do this after we have initialised our openGL context.
    
	ofSetupOpenGL(1280,720,OF_WINDOW);			// <-------- setup the GL context
	
	ostringstream extStr;
	extStr << (char*)glGetString(GL_EXTENSIONS);		// first get all available extensions.
	string extensionsAvailable = extStr.str();
	
	
	if (ofStringTimesInString(extensionsAvailable, "GL_ARB_draw_instanced") == 0)
    {
        ofLogFatalError("App") << " GL_ARB_draw_instanced is needed for this example but it is not supported by your graphics card. Exiting App.";
        return -1;
        
    } else {
        
        // GL_ARB_draw_instanced is available... so far so good.
        
        // either one of these is needed, too:
        if (ofStringTimesInString(extensionsAvailable, "GL_EXT_gpu_shader4") == 0 &&
            ofStringTimesInString(extensionsAvailable, "NV_vertex_program4") == 0 )
        {
            ofLogFatalError("App") << " GL_EXT_gpu_shader4 or NV_vertex_program4 is needed for this example but it is not supported by your graphics card. Exiting App.";
            return -1;
            
        }
        
    }
#endif
	
	// this kicks off the running of my app
	// can be OF_WINDOW or OF_FULLSCREEN
	// pass in width and height too:
	ofRunApp(new ofApp());
    
}
示例#20
0
//========================================================================
int main( ){
	ofSetCurrentRenderer(ofGLProgrammableRenderer::TYPE);
	ofSetupOpenGL(800,600,OF_WINDOW);			// <-------- setup the GL context

	// this kicks off the running of my app
	// can be OF_WINDOW or OF_FULLSCREEN
	// pass in width and height too:
	ofRunApp(new ofApp());

}
示例#21
0
	void setup() {
		ofSetCurrentRenderer(ofPtr<ofBaseRenderer>(new ofGLRenderer(false)));

		ofSetFrameRate(60);
		ofBackground(0, 0, 0);
		ofSetVerticalSync(true);
		ofEnableAlphaBlending();
		ofSetWindowShape(640, 380);
		ofSetWindowPosition(0,0);
	}
示例#22
0
int main(){
	ofSetCurrentRenderer(ofPtr<ofBaseRenderer>(new ofGLProgrammableRenderer()));
	ofSetupOpenGL(1024,768, OF_WINDOW);			// <-------- setup the GL context

	// this kicks off the running of my app
	// can be OF_WINDOW or OF_FULLSCREEN
	// pass in width and height too:
	ofRunApp( new testApp() );
	return 0;
}
示例#23
0
//========================================================================
int main( )
{

    ofSetCurrentRenderer(ofGLProgrammableRenderer::TYPE);    // Turn on programmable render pipeline

    // Setup and run OpenFrameworks app
    ofSetupOpenGL(1024,768,OF_WINDOW);
	ofRunApp(new ofApp());

}
//========================================================================
int main( )
{

	// If we want shaders on the Pi, we need to set the renderer to the programmable renderer
	#ifdef TARGET_OPENGLES
		ofSetCurrentRenderer(ofPtr<ofBaseRenderer>(new ofGLProgrammableRenderer()));
	#endif	
	
	ofSetupOpenGL(1280, 720, OF_WINDOW); // OF_WINDOW or OF_FULLSCREEN
	ofRunApp( new testApp());
}
示例#25
0
//========================================================================
int main( ){    
    
    ofSetCurrentRenderer(ofGLProgrammableRenderer::TYPE);
    ofSetupOpenGL(1280, 800, OF_WINDOW);
    
    //ofGetCurrentRenderer()->enableAntiAliasing();
	// this kicks off the running of my app
	// can be OF_WINDOW or OF_FULLSCREEN
	// pass in width and height too:
	ofRunApp(new testApp());

}
示例#26
0
//-----------------------------------------------------------------------------------
void ofEndSaveScreenAsPDF(){
	if( bScreenShotStarted ){

		
		if( storedRenderer ){
			ofSetCurrentRenderer(storedRenderer);
			storedRenderer.reset();
		}
		
		bScreenShotStarted = false;
	}
}
//========================================================================
int main( ){
#ifdef TARGET_LINUX_ARM
	ofGLES2Renderer * renderer = new ofGLES2Renderer();
	ofSetCurrentRenderer(ofPtr<ofBaseRenderer>(renderer));
#endif
	ofSetupOpenGL(1024,768,OF_WINDOW);
	// this kicks off the running of my app
	// can be OF_WINDOW or OF_FULLSCREEN
	// pass in width and height too:
	ofRunApp( new testApp());

}
示例#28
0
//========================================================================
int main( ) {
    ofSetCurrentRenderer(ofGLProgrammableRenderer::TYPE);
    ofSetupOpenGL(
        gpgpuLifeApp::CELL_WIDTH*gpgpuLifeApp::SCALE,
        gpgpuLifeApp::CELL_HEIGHT*gpgpuLifeApp::SCALE,
        OF_WINDOW);			// <-------- setup the GL context

    // this kicks off the running of my app
    // can be OF_WINDOW or OF_FULLSCREEN
    // pass in width and height too:
    ofRunApp(new gpgpuLifeApp());

}
示例#29
0
//========================================================================
int main( ){

    // say that we're going to *use* the fancy new renderer
    ofSetCurrentRenderer(ofGLProgrammableRenderer::TYPE);
	ofSetupOpenGL(800, 600, OF_WINDOW);			// <-------- setup the GL context

    // Holography note: press 'f' to enter fullscreen; screen fills, not stretches

	// this kicks off the running of my app
	// can be OF_WINDOW or OF_FULLSCREEN
	// pass in width and height too:
	ofRunApp( new ofApp());
}
示例#30
0
//-----------------------------------------------------------------------------------
void ofBeginSaveScreenAsPDF(string filename, bool bMultipage, bool b3D, ofRectangle viewport){
	if( bScreenShotStarted )ofEndSaveScreenAsPDF();
	
	storedRenderer = ofGetCurrentRenderer();
	
	

	rendererCollection = ofPtr<ofRendererCollection>(new ofRendererCollection);
	rendererCollection->renderers.push_back(ofGetGLRenderer());
	
	ofSetCurrentRenderer(rendererCollection);
	bScreenShotStarted = true;
}