OpenGL - verschiedene Fenster - Shader

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
Raven280438
Establishment
Beiträge: 140
Registriert: 03.10.2010, 20:14

OpenGL - verschiedene Fenster - Shader

Beitrag von Raven280438 »

Hi,

ich beschäftige mich etwas mit OpenGL.
Ich möchte in mehreren Fenstern rendern.

Wenn ich einen Shader mit

Code: Alles auswählen

vshader = glCreateShader(GL_VERTEX_SHADER);
erstelle, muss das Fenster, in dem das ShaderProgramm verwendet werden soll aktiv sein?
Oder ist das egal?

Und noch eine andere Frage: werden die "Einstellungen" (wie zB glClearColor() oder glViewport()) am RenderingContext gebunden, oder muss ich sie nach jedem wglMakeCurrent() neu setzen?



Gruß
Benutzeravatar
dot
Establishment
Beiträge: 1746
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: OpenGL - verschiedene Fenster - Shader

Beitrag von dot »

Raven280438 hat geschrieben:Wenn ich einen Shader mit

Code: Alles auswählen

vshader = glCreateShader(GL_VERTEX_SHADER);
erstelle, muss das Fenster, in dem das ShaderProgramm verwendet werden soll aktiv sein?
Oder ist das egal?
Was genau meinst du damit? Dein Shader ist natürlich spezifisch für den Context, in dem er erzeugt wurde...
Raven280438 hat geschrieben:Und noch eine andere Frage: werden die "Einstellungen" (wie zB glClearColor() oder glViewport()) am RenderingContext gebunden, oder muss ich sie nach jedem wglMakeCurrent() neu setzen?
Die sind natürlich an den Rendering Context gebunden; genau das ist es ja, was so ein "Context" repräsentiert... ;)
Raven280438
Establishment
Beiträge: 140
Registriert: 03.10.2010, 20:14

Re: OpenGL - verschiedene Fenster - Shader

Beitrag von Raven280438 »

Hi,
Was genau meinst du damit? Dein Shader ist natürlich spezifisch für den Context, in dem er erzeugt wurde...
Naja wenn ich einen neuen Shader erzeuge, muss ich dann vorher wglMakeCurrent() benutzen, oder ist es egal welches Fenster (bzw. Context) grad Current ist?


Gruß
Benutzeravatar
dot
Establishment
Beiträge: 1746
Registriert: 06.03.2004, 18:10
Echter Name: Michael Kenzel
Kontaktdaten:

Re: OpenGL - verschiedene Fenster - Shader

Beitrag von dot »

glCreateShader() erzeugt den Shader in dem Context, der gerade current ist. Der Shader existiert in keinem anderen Context, sofern du deine Kontexte nicht so erzeugt hast, dass sie ihre Objekte sharen...
Antworten