summaryrefslogtreecommitdiffstats
path: root/src/platformsupport/cglconvenience/cglconvenience.mm
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@theqtcompany.com>2016-01-29 10:43:35 +0100
committerLaszlo Agocs <laszlo.agocs@theqtcompany.com>2016-03-01 14:46:14 +0000
commit29d8159c4478a5275d2ea102daf270a91ed7e92e (patch)
tree709a145107cdfc58e67b4fabe6a76534d5cc7801 /src/platformsupport/cglconvenience/cglconvenience.mm
parent7ee585bbffb4350ec327116d30cd63e3d1142581 (diff)
Avoid repeated QByteArray creation when resolving opengl functions
Add an getProcAddress(const char *) overload to QOpenGLContext, and refactor the QPA interface to take a const char *. Like this we can avoid lots of mallocs when resoving GL methods. Change-Id: Ic45b985fbaa0da8d32ba3e3b485351173352ca6f Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/platformsupport/cglconvenience/cglconvenience.mm')
-rw-r--r--src/platformsupport/cglconvenience/cglconvenience.mm6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/platformsupport/cglconvenience/cglconvenience.mm b/src/platformsupport/cglconvenience/cglconvenience.mm
index aafd4db863..051b299404 100644
--- a/src/platformsupport/cglconvenience/cglconvenience.mm
+++ b/src/platformsupport/cglconvenience/cglconvenience.mm
@@ -43,17 +43,17 @@
#include <AppKit/AppKit.h>
#include <QVector>
-void (*qcgl_getProcAddress(const QByteArray &procName))()
+QFunctionPointer qcgl_getProcAddress(const char *procName)
{
CFURLRef url = CFURLCreateWithFileSystemPath(kCFAllocatorDefault,
CFSTR("/System/Library/Frameworks/OpenGL.framework"), kCFURLPOSIXPathStyle, false);
CFBundleRef bundle = CFBundleCreate(kCFAllocatorDefault, url);
- CFStringRef procNameCF = QCFString::toCFStringRef(QString::fromLatin1(procName.constData()));
+ CFStringRef procNameCF = QCFString::toCFStringRef(QString::fromLatin1(procName));
void *proc = CFBundleGetFunctionPointerForName(bundle, procNameCF);
CFRelease(url);
CFRelease(bundle);
CFRelease(procNameCF);
- return (void (*) ())proc;
+ return (QFunctionPointer)proc;
}
// Match up with createNSOpenGLPixelFormat below!