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(); }
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; }
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; }
bool C1Wire::Have1WireSystem() { LogSystem(); #ifdef WIN32 return (C1WireForWindows::IsAvailable()); #else // WIN32 return (C1WireByOWFS::IsAvailable()||C1WireByKernel::IsAvailable()); #endif // WIN32 }
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(); }
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 }
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("------------------------------"); }