Код OpenGL для iPhone и Mac - PullRequest
       0

Код OpenGL для iPhone и Mac

2 голосов
/ 08 марта 2011

У меня есть проект для iPhone, написанный на связке OpenGLES, теперь я хочу портировать приложение на Mac / Cocoa.Могу ли я использовать OpenGLES на Mac или мне нужно сделать несколько операторов #if?

Ответы [ 3 ]

4 голосов
/ 08 марта 2011

Насколько я могу судить, ES - это просто уменьшенная версия настольной версии - любой действительный код ES является допустимым стандартным кодом GL (возможно, с несколькими изменениями).Конечно, на рабочем столе вы получаете и другие функции / функции, такие как рендеринг фигур, отличных от треугольников.

Список альтернатив для функций, отсутствующих в OpenGLES

1 голос
/ 03 мая 2013

У меня есть общая кодовая база OpenGL, которая работает на iOS и Windows.Есть небольшие разделы, ничего большого, вроде этого:

// Page flip
#ifdef WIN32
    glFlush();
#else
    const GLenum discards[] = {GL_COLOR_ATTACHMENT0};
    glDiscardFramebufferEXT(GL_FRAMEBUFFER, 1, discards);   

    [context presentRenderbuffer:GL_RENDERBUFFER];
#endif

Помимо запуска GL (не использующего для этого фреймворка), обработчиков событий пользовательского ввода ОС и шейдеров, движок работает одинаково на обеих платформах.Я также использовал ifdefs в заголовочных файлах, чтобы не дать Objective C «заразить» остальную часть кодовой базы, поэтому чистые файлы C ++ не будут видеть членов класса с такими типами, как «id» или «EAGLContext».

1 голос
/ 08 марта 2011

OpenGL ES является подмножеством OpenGL - любое приложение OpenGL ES должно работать на OpenGL (но приложение OpenGL может не работать на OpenGL ES)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...