ich hab 2 NSOpenGLView subclassed openglviews in meinem programm. wie kann ich displaylisten usw zwischen den contexts sharen. find nur schrott und halbe beispiele. bitte um schnelle hilfe. am besten einfach ein example falls jemand eines kennt.
Share OGL Context
-
-
Ohne Dir zu nahe treten zu wollen: Könnte es dann nicht eventuell sein, dass Du nicht gründlich genug gesucht hast? Apple liefert sowohl funktionierenden Sample Code als auch sehr ausführliche Hinweise zum Sharing von OpenGL-Kontexten.Multigrad - 360°-Produktfotografie für den Mac
-
bekomm es aber trotzdem nicht zum laufen.
ich will dass die previewopenglview alle listen von mainopenglview hat also hab ich mal den context in der drawRect (kein optimaler platz aber nur zum testen) erstellt .
ausschnitt aus previewopenglview wobei glView ein outlet von previewopenglview ist und mit der mainglview verknüpft ist.
[source]
GLuint attributes[] =
{
NSOpenGLPFANoRecovery,
//NSOpenGLPFAWindow,
NSOpenGLPFAAccelerated,
NSOpenGLPFADoubleBuffer,
NSOpenGLPFAColorSize, 24,
NSOpenGLPFAAlphaSize, 8,
NSOpenGLPFADepthSize, 16,
NSOpenGLPFAStencilSize, 0,
NSOpenGLPFAAccumSize, 0,
0
};
NSOpenGLPixelFormat *pixelFormat =
[[NSOpenGLPixelFormat alloc] initWithAttributes:(NSOpenGLPixelFormatAttribute*) attributes];
context = [[NSOpenGLContext alloc] initWithFormat:pixelFormat shareContext:[glView openGLContext]];
[context makeCurrentContext];[/source]
pixelformate stimmen überein. --> kein erfolg -
"kein erfolg" ist nicht gerade das Maximum an Präzision... Fehlermeldung? NULL-Pointer? Absturz? Resultat? Zudem ist das Erstellen eines OpenGL-Contexts in drawRect: mehr als "nicht optimal" - ich kenne nur wenige Orte, an denen es unglücklicher wäre, gerade zum Testen, denn bei Tests möchte man doch Ergebnisse bekommen, die repräsentativ für spätere Entwicklungen sind, oder? Und: Der Codeausschnitt ist für mich nicht schlüssig - setzt Du z.B. später immer den currentContext hin und her? Ein ausführbares Testprojekt, das Dein Problem in Minimalform enthält, halte ich für sinnvoll, dann können andere herumprobieren. So kann ich nur sagen, dass es so wie in Apples Doku funktioniert. Ich habe ein Testprojekt angehängt, das zwei OpenGL-Kontexte mit einer gemeinsamen Display List verwendet (im Log ist erkennbar, dass sie nur einmal erstellt wird).Multigrad - 360°-Produktfotografie für den Mac
-
mit kein erfolg war gemeint: kein fehler aber context nicht mit korrektem inhalt der anderen view.
habs jetzt schlussendlich doch lauffähig gebracht.
mein problem war, dass ich die matrizen nicht neu aufgesetzt habe, nachdem ich den neuen context erstellt habe. (meine projection wurde in reshape aufgesetzt, reshape aber nicht nochmal aufgerufen)
mein testprogramm: awx.at/eitsch/final.zip
vielen dank -