2011-11-08 16 views
6

Mam podkatalogowy kod CAOpenGLLayerclass, który przesłania drawInCGLContext tam, gdzie rysuję prostokąt z OpenGL. CAOpenGLLayer został dodany do CALayer i pokazano.CAOpenGLLayer wyświetlający zdalny kontekst

Kiedy więc chciałbym narysować coś, musiałbym to zrobić w drawInCGLContext z tą architekturą.

To, co chciałbym mieć, to kontekst używany przez innego użytkownika do rysowania, animowania lub renderowania, ale będzie wyświetlany za każdym razem, gdy pojawi się drawInCGLContext.

Zasadniczo jedyną rzeczą, którą powinna zrobić moja podklasa, jest wyświetlenie zdalnego numeru (OpenGL)context, jaki jest najlepszy sposób, aby to osiągnąć? Czy powinienem rozważyć inne podejście?

* Nie używanie urządzenia CALayer nie jest opcją.

Odpowiedz

3

Czy rozważałeś użycie obiektu bufora ramki (FBO)? Możesz stworzyć taki, który jest poparty teksturą. Twoja "zdalna" klasa rysunkowa może wciągnąć do FBO, co spowoduje, że rysunek przejdzie do tekstury, która go wspiera. Następnie możesz użyć tej tekstury w innym miejscu, na przykład poprzez dodanie jej do ekranu w podklasie CAOpenGLLayer. Szczegółowe informacje na temat korzystania z usługi FBO można znaleźć w sekcji this link.

+0

Ostatecznie skończyłem używając bufora OpenGL, tak. –