Hallo,
ich wollte mir mehrere Kontexte erzeugen lassen. Hat auch funktioniert. Aber wenn ich meine Drawfunktion aufrufe, dann ist das Sprite nur auf dem 2. Kontext zu sehen.
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
while(window.isOpen() && window2.isOpen()) {
window.handleMessages();
glm::mat4 MVP = view.getProjection() * camera.getView() * sprite.getModel(); // PVM
wglMakeCurrent(*window.gethDC(), *window.gethRC());
window.clear(0.f, 0.f, 1.f, 0.f);
renderer.useProgram();
renderer.sendMatrix(renderer.getUniformLocation(program.getID(), "MVP"), MVP);
sprite.draw(view, camera, program.getID());
window.changeBuffers();
wglMakeCurrent(NULL, NULL);
wglMakeCurrent(*window2.gethDC(), *window2.gethRC());
window2.clear(1.f, 0.f, 0.f, 0.f);
renderer.useProgram();
renderer.sendMatrix(renderer.getUniformLocation(program.getID(), "MVP"), MVP);
sprite.draw(view, camera, program.getID());
window2.changeBuffers();
wglMakeCurrent(NULL, NULL);
}
|
Komisch finde ich, dass die Hintergrundfarbe, die ich bei beiden Fenstern übergebe stimmt, aber das Zeichnen von dem Sprite nicht stimmt. Damit meine ich, dass das Sprite beim ersten Kontext nicht zu sehen ist. Sondern nur beim 2. Kontext. Ich habe das Problem gegoogelt, aber da stand, dass man immer, dass man bevor man den aktiven Kontext wechselt, wglMakeCurrent(NULL, NULL) aufrufen soll. Das bringt aber nichts.
Ich hoffe ihr könnt mir helfen.
Mfg
Delop
Edit: Hab vergessen das hin zuschreiben: wglShareLists hat mir auch nicht geholfen.