android — Неподдерживаемые функции и константы OpenGL

Моя программа прекрасно работает в среде Windows, но при попытке скомпилировать ее на Android, я получаю ошибки о не объявленных функций и констант. Они включают:

GL_DEPTH24_STENCIL8,
GL_DEPTH_STENCIL,
GL_UNSIGNED_INT_24_8,
GL_DRAW_FRAMEBUFFER,
glPointSize()

Другие методы работают нормально.
Я включаю эти заголовки для графики:

#include <EGL/egl.h>
#include <GLES2/gl2.h>

Я что-то упустил, или я действительно не могу использовать эти константы и функции?

0

Решение

Это связано с тем, что на вашем настольном компьютере вы используете непосредственные функции или функции рабочего стола Opengl, которые совместимы с любой версией OpenGL, хотя они не работают в ES-версии OpenGL. Например, многие люди внедряют свои первые движки в непосредственном режиме, а затем пытаются портировать на устройства OpenGL ES 2.0.

OpenGL ES 2.0 имеет собственный набор функций, который вы можете найти в официальной документации. http://www.khronos.org/opengles/sdk/docs/man/

Чтобы использовать одну из представленных функций, glpointsize не поддерживается в OpenGL ES 2.0, поскольку вы управляете размером точки в своих шейдерах, а не в основном коде, как в непосредственном режиме.
В этом очень конкретном размере точечный спрайт (очень грубо) контролируется в вашем вершинном шейдере с помощью функции, подобной:

gl_PointSize = 10,0;

Это типичный случай, когда вы понимаете, что портирование на OpenGL ES 2.0 иногда требует полного переписывания вашего движка.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]