Exemplo n.º 1
0
VOID InitInstance()
{
	IniFile ini;
	std::string inipath("x360ce.ini");
	if (!ini.Load(inipath))
		CheckCommonDirectory(&inipath, "x360ce");
	if (!ini.Load(inipath)) return;

	bool filelog;
	bool systemlog;

	ini.Get("Options", "FileLog", &filelog);
	ini.Get("Options", "SystemLog", &systemlog);

	if (systemlog)
		LogSystem();

	if (filelog)
	{
		SYSTEMTIME systime;
		GetLocalTime(&systime);
		std::string processName;
		ModuleFileName(&processName);

		std::string logfile = StringFormat("x360ce_%s_%02u-%02u-%02u_%08u.log", processName.c_str(), systime.wYear,
			systime.wMonth, systime.wDay, GetTickCount());

		LogFile(logfile);
	}

	// Get will initalize static InputHookManager object and we want to initialize it ASAP
	InputHookManager::Get();
}
Exemplo n.º 2
0
static bool checkGLError() {
	int ret = glGetError();
	if (ret!=0L) {
		if (ret == GL_INVALID_ENUM) {
			LogSystem()->ReportError("GL_INVALID_ENUM ");
		}
		else if (ret == GL_INVALID_VALUE) {
			LogSystem()->ReportError("GL_INVALID_VALUE ");
		}
		else if (ret == GL_INVALID_OPERATION) {
			LogSystem()->ReportError("GL_INVALID_OPERATION ");
		}
		else if (ret == GL_STACK_OVERFLOW) {
			LogSystem()->ReportError("GL_STACK_OVERFLOW ");
		}
		else if (ret == GL_STACK_UNDERFLOW) {
			LogSystem()->ReportError("GL_STACK_UNDERFLOW ");
		}
		else if (ret == GL_OUT_OF_MEMORY) {
			LogSystem()->ReportError("GL_OUT_OF_MEMORY ");
		}
		else LogSystem()->ReportError("GL OTHER PROBLEM???");

		return false;
	}
	return true;
}
Exemplo n.º 3
0
int FrameBufferObject::CreateImageObject(unsigned int width, unsigned int height, 
										 int depthbuffer_enabled, int stencilbuffer_enabled)
{	

	//Create the Image object
	ImageObject new_object;
	new_object.width		= width;
	new_object.height		= height;
	new_object.texture_type	= NULL;
	new_object.texture_id	= NULL;
	new_object.depth_id		= NULL;
	new_object.stencil_id	= NULL;

	//First determine if the requested dimensions are power of two
	if (ispoweroftwo(width) && ispoweroftwo(height))
	{
		new_object.texture_type = GL_TEXTURE_2D;	//Power of two enum
		LogSystem()->ReportMessage("Using GL_TEXTURE_2D");
	}
	else
	{
		new_object.texture_type = 0x84F5;			//Non power of two enum
	}

	glGenTextures(1, &new_object.texture_id);
	new_object.texture_id;
	glBindTexture(GL_TEXTURE_RECTANGLE_ARB, new_object.texture_id);
	new_object.texture_type = GL_TEXTURE_RECTANGLE_ARB;
	glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, GL_RGBA8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
	glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
	glTexParameteri(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
	glTexParameterf(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);//GL_CLAMP
    glTexParameterf(GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);//GL_CLAMP
	glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);

	//Create the depth RenderBuffer if requested
	if (depthbuffer_enabled != 0)
	{
		glGenRenderbuffersEXT(1, &new_object.depth_id);
		glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, new_object.depth_id);
		glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT24, new_object.width, new_object.height);
		glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, framebuffer_id);
		glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, new_object.depth_id);
	}

	//glBindTexture(GL_TEXTURE_RECTANGLE_ARB, 0);

	//Push this new image object onto the list
	image_objects.push_back(new_object);

	

	//Return the 'index' for the id of this texture
	return (int)image_objects.size() - 1;
			
}
Exemplo n.º 4
0
bool C1Wire::Have1WireSystem()
{
	LogSystem();

#ifdef WIN32
	return (C1WireForWindows::IsAvailable());
#else // WIN32
	return (C1WireByOWFS::IsAvailable()||C1WireByKernel::IsAvailable());
#endif // WIN32
}
Exemplo n.º 5
0
void OmniMap::Create_ScreenShapeQuad(std::string name)
{
	// prevent name conflict
	String_OmniMap_Screen_Map_itor itr = OmniMap_GLOBAL_ScreenShapes.find(name);
	if(itr !=OmniMap_GLOBAL_ScreenShapes.end())
	{
		LogSystem()->ReportError("Error:\t ScreenShape Name Conflict %s!\n",name.c_str());
		delete itr->second;
	}

	OmniMap_GLOBAL_ScreenShapes[name]= new OmniMap_Screen_Quad(); 
}
Exemplo n.º 6
0
void C1Wire::DetectSystem()
{
	LogSystem();

#ifdef WIN32
	if (!m_system && C1WireForWindows::IsAvailable())
		m_system=new C1WireForWindows();
#else // WIN32

	// Using the both systems at same time results in conflicts,
	// see http://owfs.org/index.php?page=w1-project.
	// So priority is given to OWFS (more powerfull than kernel)
	if (C1WireByOWFS::IsAvailable()) {
		m_system=new C1WireByOWFS();
	_log.Log(LOG_STATUS,"1-Wire: Using OWFS...");
	}
	else if (C1WireByKernel::IsAvailable()) {
		m_system=new C1WireByKernel();
	_log.Log(LOG_STATUS,"1-Wire: Using Kernel...");
	}

#endif // WIN32
}
Exemplo n.º 7
0
void OmniMapQuartz::init()
{

	std::string setLuaDir = "LuaSupportDir = \"";
	setLuaDir.append(luaSupportDir);
	setLuaDir.append("\"");
	doWireframe = false;
	size_t index = 0;
	while ((index = setLuaDir.find("\\", index)) != std::string::npos)
	{
		setLuaDir.replace(index, 1, "/");
		index++;
	}

	ScriptingEngine->RunString(setLuaDir.c_str());
	ScriptingEngine->RunScript(StartUpScript);
#ifdef notdef
	flatScreen->access.SetValue("Screen_ApexDirection.x", 
		this->GetScreenShape(0)->access.GetNumber("Dome_ApexDirection.x"));
	flatScreen->access.SetValue("Screen_ApexDirection.y", 
		this->GetScreenShape(0)->access.GetNumber("Dome_ApexDirection.y"));
	flatScreen->access.SetValue("Screen_ApexDirection.z", 
		this->GetScreenShape(0)->access.GetNumber("Dome_ApexDirection.z"));
	//flatScreen->access.SetValue("Screen_tesselation", 5);

	flatScreen->CreateGeometry();
	ScreenRendererBase *flatScreenRenderer = ScreenRendererFactory.Create_ScreenRenderer("OGL");
	flatScreen->SetRenderer(flatScreenRenderer);
#endif
	
	

#ifdef NOTNOW
	assert(checkGLError() && "Error: ScriptingEngine->RunScript(StartUpScript);");

	shaders = new OmniMap_Shader();

	assert(checkGLError() && "Error: shaders = new OmniMap_Shader();");

	
	//if(StencilMask_filename)
		//((OmniMap_Shader *)shaders)->StencilMask_Load(StencilMask_filename); // the final mask needs to be done before the shader is compiled....

	if (vertexShaderFilename[0] != '\0' && fragmentShaderFilename[0] != '\0')
	{
		std::string vertShader = luaSupportDir;
		std::string fragShader = luaSupportDir;
		vertShader.append(vertexShaderFilename);
		fragShader.append(fragmentShaderFilename);
		shaders->setShadersFilenames(vertShader.c_str(), fragShader.c_str());
	}

	char prelude[512];
	sprintf(prelude, "// Start Header: automatically generated by Omnimap\n#define MaxChannels %d\n%s\n// End Header\n\n", GetNumChannels(),StencilMask_filename?"#define STENCILMASK_ENABLE":"");
	std::string preludeStr = prelude;
	//shaders->setShadersPrelude(preludeStr.c_str(), preludeStr.c_str());
	shaders->init();

	this->LoadBGTexture();
	
#endif
	LogSystem()->ReportMessage("------------OMNIMAP LOADED DOWN----------------");
	LogSystem()->ReportMessage("glViewportsettings %f %f %f %f",glViewportsettings0,glViewportsettings1,glViewportsettings2,glViewportsettings3);
	LogSystem()->ReportMessage("GL_STATE_CLEAR_AT_STARTFRAME, GL_STATE_glDisable_GL_DEPTH_TEST,GL_STATE_glDepthMask_FALSE %d %d %d",	GL_STATE_CLEAR_AT_STARTFRAME, 
		GL_STATE_glDisable_GL_DEPTH_TEST,GL_STATE_glDepthMask_FALSE );
	LogSystem()->ReportMessage("width %d",		resWidth);
	LogSystem()->ReportMessage("height %d",		resHeight);
	//LogSystem()->ReportMessage("fontname %s",strFont);
	//LogSystem()->ReportMessage("fontsize %f",font_size);
	LogSystem()->ReportMessage("displayHUD  %d",displayHUD );
	LogSystem()->ReportMessage("clear color %f %f %f %f",clearcolor_r,clearcolor_g,clearcolor_b,clearcolor_a );
	LogSystem()->ReportMessage("AudiencePosition %f %f %f\n",AudiencePosition.x,AudiencePosition.y,AudiencePosition.z);
	LogSystem()->ReportMessage("ProjectorPosition.pos %f %f %f\n",ProjectorPosition.pos.x,ProjectorPosition.pos.y,ProjectorPosition.pos.z);
	LogSystem()->ReportMessage("ProjectorPosition.headsUp %f %f %f\n",ProjectorPosition.headsUp.x,ProjectorPosition.headsUp.y,ProjectorPosition.headsUp.z);
	LogSystem()->ReportMessage("ProjectorPosition.lookAtpos %f %f %f\n",ProjectorPosition.lookAtpos.x,ProjectorPosition.lookAtpos.y,ProjectorPosition.lookAtpos.z);
	LogSystem()->ReportMessage("startupscript : %s",StartUpScript);
	LogSystem()->ReportMessage("------------------------------");

}