Code: Select all
struct Renderer
{
GLuint program;
float aspectRatio;
};
// global scope
Renderer renderer;
bool shouldClose = false;
< /code>
Aus irgendeinem seltsamen Grund, wenn ich die folgende Funktion aufrufe: < /p>
void initRenderer(Renderer *renderer)
{
glEnable(GL_DEPTH_TEST);
glEnable(GL_MULTISAMPLE);
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
// adding the temporary to show that `shouldClose` is not
// modified as a side effect of `shaderProgram`.
GLuint program = shaderProgram("../shaders/vertex.glsl", "../shaders/fragment.glsl");
// this line sets `shouldClose` to the value in `program`
renderer->program = program;
}
// main is in the same translation unit where `Renderer` and `shouldClose` are defined.
int main() {
// ...
initRenderer(&renderer);
// ...
}
Code: Select all
bool shouldClose = false;
Renderer renderer;
Code: Select all
Microsoft (R) C/C++ Optimizing Compiler Version 19.44.35208 for x64