// Public bool Shader::LoadShader(const std::string& vertexShaderPath, const std::string& fragmentShaderPath) { if (!m_program) { //uth::Graphics::DestroyShaderProgram(m_program); m_program = uth::Graphics::CreateShaderProgram(); } FileReader fr; // Vertex Shader fr.OpenFile(vertexShaderPath); #if defined(UTH_SYSTEM_OPENGLES) const std::string vertex = "#version 100\n#define UTH_ES\n" + fr.ReadText(); #elif defined(UTH_SYSTEM_OPENGL) const std::string vertex = "#version 100\n" + fr.ReadText(); #endif if(!uth::Graphics::CreateShader(VERTEX_SHADER, m_program, vertex.c_str())) { WriteError("Vertex shader failed"); return false; } fr.CloseFile(); // Fragment Shader fr.OpenFile(fragmentShaderPath); #if defined(UTH_SYSTEM_OPENGLES) const std::string fragment = "#version 100\n#define UTH_ES\nprecision mediump float;\n" + fr.ReadText(); #elif defined(UTH_SYSTEM_OPENGL) const std::string fragment = "#version 100\nprecision mediump float;\n" + fr.ReadText(); #endif if(!uth::Graphics::CreateShader(FRAGMENT_SHADER, m_program, fragment.c_str())) { WriteError("Fragment shader failed"); return false; } fr.CloseFile(); return uth::Graphics::LinkShaderProgram(m_program); }
TsStreamFileSource::~TsStreamFileSource() { LogDebug("ts:dtor:%x",this); if (fDeleteFidOnClose && fFid != NULL) { FileReader* reader = (FileReader*)fFid; reader->CloseFile(); delete reader; fFid=NULL; m_buffer.Clear(); } }