GLuint ShaderLoader::compile_shader_(std::string& filename, GLenum shaderType) { std::string buffer = load_file_(filename); const char* src = buffer.c_str(); GLuint shader = glCreateShader(shaderType); glShaderSource(shader, 1, &src, NULL); glCompileShader(shader); GLint lenght; glGetShaderiv(shader, GL_COMPILE_STATUS, &lenght); if (!lenght) { std::cerr << "Shader compilation failed with this message:" << std::endl; std::string log(lenght, ' '); glGetShaderInfoLog(shader, log.size(), NULL, &log[0]); std::cerr << &log[0] << std::endl; glfwTerminate(); exit(EXIT_FAILURE); } return shader; }
void edit_window_t::message_received(const ntk_message& message) { switch(message.what) { case ntk::REFS_RECEIVED: m_file_name = message.find_string("name"); load_file_(m_file_name); break; case ntk::SAVE_REQUESTED: m_file_name = message.find_string("name"); save_file_(m_file_name); break; default: ntk_window::message_received(message); } }
typename shader<Stage>::ptr shader<Stage>::from_file(std::string filename, const parameters_t& params, bool compile_now) { return from_source(load_file_(filename), params, compile_now); }
typename shader<Stage>::ptr shader<Stage>::from_file(std::string filename, bool compile_now) { return from_source(load_file_(filename), compile_now); }