【发布时间】:2016-02-16 06:12:26
【问题描述】:
假设我有这样的功能:
std::string get_shader(std::string path) {
std::string fullpath = "./resources/shaders/" + path;
std::ifstream vertexShaderFile(fullpath);
std::ostringstream vertexBuffer;
vertexBuffer << vertexShaderFile.rdbuf();
return vertexBuffer.str();
}
然后是这样的一些代码:
GLuint vertex_shader;
GLuint fragment_shader;
GLuint program;
const GLchar * vertex_shader_source = get_shader("triangle_vertex.vs").c_str();
// At this point vertex_shader_source is correct.
const GLchar * fragment_shader_source = get_shader("fragment.vs").c_str();
// Now vertex_shader_source is the same as fragment_shader_source
我不明白为什么vertex_shader_source 最终会被随后对get_shader 的调用所掩盖。我该如何解决这个问题?
【问题讨论】:
标签: c++ ifstream stdstring c-strings ostringstream