Вопросы по взлому шаблона OpenGL ES2 из проекта Xcode 4 - PullRequest
0 голосов
/ 01 мая 2011

Создайте новый проект из шаблона opengl через xcode4, вы увидите перемещение одного цветного квадрата.

Я хочу добавить еще два маленьких представления, чтобы показать то же самое. Что я сделал, так это добавил два

EAGLView *glView1;
EAGLView *glView2;

Затем настройте его с помощью свойства / systhesize и т. Д. И используйте то же кодирование с self.view, как эти

 [(EAGLView *)self.view setContext:context];
[(EAGLView *)self.view setFramebuffer];

if (!glView2) {
    glView2 = [[EAGLView alloc] init];
}
[self.glView2 setContext:context2];
[self.glView2 setFramebuffer];

if (!glView1) {
    glView1 = [[EAGLView alloc] init];
}
[self.glView1 setContext:context];
[self.glView1 setFramebuffer];

Сделайте то же самое для другого места, которое сделал self.view. Также сделайте правильную ссылку в конструкторе интерфейса. (Xcode4)

Но результат покажет enter image description here

Я обнаружил, что последний порядок отрисовки в drawFrame решает, какое окно будет отображаться

[self.glView1  setFramebuffer];
[self.glView2  setFramebuffer];         // these will not show , but if put last, it will show
[(EAGLView *)self.view setFramebuffer]; // this will work 

Имеет ли смысл объяснять мою цель и проблемы? Большое спасибо за указание на основную причину и помогите мне пройти через это.

1 Ответ

0 голосов
/ 02 февраля 2012

Вам необходимо прочитать об OpenGL ES 2.0 ("OGLES2.0").Вы не должны использовать несколько экземпляров EAGLView.Вам нужна только одна, и вы используете команды OGLES2.0, чтобы рисовать на ней.

OpenGL нелегко изучить, и вам придется потратить много часов своего времени, прежде чем вы сможете добиться даже простых рендеров с ним,Вам следует искать внешнюю библиотеку, такую ​​как cocos2D , чтобы помочь вам достичь того, чего вы хотите.Внимательно прочитайте учебники и документацию и экспериментируйте.Вам все еще потребуется много времени, чтобы достичь приятных результатов, но гораздо меньше, чем если бы вы использовали OGLES напрямую yourselfe

...