Use runtime check instead of ifdef to detect ES3 in QVertexArrayObjectHelper
The code path in QOpenGLVertexArrayObjectPrivate::create() that triggers the creation of a QVertexArrayObjectHelper is guarded by runtime checks for ES3 or the GL_OES_vertex_array_object extension, but the actual function lookup was ifdef'ed, which broke on iOS where the SDK may support ES3, but an older (supported) runtime target might not. Change-Id: Id578667c1f5aebf53e197f3a79eb2f9273fea487 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
This commit is contained in:
parent
12867bb8e2
commit
0437e1cef6
@ -65,18 +65,19 @@ void qtInitializeVertexArrayObjectHelper(QOpenGLVertexArrayObjectHelper *helper,
|
||||
|
||||
if (context->isOpenGLES()) {
|
||||
#ifdef QT_OPENGL_ES_3
|
||||
helper->GenVertexArrays = ::glGenVertexArrays;
|
||||
helper->DeleteVertexArrays = ::glDeleteVertexArrays;
|
||||
helper->BindVertexArray = ::glBindVertexArray;
|
||||
tryARB = false;
|
||||
#else
|
||||
if (context->format().majorVersion() >= 3) {
|
||||
helper->GenVertexArrays = ::glGenVertexArrays;
|
||||
helper->DeleteVertexArrays = ::glDeleteVertexArrays;
|
||||
helper->BindVertexArray = ::glBindVertexArray;
|
||||
tryARB = false;
|
||||
} else
|
||||
#endif
|
||||
if (context->hasExtension(QByteArrayLiteral("GL_OES_vertex_array_object"))) {
|
||||
helper->GenVertexArrays = reinterpret_cast<QOpenGLVertexArrayObjectHelper::qt_GenVertexArrays_t>(context->getProcAddress(QByteArrayLiteral("glGenVertexArraysOES")));
|
||||
helper->DeleteVertexArrays = reinterpret_cast<QOpenGLVertexArrayObjectHelper::qt_DeleteVertexArrays_t>(context->getProcAddress(QByteArrayLiteral("glDeleteVertexArraysOES")));
|
||||
helper->BindVertexArray = reinterpret_cast<QOpenGLVertexArrayObjectHelper::qt_BindVertexArray_t>(context->getProcAddress(QByteArrayLiteral("glBindVertexArrayOES")));
|
||||
tryARB = false;
|
||||
}
|
||||
#endif
|
||||
} else if (context->hasExtension(QByteArrayLiteral("GL_APPLE_vertex_array_object")) &&
|
||||
!context->hasExtension(QByteArrayLiteral("GL_ARB_vertex_array_object"))) {
|
||||
helper->GenVertexArrays = reinterpret_cast<QOpenGLVertexArrayObjectHelper::qt_GenVertexArrays_t>(context->getProcAddress(QByteArrayLiteral("glGenVertexArraysAPPLE")));
|
||||
|
Loading…
x
Reference in New Issue
Block a user