qt: Fix compile on ARM64 with GLES2 headers

This commit is contained in:
Cacodemon345
2022-08-01 12:45:38 +06:00
parent 039b9e7662
commit 6351394918
2 changed files with 15 additions and 3 deletions

View File

@@ -26,6 +26,14 @@
#include "qt_opengloptionsdialog.hpp" #include "qt_opengloptionsdialog.hpp"
#include "qt_openglrenderer.hpp" #include "qt_openglrenderer.hpp"
#ifndef GL_MAP_PERSISTENT_BIT
#define GL_MAP_PERSISTENT_BIT 0x0040
#endif
#ifndef GL_MAP_COHERENT_BIT
#define GL_MAP_COHERENT_BIT 0x0080
#endif
OpenGLRenderer::OpenGLRenderer(QWidget *parent) OpenGLRenderer::OpenGLRenderer(QWidget *parent)
: QWindow(parent->windowHandle()) : QWindow(parent->windowHandle())
, renderTimer(new QTimer(this)) , renderTimer(new QTimer(this))
@@ -239,10 +247,12 @@ void
OpenGLRenderer::initializeExtensions() OpenGLRenderer::initializeExtensions()
{ {
#ifndef NO_BUFFER_STORAGE #ifndef NO_BUFFER_STORAGE
if (context->hasExtension("GL_ARB_buffer_storage")) { if (context->hasExtension("GL_ARB_buffer_storage") || context->hasExtension("GL_EXT_buffer_storage")) {
hasBufferStorage = true; hasBufferStorage = true;
glBufferStorage = (PFNGLBUFFERSTORAGEPROC) context->getProcAddress("glBufferStorage"); glBufferStorage = (PFNGLBUFFERSTORAGEEXTPROC_LOCAL) context->getProcAddress(context->hasExtension("GL_EXT_buffer_storage") ? "glBufferStorageEXT" : "glBufferStorage");
if (!glBufferStorage)
glBufferStorage = glBufferStorage = (PFNGLBUFFERSTORAGEEXTPROC_LOCAL) context->getProcAddress("glBufferStorage");
} }
#endif #endif
} }

View File

@@ -39,6 +39,8 @@
#include "qt_opengloptions.hpp" #include "qt_opengloptions.hpp"
#include "qt_renderercommon.hpp" #include "qt_renderercommon.hpp"
typedef void (QOPENGLF_APIENTRYP PFNGLBUFFERSTORAGEEXTPROC_LOCAL) (GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);
class OpenGLRenderer : public QWindow, protected QOpenGLExtraFunctions, public RendererCommon { class OpenGLRenderer : public QWindow, protected QOpenGLExtraFunctions, public RendererCommon {
Q_OBJECT Q_OBJECT
@@ -103,7 +105,7 @@ private:
/* GL_ARB_buffer_storage */ /* GL_ARB_buffer_storage */
bool hasBufferStorage = false; bool hasBufferStorage = false;
#ifndef NO_BUFFER_STORAGE #ifndef NO_BUFFER_STORAGE
PFNGLBUFFERSTORAGEPROC glBufferStorage = nullptr; PFNGLBUFFERSTORAGEEXTPROC_LOCAL glBufferStorage = nullptr;
#endif #endif
private slots: private slots: