| Line | Source Code | Coverage |
|---|
| 1 | /**************************************************************************** | - |
| 2 | ** | - |
| 3 | ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). | - |
| 4 | ** Contact: http://www.qt-project.org/legal | - |
| 5 | ** | - |
| 6 | ** This file is part of the QtOpenGL module of the Qt Toolkit. | - |
| 7 | ** | - |
| 8 | ** $QT_BEGIN_LICENSE:LGPL$ | - |
| 9 | ** Commercial License Usage | - |
| 10 | ** Licensees holding valid commercial Qt licenses may use this file in | - |
| 11 | ** accordance with the commercial license agreement provided with the | - |
| 12 | ** Software or, alternatively, in accordance with the terms contained in | - |
| 13 | ** a written agreement between you and Digia. For licensing terms and | - |
| 14 | ** conditions see http://qt.digia.com/licensing. For further information | - |
| 15 | ** use the contact form at http://qt.digia.com/contact-us. | - |
| 16 | ** | - |
| 17 | ** GNU Lesser General Public License Usage | - |
| 18 | ** Alternatively, this file may be used under the terms of the GNU Lesser | - |
| 19 | ** General Public License version 2.1 as published by the Free Software | - |
| 20 | ** Foundation and appearing in the file LICENSE.LGPL included in the | - |
| 21 | ** packaging of this file. Please review the following information to | - |
| 22 | ** ensure the GNU Lesser General Public License version 2.1 requirements | - |
| 23 | ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. | - |
| 24 | ** | - |
| 25 | ** In addition, as a special exception, Digia gives you certain additional | - |
| 26 | ** rights. These rights are described in the Digia Qt LGPL Exception | - |
| 27 | ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. | - |
| 28 | ** | - |
| 29 | ** GNU General Public License Usage | - |
| 30 | ** Alternatively, this file may be used under the terms of the GNU | - |
| 31 | ** General Public License version 3.0 as published by the Free Software | - |
| 32 | ** Foundation and appearing in the file LICENSE.GPL included in the | - |
| 33 | ** packaging of this file. Please review the following information to | - |
| 34 | ** ensure the GNU General Public License version 3.0 requirements will be | - |
| 35 | ** met: http://www.gnu.org/copyleft/gpl.html. | - |
| 36 | ** | - |
| 37 | ** | - |
| 38 | ** $QT_END_LICENSE$ | - |
| 39 | ** | - |
| 40 | ****************************************************************************/ | - |
| 41 | | - |
| 42 | #include <QApplication> | - |
| 43 | #include <private/qapplication_p.h> | - |
| 44 | #include <QPixmap> | - |
| 45 | #include <QDebug> | - |
| 46 | | - |
| 47 | #include <qpa/qplatformopenglcontext.h> | - |
| 48 | #include <qpa/qplatformwindow.h> | - |
| 49 | #include <QtGui/QSurfaceFormat> | - |
| 50 | | - |
| 51 | #include "qgl.h" | - |
| 52 | #include "qgl_p.h" | - |
| 53 | | - |
| 54 | QT_BEGIN_NAMESPACE | - |
| 55 | | - |
| 56 | /*! | - |
| 57 | Returns an OpenGL format for the window format specified by \a format. | - |
| 58 | */ | - |
| 59 | QGLFormat QGLFormat::fromSurfaceFormat(const QSurfaceFormat &format) | - |
| 60 | { | - |
| 61 | QGLFormat retFormat; never executed (the execution status of this line is deduced): QGLFormat retFormat; | - |
| 62 | if (format.alphaBufferSize() >= 0) never evaluated: format.alphaBufferSize() >= 0 | 0 |
| 63 | retFormat.setAlphaBufferSize(format.alphaBufferSize()); never executed: retFormat.setAlphaBufferSize(format.alphaBufferSize()); | 0 |
| 64 | if (format.blueBufferSize() >= 0) never evaluated: format.blueBufferSize() >= 0 | 0 |
| 65 | retFormat.setBlueBufferSize(format.blueBufferSize()); never executed: retFormat.setBlueBufferSize(format.blueBufferSize()); | 0 |
| 66 | if (format.greenBufferSize() >= 0) never evaluated: format.greenBufferSize() >= 0 | 0 |
| 67 | retFormat.setGreenBufferSize(format.greenBufferSize()); never executed: retFormat.setGreenBufferSize(format.greenBufferSize()); | 0 |
| 68 | if (format.redBufferSize() >= 0) never evaluated: format.redBufferSize() >= 0 | 0 |
| 69 | retFormat.setRedBufferSize(format.redBufferSize()); never executed: retFormat.setRedBufferSize(format.redBufferSize()); | 0 |
| 70 | if (format.depthBufferSize() >= 0) never evaluated: format.depthBufferSize() >= 0 | 0 |
| 71 | retFormat.setDepthBufferSize(format.depthBufferSize()); never executed: retFormat.setDepthBufferSize(format.depthBufferSize()); | 0 |
| 72 | if (format.samples() > 1) { never evaluated: format.samples() > 1 | 0 |
| 73 | retFormat.setSampleBuffers(true); never executed (the execution status of this line is deduced): retFormat.setSampleBuffers(true); | - |
| 74 | retFormat.setSamples(format.samples()); never executed (the execution status of this line is deduced): retFormat.setSamples(format.samples()); | - |
| 75 | } | 0 |
| 76 | if (format.stencilBufferSize() > 0) { never evaluated: format.stencilBufferSize() > 0 | 0 |
| 77 | retFormat.setStencil(true); never executed (the execution status of this line is deduced): retFormat.setStencil(true); | - |
| 78 | retFormat.setStencilBufferSize(format.stencilBufferSize()); never executed (the execution status of this line is deduced): retFormat.setStencilBufferSize(format.stencilBufferSize()); | - |
| 79 | } | 0 |
| 80 | retFormat.setDoubleBuffer(format.swapBehavior() != QSurfaceFormat::SingleBuffer); never executed (the execution status of this line is deduced): retFormat.setDoubleBuffer(format.swapBehavior() != QSurfaceFormat::SingleBuffer); | - |
| 81 | retFormat.setStereo(format.stereo()); never executed (the execution status of this line is deduced): retFormat.setStereo(format.stereo()); | - |
| 82 | retFormat.setVersion(format.majorVersion(), format.minorVersion()); never executed (the execution status of this line is deduced): retFormat.setVersion(format.majorVersion(), format.minorVersion()); | - |
| 83 | retFormat.setProfile(static_cast<QGLFormat::OpenGLContextProfile>(format.profile())); never executed (the execution status of this line is deduced): retFormat.setProfile(static_cast<QGLFormat::OpenGLContextProfile>(format.profile())); | - |
| 84 | return retFormat; never executed: return retFormat; | 0 |
| 85 | } | - |
| 86 | | - |
| 87 | /*! | - |
| 88 | Returns a window format for the OpenGL format specified by \a format. | - |
| 89 | */ | - |
| 90 | QSurfaceFormat QGLFormat::toSurfaceFormat(const QGLFormat &format) | - |
| 91 | { | - |
| 92 | QSurfaceFormat retFormat; never executed (the execution status of this line is deduced): QSurfaceFormat retFormat; | - |
| 93 | if (format.alpha()) never evaluated: format.alpha() | 0 |
| 94 | retFormat.setAlphaBufferSize(format.alphaBufferSize() == -1 ? 1 : format.alphaBufferSize()); never executed: retFormat.setAlphaBufferSize(format.alphaBufferSize() == -1 ? 1 : format.alphaBufferSize()); | 0 |
| 95 | if (format.blueBufferSize() >= 0) never evaluated: format.blueBufferSize() >= 0 | 0 |
| 96 | retFormat.setBlueBufferSize(format.blueBufferSize()); never executed: retFormat.setBlueBufferSize(format.blueBufferSize()); | 0 |
| 97 | if (format.greenBufferSize() >= 0) never evaluated: format.greenBufferSize() >= 0 | 0 |
| 98 | retFormat.setGreenBufferSize(format.greenBufferSize()); never executed: retFormat.setGreenBufferSize(format.greenBufferSize()); | 0 |
| 99 | if (format.redBufferSize() >= 0) never evaluated: format.redBufferSize() >= 0 | 0 |
| 100 | retFormat.setRedBufferSize(format.redBufferSize()); never executed: retFormat.setRedBufferSize(format.redBufferSize()); | 0 |
| 101 | if (format.depth()) never evaluated: format.depth() | 0 |
| 102 | retFormat.setDepthBufferSize(format.depthBufferSize() == -1 ? 1 : format.depthBufferSize()); never executed: retFormat.setDepthBufferSize(format.depthBufferSize() == -1 ? 1 : format.depthBufferSize()); | 0 |
| 103 | retFormat.setSwapBehavior(format.doubleBuffer() ? QSurfaceFormat::DoubleBuffer : QSurfaceFormat::SingleBuffer); never executed (the execution status of this line is deduced): retFormat.setSwapBehavior(format.doubleBuffer() ? QSurfaceFormat::DoubleBuffer : QSurfaceFormat::SingleBuffer); | - |
| 104 | if (format.sampleBuffers()) never evaluated: format.sampleBuffers() | 0 |
| 105 | retFormat.setSamples(format.samples() == -1 ? 4 : format.samples()); never executed: retFormat.setSamples(format.samples() == -1 ? 4 : format.samples()); | 0 |
| 106 | if (format.stencil()) never evaluated: format.stencil() | 0 |
| 107 | retFormat.setStencilBufferSize(format.stencilBufferSize() == -1 ? 1 : format.stencilBufferSize()); never executed: retFormat.setStencilBufferSize(format.stencilBufferSize() == -1 ? 1 : format.stencilBufferSize()); | 0 |
| 108 | retFormat.setStereo(format.stereo()); never executed (the execution status of this line is deduced): retFormat.setStereo(format.stereo()); | - |
| 109 | retFormat.setMajorVersion(format.majorVersion()); never executed (the execution status of this line is deduced): retFormat.setMajorVersion(format.majorVersion()); | - |
| 110 | retFormat.setMinorVersion(format.minorVersion()); never executed (the execution status of this line is deduced): retFormat.setMinorVersion(format.minorVersion()); | - |
| 111 | retFormat.setProfile(static_cast<QSurfaceFormat::OpenGLContextProfile>(format.profile())); never executed (the execution status of this line is deduced): retFormat.setProfile(static_cast<QSurfaceFormat::OpenGLContextProfile>(format.profile())); | - |
| 112 | return retFormat; never executed: return retFormat; | 0 |
| 113 | } | - |
| 114 | | - |
| 115 | void QGLContextPrivate::setupSharing() { | - |
| 116 | Q_Q(QGLContext); never executed (the execution status of this line is deduced): QGLContext * const q = q_func(); | - |
| 117 | QOpenGLContext *sharedContext = guiGlContext->shareContext(); never executed (the execution status of this line is deduced): QOpenGLContext *sharedContext = guiGlContext->shareContext(); | - |
| 118 | if (sharedContext) { never evaluated: sharedContext | 0 |
| 119 | QGLContext *actualSharedContext = QGLContext::fromOpenGLContext(sharedContext); never executed (the execution status of this line is deduced): QGLContext *actualSharedContext = QGLContext::fromOpenGLContext(sharedContext); | - |
| 120 | sharing = true; never executed (the execution status of this line is deduced): sharing = true; | - |
| 121 | QGLContextGroup::addShare(q, actualSharedContext); never executed (the execution status of this line is deduced): QGLContextGroup::addShare(q, actualSharedContext); | - |
| 122 | } | 0 |
| 123 | } | 0 |
| 124 | | - |
| 125 | bool QGLFormat::hasOpenGL() | - |
| 126 | { | - |
| 127 | return QApplicationPrivate::platformIntegration() never executed: return QApplicationPrivate::platformIntegration() ->hasCapability(QPlatformIntegration::OpenGL); | 0 |
| 128 | ->hasCapability(QPlatformIntegration::OpenGL); never executed: return QApplicationPrivate::platformIntegration() ->hasCapability(QPlatformIntegration::OpenGL); | 0 |
| 129 | } | - |
| 130 | | - |
| 131 | void qDeleteQGLContext(void *handle) | - |
| 132 | { | - |
| 133 | QGLContext *context = static_cast<QGLContext *>(handle); never executed (the execution status of this line is deduced): QGLContext *context = static_cast<QGLContext *>(handle); | - |
| 134 | delete context; never executed (the execution status of this line is deduced): delete context; | - |
| 135 | } | 0 |
| 136 | | - |
| 137 | bool QGLContext::chooseContext(const QGLContext* shareContext) | - |
| 138 | { | - |
| 139 | Q_D(QGLContext); never executed (the execution status of this line is deduced): QGLContextPrivate * const d = d_func(); | - |
| 140 | if(!d->paintDevice || d->paintDevice->devType() != QInternal::Widget) { never evaluated: !d->paintDevice never evaluated: d->paintDevice->devType() != QInternal::Widget | 0 |
| 141 | d->valid = false; never executed (the execution status of this line is deduced): d->valid = false; | - |
| 142 | }else { | 0 |
| 143 | QWidget *widget = static_cast<QWidget *>(d->paintDevice); never executed (the execution status of this line is deduced): QWidget *widget = static_cast<QWidget *>(d->paintDevice); | - |
| 144 | QGLFormat glformat = format(); never executed (the execution status of this line is deduced): QGLFormat glformat = format(); | - |
| 145 | QSurfaceFormat winFormat = QGLFormat::toSurfaceFormat(glformat); never executed (the execution status of this line is deduced): QSurfaceFormat winFormat = QGLFormat::toSurfaceFormat(glformat); | - |
| 146 | if (widget->testAttribute(Qt::WA_TranslucentBackground)) never evaluated: widget->testAttribute(Qt::WA_TranslucentBackground) | 0 |
| 147 | winFormat.setAlphaBufferSize(qMax(winFormat.alphaBufferSize(), 8)); never executed: winFormat.setAlphaBufferSize(qMax(winFormat.alphaBufferSize(), 8)); | 0 |
| 148 | | - |
| 149 | if (!widget->windowHandle()->handle()) { never evaluated: !widget->windowHandle()->handle() | 0 |
| 150 | widget->windowHandle()->setSurfaceType(QWindow::OpenGLSurface); never executed (the execution status of this line is deduced): widget->windowHandle()->setSurfaceType(QWindow::OpenGLSurface); | - |
| 151 | widget->windowHandle()->setFormat(winFormat); never executed (the execution status of this line is deduced): widget->windowHandle()->setFormat(winFormat); | - |
| 152 | widget->winId();//make window never executed (the execution status of this line is deduced): widget->winId(); | - |
| 153 | } | 0 |
| 154 | | - |
| 155 | if (d->ownContext) never evaluated: d->ownContext | 0 |
| 156 | delete d->guiGlContext; never executed: delete d->guiGlContext; | 0 |
| 157 | d->ownContext = true; never executed (the execution status of this line is deduced): d->ownContext = true; | - |
| 158 | QOpenGLContext *shareGlContext = shareContext ? shareContext->d_func()->guiGlContext : 0; never evaluated: shareContext | 0 |
| 159 | d->guiGlContext = new QOpenGLContext; never executed (the execution status of this line is deduced): d->guiGlContext = new QOpenGLContext; | - |
| 160 | d->guiGlContext->setFormat(winFormat); never executed (the execution status of this line is deduced): d->guiGlContext->setFormat(winFormat); | - |
| 161 | d->guiGlContext->setShareContext(shareGlContext); never executed (the execution status of this line is deduced): d->guiGlContext->setShareContext(shareGlContext); | - |
| 162 | d->valid = d->guiGlContext->create(); never executed (the execution status of this line is deduced): d->valid = d->guiGlContext->create(); | - |
| 163 | | - |
| 164 | if (d->valid) never evaluated: d->valid | 0 |
| 165 | d->guiGlContext->setQGLContextHandle(this,qDeleteQGLContext); never executed: d->guiGlContext->setQGLContextHandle(this,qDeleteQGLContext); | 0 |
| 166 | | - |
| 167 | d->glFormat = QGLFormat::fromSurfaceFormat(d->guiGlContext->format()); never executed (the execution status of this line is deduced): d->glFormat = QGLFormat::fromSurfaceFormat(d->guiGlContext->format()); | - |
| 168 | d->setupSharing(); never executed (the execution status of this line is deduced): d->setupSharing(); | - |
| 169 | } | 0 |
| 170 | | - |
| 171 | | - |
| 172 | return d->valid; never executed: return d->valid; | 0 |
| 173 | } | - |
| 174 | | - |
| 175 | void QGLContext::reset() | - |
| 176 | { | - |
| 177 | Q_D(QGLContext); never executed (the execution status of this line is deduced): QGLContextPrivate * const d = d_func(); | - |
| 178 | if (!d->valid) never evaluated: !d->valid | 0 |
| 179 | return; | 0 |
| 180 | d->cleanup(); never executed (the execution status of this line is deduced): d->cleanup(); | - |
| 181 | | - |
| 182 | d->crWin = false; never executed (the execution status of this line is deduced): d->crWin = false; | - |
| 183 | d->sharing = false; never executed (the execution status of this line is deduced): d->sharing = false; | - |
| 184 | d->valid = false; never executed (the execution status of this line is deduced): d->valid = false; | - |
| 185 | d->transpColor = QColor(); never executed (the execution status of this line is deduced): d->transpColor = QColor(); | - |
| 186 | d->initDone = false; never executed (the execution status of this line is deduced): d->initDone = false; | - |
| 187 | QGLContextGroup::removeShare(this); never executed (the execution status of this line is deduced): QGLContextGroup::removeShare(this); | - |
| 188 | if (d->guiGlContext) { never evaluated: d->guiGlContext | 0 |
| 189 | if (QOpenGLContext::currentContext() == d->guiGlContext) never evaluated: QOpenGLContext::currentContext() == d->guiGlContext | 0 |
| 190 | doneCurrent(); never executed: doneCurrent(); | 0 |
| 191 | if (d->ownContext) { never evaluated: d->ownContext | 0 |
| 192 | if (d->guiGlContext->thread() == QThread::currentThread()) never evaluated: d->guiGlContext->thread() == QThread::currentThread() | 0 |
| 193 | delete d->guiGlContext; never executed: delete d->guiGlContext; | 0 |
| 194 | else | - |
| 195 | d->guiGlContext->deleteLater(); never executed: d->guiGlContext->deleteLater(); | 0 |
| 196 | } else | - |
| 197 | d->guiGlContext->setQGLContextHandle(0,0); never executed: d->guiGlContext->setQGLContextHandle(0,0); | 0 |
| 198 | d->guiGlContext = 0; never executed (the execution status of this line is deduced): d->guiGlContext = 0; | - |
| 199 | } | 0 |
| 200 | d->ownContext = false; never executed (the execution status of this line is deduced): d->ownContext = false; | - |
| 201 | } | 0 |
| 202 | | - |
| 203 | void QGLContext::makeCurrent() | - |
| 204 | { | - |
| 205 | Q_D(QGLContext); never executed (the execution status of this line is deduced): QGLContextPrivate * const d = d_func(); | - |
| 206 | if (!d->paintDevice || d->paintDevice->devType() != QInternal::Widget) never evaluated: !d->paintDevice never evaluated: d->paintDevice->devType() != QInternal::Widget | 0 |
| 207 | return; | 0 |
| 208 | | - |
| 209 | QWidget *widget = static_cast<QWidget *>(d->paintDevice); never executed (the execution status of this line is deduced): QWidget *widget = static_cast<QWidget *>(d->paintDevice); | - |
| 210 | if (!widget->windowHandle()) never evaluated: !widget->windowHandle() | 0 |
| 211 | return; | 0 |
| 212 | | - |
| 213 | if (d->guiGlContext->makeCurrent(widget->windowHandle())) { never evaluated: d->guiGlContext->makeCurrent(widget->windowHandle()) | 0 |
| 214 | if (!d->workaroundsCached) { never evaluated: !d->workaroundsCached | 0 |
| 215 | d->workaroundsCached = true; never executed (the execution status of this line is deduced): d->workaroundsCached = true; | - |
| 216 | const char *renderer = reinterpret_cast<const char *>(glGetString(GL_RENDERER)); never executed (the execution status of this line is deduced): const char *renderer = reinterpret_cast<const char *>(glGetString(0x1F01)); | - |
| 217 | if (renderer && strstr(renderer, "Mali")) { never evaluated: renderer never evaluated: strstr(renderer, "Mali") | 0 |
| 218 | d->workaround_brokenFBOReadBack = true; never executed (the execution status of this line is deduced): d->workaround_brokenFBOReadBack = true; | - |
| 219 | } | 0 |
| 220 | } | 0 |
| 221 | } | 0 |
| 222 | } | 0 |
| 223 | | - |
| 224 | void QGLContext::doneCurrent() | - |
| 225 | { | - |
| 226 | Q_D(QGLContext); never executed (the execution status of this line is deduced): QGLContextPrivate * const d = d_func(); | - |
| 227 | d->guiGlContext->doneCurrent(); never executed (the execution status of this line is deduced): d->guiGlContext->doneCurrent(); | - |
| 228 | } | 0 |
| 229 | | - |
| 230 | void QGLContext::swapBuffers() const | - |
| 231 | { | - |
| 232 | Q_D(const QGLContext); never executed (the execution status of this line is deduced): const QGLContextPrivate * const d = d_func(); | - |
| 233 | if (!d->paintDevice || d->paintDevice->devType() != QInternal::Widget) never evaluated: !d->paintDevice never evaluated: d->paintDevice->devType() != QInternal::Widget | 0 |
| 234 | return; | 0 |
| 235 | | - |
| 236 | QWidget *widget = static_cast<QWidget *>(d->paintDevice); never executed (the execution status of this line is deduced): QWidget *widget = static_cast<QWidget *>(d->paintDevice); | - |
| 237 | if (!widget->windowHandle()) never evaluated: !widget->windowHandle() | 0 |
| 238 | return; | 0 |
| 239 | | - |
| 240 | d->guiGlContext->swapBuffers(widget->windowHandle()); never executed (the execution status of this line is deduced): d->guiGlContext->swapBuffers(widget->windowHandle()); | - |
| 241 | } | 0 |
| 242 | | - |
| 243 | QFunctionPointer QGLContext::getProcAddress(const QString &procName) const | - |
| 244 | { | - |
| 245 | Q_D(const QGLContext); never executed (the execution status of this line is deduced): const QGLContextPrivate * const d = d_func(); | - |
| 246 | return d->guiGlContext->getProcAddress(procName.toLatin1()); never executed: return d->guiGlContext->getProcAddress(procName.toLatin1()); | 0 |
| 247 | } | - |
| 248 | | - |
| 249 | void QGLWidget::setContext(QGLContext *context, | - |
| 250 | const QGLContext* shareContext, | - |
| 251 | bool deleteOldContext) | - |
| 252 | { | - |
| 253 | Q_D(QGLWidget); never executed (the execution status of this line is deduced): QGLWidgetPrivate * const d = d_func(); | - |
| 254 | if (context == 0) { never evaluated: context == 0 | 0 |
| 255 | qWarning("QGLWidget::setContext: Cannot set null context"); never executed (the execution status of this line is deduced): QMessageLogger("qgl_qpa.cpp", 255, __PRETTY_FUNCTION__).warning("QGLWidget::setContext: Cannot set null context"); | - |
| 256 | return; | 0 |
| 257 | } | - |
| 258 | | - |
| 259 | if (context->device() == 0) // a context may refere to more than 1 window. never evaluated: context->device() == 0 | 0 |
| 260 | context->setDevice(this); //but its better to point to 1 of them than none of them. never executed: context->setDevice(this); | 0 |
| 261 | | - |
| 262 | QGLContext* oldcx = d->glcx; never executed (the execution status of this line is deduced): QGLContext* oldcx = d->glcx; | - |
| 263 | d->glcx = context; never executed (the execution status of this line is deduced): d->glcx = context; | - |
| 264 | | - |
| 265 | if (!d->glcx->isValid()) never evaluated: !d->glcx->isValid() | 0 |
| 266 | d->glcx->create(shareContext ? shareContext : oldcx); never executed: d->glcx->create(shareContext ? shareContext : oldcx); | 0 |
| 267 | | - |
| 268 | if (deleteOldContext) never evaluated: deleteOldContext | 0 |
| 269 | delete oldcx; never executed: delete oldcx; | 0 |
| 270 | } | 0 |
| 271 | | - |
| 272 | void QGLWidgetPrivate::init(QGLContext *context, const QGLWidget *shareWidget) | - |
| 273 | { | - |
| 274 | initContext(context, shareWidget); never executed (the execution status of this line is deduced): initContext(context, shareWidget); | - |
| 275 | } | 0 |
| 276 | | - |
| 277 | bool QGLFormat::hasOpenGLOverlays() | - |
| 278 | { | - |
| 279 | return false; never executed: return false; | 0 |
| 280 | } | - |
| 281 | | - |
| 282 | QColor QGLContext::overlayTransparentColor() const | - |
| 283 | { | - |
| 284 | return QColor(); // Invalid color never executed: return QColor(); | 0 |
| 285 | } | - |
| 286 | | - |
| 287 | uint QGLContext::colorIndex(const QColor&) const | - |
| 288 | { | - |
| 289 | return 0; never executed: return 0; | 0 |
| 290 | } | - |
| 291 | | - |
| 292 | /* | - |
| 293 | QGLTemporaryContext implementation | - |
| 294 | */ | - |
| 295 | class QGLTemporaryContextPrivate | - |
| 296 | { | - |
| 297 | public: | - |
| 298 | QWindow *window; | - |
| 299 | QOpenGLContext *context; | - |
| 300 | | - |
| 301 | QGLContext *oldContext; | - |
| 302 | }; | - |
| 303 | | - |
| 304 | QGLTemporaryContext::QGLTemporaryContext(bool, QWidget *) | - |
| 305 | : d(new QGLTemporaryContextPrivate) | - |
| 306 | { | - |
| 307 | d->oldContext = const_cast<QGLContext *>(QGLContext::currentContext()); never executed (the execution status of this line is deduced): d->oldContext = const_cast<QGLContext *>(QGLContext::currentContext()); | - |
| 308 | | - |
| 309 | d->window = new QWindow; never executed (the execution status of this line is deduced): d->window = new QWindow; | - |
| 310 | d->window->setSurfaceType(QWindow::OpenGLSurface); never executed (the execution status of this line is deduced): d->window->setSurfaceType(QWindow::OpenGLSurface); | - |
| 311 | d->window->setGeometry(QRect(0, 0, 3, 3)); never executed (the execution status of this line is deduced): d->window->setGeometry(QRect(0, 0, 3, 3)); | - |
| 312 | d->window->create(); never executed (the execution status of this line is deduced): d->window->create(); | - |
| 313 | | - |
| 314 | d->context = new QOpenGLContext; never executed (the execution status of this line is deduced): d->context = new QOpenGLContext; | - |
| 315 | #if !defined(QT_OPENGL_ES) | - |
| 316 | // On desktop, request latest released version | - |
| 317 | QSurfaceFormat format; never executed (the execution status of this line is deduced): QSurfaceFormat format; | - |
| 318 | #if defined(Q_OS_MAC) | - |
| 319 | // OS X is limited to OpenGL 3.2 Core Profile at present | - |
| 320 | // so set that here. If we use compatibility profile it | - |
| 321 | // only reports 2.x contexts. | - |
| 322 | format.setMajorVersion(3); | - |
| 323 | format.setMinorVersion(2); | - |
| 324 | format.setProfile(QSurfaceFormat::CoreProfile); | - |
| 325 | #else | - |
| 326 | format.setMajorVersion(4); never executed (the execution status of this line is deduced): format.setMajorVersion(4); | - |
| 327 | format.setMinorVersion(3); never executed (the execution status of this line is deduced): format.setMinorVersion(3); | - |
| 328 | #endif | - |
| 329 | d->context->setFormat(format); never executed (the execution status of this line is deduced): d->context->setFormat(format); | - |
| 330 | #endif | - |
| 331 | d->context->create(); never executed (the execution status of this line is deduced): d->context->create(); | - |
| 332 | d->context->makeCurrent(d->window); never executed (the execution status of this line is deduced): d->context->makeCurrent(d->window); | - |
| 333 | } | 0 |
| 334 | | - |
| 335 | QGLTemporaryContext::~QGLTemporaryContext() | - |
| 336 | { | - |
| 337 | if (d->oldContext) never evaluated: d->oldContext | 0 |
| 338 | d->oldContext->makeCurrent(); never executed: d->oldContext->makeCurrent(); | 0 |
| 339 | | - |
| 340 | delete d->context; never executed (the execution status of this line is deduced): delete d->context; | - |
| 341 | delete d->window; never executed (the execution status of this line is deduced): delete d->window; | - |
| 342 | } | 0 |
| 343 | | - |
| 344 | | - |
| 345 | bool QGLWidgetPrivate::renderCxPm(QPixmap*) | - |
| 346 | { | - |
| 347 | return false; never executed: return false; | 0 |
| 348 | } | - |
| 349 | | - |
| 350 | /*! \internal | - |
| 351 | Free up any allocated colormaps. This fn is only called for | - |
| 352 | top-level widgets. | - |
| 353 | */ | - |
| 354 | void QGLWidgetPrivate::cleanupColormaps() | - |
| 355 | { | - |
| 356 | } | - |
| 357 | | - |
| 358 | bool QGLWidget::event(QEvent *e) | - |
| 359 | { | - |
| 360 | return QWidget::event(e); never executed: return QWidget::event(e); | 0 |
| 361 | } | - |
| 362 | | - |
| 363 | void QGLWidget::resizeEvent(QResizeEvent *e) | - |
| 364 | { | - |
| 365 | Q_D(QGLWidget); never executed (the execution status of this line is deduced): QGLWidgetPrivate * const d = d_func(); | - |
| 366 | | - |
| 367 | QWidget::resizeEvent(e); never executed (the execution status of this line is deduced): QWidget::resizeEvent(e); | - |
| 368 | if (!isValid()) never evaluated: !isValid() | 0 |
| 369 | return; | 0 |
| 370 | makeCurrent(); never executed (the execution status of this line is deduced): makeCurrent(); | - |
| 371 | if (!d->glcx->initialized()) never evaluated: !d->glcx->initialized() | 0 |
| 372 | glInit(); never executed: glInit(); | 0 |
| 373 | const qreal scaleFactor = (window() && window()->windowHandle()) ? never evaluated: window() never evaluated: window()->windowHandle() | 0 |
| 374 | window()->windowHandle()->devicePixelRatio() : 1.0; never executed (the execution status of this line is deduced): window()->windowHandle()->devicePixelRatio() : 1.0; | - |
| 375 | | - |
| 376 | resizeGL(width() * scaleFactor, height() * scaleFactor); never executed (the execution status of this line is deduced): resizeGL(width() * scaleFactor, height() * scaleFactor); | - |
| 377 | } | 0 |
| 378 | | - |
| 379 | | - |
| 380 | const QGLContext* QGLWidget::overlayContext() const | - |
| 381 | { | - |
| 382 | return 0; never executed: return 0; | 0 |
| 383 | } | - |
| 384 | | - |
| 385 | void QGLWidget::makeOverlayCurrent() | - |
| 386 | { | - |
| 387 | } | - |
| 388 | | - |
| 389 | | - |
| 390 | void QGLWidget::updateOverlayGL() | - |
| 391 | { | - |
| 392 | } | - |
| 393 | | - |
| 394 | const QGLColormap & QGLWidget::colormap() const | - |
| 395 | { | - |
| 396 | Q_D(const QGLWidget); never executed (the execution status of this line is deduced): const QGLWidgetPrivate * const d = d_func(); | - |
| 397 | return d->cmap; never executed: return d->cmap; | 0 |
| 398 | } | - |
| 399 | | - |
| 400 | void QGLWidget::setColormap(const QGLColormap & c) | - |
| 401 | { | - |
| 402 | Q_UNUSED(c); never executed (the execution status of this line is deduced): (void)c;; | - |
| 403 | } | 0 |
| 404 | | - |
| 405 | QGLContext::QGLContext(QOpenGLContext *context) | - |
| 406 | : d_ptr(new QGLContextPrivate(this)) | - |
| 407 | { | - |
| 408 | Q_D(QGLContext); never executed (the execution status of this line is deduced): QGLContextPrivate * const d = d_func(); | - |
| 409 | d->init(0, QGLFormat::fromSurfaceFormat(context->format())); never executed (the execution status of this line is deduced): d->init(0, QGLFormat::fromSurfaceFormat(context->format())); | - |
| 410 | d->guiGlContext = context; never executed (the execution status of this line is deduced): d->guiGlContext = context; | - |
| 411 | d->guiGlContext->setQGLContextHandle(this,qDeleteQGLContext); never executed (the execution status of this line is deduced): d->guiGlContext->setQGLContextHandle(this,qDeleteQGLContext); | - |
| 412 | d->ownContext = false; never executed (the execution status of this line is deduced): d->ownContext = false; | - |
| 413 | d->valid = context->isValid(); never executed (the execution status of this line is deduced): d->valid = context->isValid(); | - |
| 414 | d->setupSharing(); never executed (the execution status of this line is deduced): d->setupSharing(); | - |
| 415 | } | 0 |
| 416 | | - |
| 417 | QOpenGLContext *QGLContext::contextHandle() const | - |
| 418 | { | - |
| 419 | Q_D(const QGLContext); never executed (the execution status of this line is deduced): const QGLContextPrivate * const d = d_func(); | - |
| 420 | return d->guiGlContext; never executed: return d->guiGlContext; | 0 |
| 421 | } | - |
| 422 | | - |
| 423 | /*! | - |
| 424 | Returns a OpenGL context for the window context specified by the \a context | - |
| 425 | parameter. | - |
| 426 | */ | - |
| 427 | QGLContext *QGLContext::fromOpenGLContext(QOpenGLContext *context) | - |
| 428 | { | - |
| 429 | if (!context) never evaluated: !context | 0 |
| 430 | return 0; never executed: return 0; | 0 |
| 431 | if (context->qGLContextHandle()) { never evaluated: context->qGLContextHandle() | 0 |
| 432 | return reinterpret_cast<QGLContext *>(context->qGLContextHandle()); never executed: return reinterpret_cast<QGLContext *>(context->qGLContextHandle()); | 0 |
| 433 | } | - |
| 434 | QGLContext *glContext = new QGLContext(context); never executed (the execution status of this line is deduced): QGLContext *glContext = new QGLContext(context); | - |
| 435 | //Don't call create on context. This can cause the platformFormat to be set on the widget, which | - |
| 436 | //will cause the platformWindow to be recreated. | - |
| 437 | return glContext; never executed: return glContext; | 0 |
| 438 | } | - |
| 439 | | - |
| 440 | QT_END_NAMESPACE | - |
| 441 | | - |
| | |