示例#1
0
文件: App.cpp 项目: luaman/g3d-cvs
App::App(const GApp::Settings& settings, const std::string& file) :
    GApp(settings),
    viewer(NULL),
    filename(file) {

    m_debugTextColor = Color3::black();
    m_debugTextOutlineColor = Color3::white();

    shadowMap = ShadowMap::create("Shadow Map", 2048);
    shadowMap->setPolygonOffset(2.0, 2.0);
    setDesiredFrameRate(60);

    catchCommonExceptions = false;
}
示例#2
0
//--------------------------------------------------------------
bool ofxCLEye::initGrabber(int w, int h, int deviceID, int frameRate, bool useTexture,
						   bool useGrayscale, bool useThread){
	setDeviceID(deviceID);
	setDesiredFrameRate(frameRate);
	setUseThread(useThread);
	setUseGrayscale(useGrayscale);
	setUseTexture(useTexture);

	if(w == 640 && h == 480){
		resolution = CLEYE_VGA;
	}
	else if(w == 320 && h == 240){
		resolution = CLEYE_QVGA;
	}
	else{
		ofLogWarning(OFX_CLEYE_MODULE_NAME) << "initGrabber(): selected resolution " + ofToString(w) + "x"
			+ ofToString(h) + " is not available with ofxCLEye";
		ofLogWarning(OFX_CLEYE_MODULE_NAME) << "initGrabber(): using 640x480 instead";
		resolution = CLEYE_VGA;
	}

	if(desiredFrameRate < 0){
		ofLogWarning(OFX_CLEYE_MODULE_NAME) << "initGrabber(): selected framerate" + ofToString(desiredFrameRate) + "is not available with ofxCLeye";
		ofLogWarning(OFX_CLEYE_MODULE_NAME) << "initGrabber(): using 60fps instead";
		desiredFrameRate = 60;
	}

	GUID guid = getDeviceGUID(requestedDeviceID);
	cam = CLEyeCreateCamera(guid, colorMode, resolution, desiredFrameRate);

	if(cam == NULL){
		ofLogError(OFX_CLEYE_MODULE_NAME) << "initGrabber(): error when creating instance of CLEyeCamera.";
		return false;
	}

	initialized = CLEyeCameraStart(cam);

	if(!initialized){
		ofLogError(OFX_CLEYE_MODULE_NAME) << "initGrabber(): can't start the CLEye camera.";
		return false;
	}

	CLEyeCameraGetFrameDimensions(cam, width, height);

	// oF code style says to not use ternary operators, but sometimes they are really convenient.
	// Native color image from camera is RGBA (4 channels)
	viPixels = new unsigned char[width * height * ((colorMode == CLEYE_MONO_PROCESSED) ? 1 : 4)];

	pixels.allocate(width, height, (colorMode == CLEYE_MONO_PROCESSED) ? 1 : 3);
	pixels.set(0);

	if(usingTexture){
		int glFormat = (colorMode == CLEYE_MONO_PROCESSED) ? GL_LUMINANCE : GL_RGB;
		texture.allocate(width, height, glFormat);
		texture.loadData((unsigned char *)pixels.getPixels(), width, height, glFormat);
	}

	if(usingThread){
		startThread(true);
		ofLogVerbose(OFX_CLEYE_MODULE_NAME) << "initGrabber(): thread started.";
	}

	return true;
}