qgl_qpa.cpp

Switch to Source codePreprocessed file
LineSource CodeCoverage
1 -
2 -
3 -
4 -
5 -
6 -
7 -
8 -
9QGLFormat QGLFormat::fromSurfaceFormat(const QSurfaceFormat &format) -
10{ -
11 QGLFormat retFormat; -
12 if (format.alphaBufferSize() >= 0)
never evaluated: format.alphaBufferSize() >= 0
0
13 retFormat.setAlphaBufferSize(format.alphaBufferSize());
never executed: retFormat.setAlphaBufferSize(format.alphaBufferSize());
0
14 if (format.blueBufferSize() >= 0)
never evaluated: format.blueBufferSize() >= 0
0
15 retFormat.setBlueBufferSize(format.blueBufferSize());
never executed: retFormat.setBlueBufferSize(format.blueBufferSize());
0
16 if (format.greenBufferSize() >= 0)
never evaluated: format.greenBufferSize() >= 0
0
17 retFormat.setGreenBufferSize(format.greenBufferSize());
never executed: retFormat.setGreenBufferSize(format.greenBufferSize());
0
18 if (format.redBufferSize() >= 0)
never evaluated: format.redBufferSize() >= 0
0
19 retFormat.setRedBufferSize(format.redBufferSize());
never executed: retFormat.setRedBufferSize(format.redBufferSize());
0
20 if (format.depthBufferSize() >= 0)
never evaluated: format.depthBufferSize() >= 0
0
21 retFormat.setDepthBufferSize(format.depthBufferSize());
never executed: retFormat.setDepthBufferSize(format.depthBufferSize());
0
22 if (format.samples() > 1) {
never evaluated: format.samples() > 1
0
23 retFormat.setSampleBuffers(true); -
24 retFormat.setSamples(format.samples()); -
25 }
never executed: }
0
26 if (format.stencilBufferSize() > 0) {
never evaluated: format.stencilBufferSize() > 0
0
27 retFormat.setStencil(true); -
28 retFormat.setStencilBufferSize(format.stencilBufferSize()); -
29 }
never executed: }
0
30 retFormat.setDoubleBuffer(format.swapBehavior() != QSurfaceFormat::SingleBuffer); -
31 retFormat.setStereo(format.stereo()); -
32 retFormat.setVersion(format.majorVersion(), format.minorVersion()); -
33 retFormat.setProfile(static_cast<QGLFormat::OpenGLContextProfile>(format.profile())); -
34 return retFormat;
never executed: return retFormat;
0
35} -
36 -
37 -
38 -
39 -
40QSurfaceFormat QGLFormat::toSurfaceFormat(const QGLFormat &format) -
41{ -
42 QSurfaceFormat retFormat; -
43 if (format.alpha())
never evaluated: format.alpha()
0
44 retFormat.setAlphaBufferSize(format.alphaBufferSize() == -1 ? 1 : format.alphaBufferSize());
never executed: retFormat.setAlphaBufferSize(format.alphaBufferSize() == -1 ? 1 : format.alphaBufferSize());
0
45 if (format.blueBufferSize() >= 0)
never evaluated: format.blueBufferSize() >= 0
0
46 retFormat.setBlueBufferSize(format.blueBufferSize());
never executed: retFormat.setBlueBufferSize(format.blueBufferSize());
0
47 if (format.greenBufferSize() >= 0)
never evaluated: format.greenBufferSize() >= 0
0
48 retFormat.setGreenBufferSize(format.greenBufferSize());
never executed: retFormat.setGreenBufferSize(format.greenBufferSize());
0
49 if (format.redBufferSize() >= 0)
never evaluated: format.redBufferSize() >= 0
0
50 retFormat.setRedBufferSize(format.redBufferSize());
never executed: retFormat.setRedBufferSize(format.redBufferSize());
0
51 if (format.depth())
never evaluated: format.depth()
0
52 retFormat.setDepthBufferSize(format.depthBufferSize() == -1 ? 1 : format.depthBufferSize());
never executed: retFormat.setDepthBufferSize(format.depthBufferSize() == -1 ? 1 : format.depthBufferSize());
0
53 retFormat.setSwapBehavior(format.doubleBuffer() ? QSurfaceFormat::DoubleBuffer : QSurfaceFormat::SingleBuffer); -
54 if (format.sampleBuffers())
never evaluated: format.sampleBuffers()
0
55 retFormat.setSamples(format.samples() == -1 ? 4 : format.samples());
never executed: retFormat.setSamples(format.samples() == -1 ? 4 : format.samples());
0
56 if (format.stencil())
never evaluated: format.stencil()
0
57 retFormat.setStencilBufferSize(format.stencilBufferSize() == -1 ? 1 : format.stencilBufferSize());
never executed: retFormat.setStencilBufferSize(format.stencilBufferSize() == -1 ? 1 : format.stencilBufferSize());
0
58 retFormat.setStereo(format.stereo()); -
59 retFormat.setMajorVersion(format.majorVersion()); -
60 retFormat.setMinorVersion(format.minorVersion()); -
61 retFormat.setProfile(static_cast<QSurfaceFormat::OpenGLContextProfile>(format.profile())); -
62 return retFormat;
never executed: return retFormat;
0
63} -
64 -
65void QGLContextPrivate::setupSharing() { -
66 QGLContext * const q = q_func(); -
67 QOpenGLContext *sharedContext = guiGlContext->shareContext(); -
68 if (sharedContext) {
never evaluated: sharedContext
0
69 QGLContext *actualSharedContext = QGLContext::fromOpenGLContext(sharedContext); -
70 sharing = true; -
71 QGLContextGroup::addShare(q, actualSharedContext); -
72 }
never executed: }
0
73}
never executed: }
0
74 -
75bool QGLFormat::hasOpenGL() -
76{ -
77 return QApplicationPrivate::platformIntegration() 0
78 ->hasCapability(QPlatformIntegration::OpenGL);
never executed: return QApplicationPrivate::platformIntegration() ->hasCapability(QPlatformIntegration::OpenGL);
0
79} -
80 -
81void qDeleteQGLContext(void *handle) -
82{ -
83 QGLContext *context = static_cast<QGLContext *>(handle); -
84 delete context; -
85}
never executed: }
0
86 -
87bool QGLContext::chooseContext(const QGLContext* shareContext) -
88{ -
89 QGLContextPrivate * const d = d_func(); -
90 if(!d->paintDevice || d->paintDevice->devType() != QInternal::Widget) {
never evaluated: !d->paintDevice
never evaluated: d->paintDevice->devType() != QInternal::Widget
0
91 d->valid = false; -
92 }else {
never executed: }
0
93 QWidget *widget = static_cast<QWidget *>(d->paintDevice); -
94 QGLFormat glformat = format(); -
95 QSurfaceFormat winFormat = QGLFormat::toSurfaceFormat(glformat); -
96 if (widget->testAttribute(Qt::WA_TranslucentBackground))
never evaluated: widget->testAttribute(Qt::WA_TranslucentBackground)
0
97 winFormat.setAlphaBufferSize(qMax(winFormat.alphaBufferSize(), 8));
never executed: winFormat.setAlphaBufferSize(qMax(winFormat.alphaBufferSize(), 8));
0
98 -
99 if (!widget->windowHandle()->handle()) {
never evaluated: !widget->windowHandle()->handle()
0
100 widget->windowHandle()->setSurfaceType(QWindow::OpenGLSurface); -
101 widget->windowHandle()->setFormat(winFormat); -
102 widget->winId(); -
103 }
never executed: }
0
104 -
105 if (d->ownContext)
never evaluated: d->ownContext
0
106 delete d->guiGlContext;
never executed: delete d->guiGlContext;
0
107 d->ownContext = true; -
108 QOpenGLContext *shareGlContext = shareContext ? shareContext->d_func()->guiGlContext : 0;
never evaluated: shareContext
0
109 d->guiGlContext = new QOpenGLContext; -
110 d->guiGlContext->setFormat(winFormat); -
111 d->guiGlContext->setShareContext(shareGlContext); -
112 d->valid = d->guiGlContext->create(); -
113 -
114 if (d->valid)
never evaluated: d->valid
0
115 d->guiGlContext->setQGLContextHandle(this,qDeleteQGLContext);
never executed: d->guiGlContext->setQGLContextHandle(this,qDeleteQGLContext);
0
116 -
117 d->glFormat = QGLFormat::fromSurfaceFormat(d->guiGlContext->format()); -
118 d->setupSharing(); -
119 }
never executed: }
0
120 -
121 -
122 return d->valid;
never executed: return d->valid;
0
123} -
124 -
125void QGLContext::reset() -
126{ -
127 QGLContextPrivate * const d = d_func(); -
128 if (!d->valid)
never evaluated: !d->valid
0
129 return;
never executed: return;
0
130 d->cleanup(); -
131 -
132 d->crWin = false; -
133 d->sharing = false; -
134 d->valid = false; -
135 d->transpColor = QColor(); -
136 d->initDone = false; -
137 QGLContextGroup::removeShare(this); -
138 if (d->guiGlContext) {
never evaluated: d->guiGlContext
0
139 if (QOpenGLContext::currentContext() == d->guiGlContext)
never evaluated: QOpenGLContext::currentContext() == d->guiGlContext
0
140 doneCurrent();
never executed: doneCurrent();
0
141 if (d->ownContext) {
never evaluated: d->ownContext
0
142 if (d->guiGlContext->thread() == QThread::currentThread())
never evaluated: d->guiGlContext->thread() == QThread::currentThread()
0
143 delete d->guiGlContext;
never executed: delete d->guiGlContext;
0
144 else -
145 d->guiGlContext->deleteLater();
never executed: d->guiGlContext->deleteLater();
0
146 } else -
147 d->guiGlContext->setQGLContextHandle(0,0);
never executed: d->guiGlContext->setQGLContextHandle(0,0);
0
148 d->guiGlContext = 0; -
149 }
never executed: }
0
150 d->ownContext = false; -
151}
never executed: }
0
152 -
153void QGLContext::makeCurrent() -
154{ -
155 QGLContextPrivate * const d = d_func(); -
156 if (!d->paintDevice || d->paintDevice->devType() != QInternal::Widget)
never evaluated: !d->paintDevice
never evaluated: d->paintDevice->devType() != QInternal::Widget
0
157 return;
never executed: return;
0
158 -
159 QWidget *widget = static_cast<QWidget *>(d->paintDevice); -
160 if (!widget->windowHandle())
never evaluated: !widget->windowHandle()
0
161 return;
never executed: return;
0
162 -
163 if (d->guiGlContext->makeCurrent(widget->windowHandle())) {
never evaluated: d->guiGlContext->makeCurrent(widget->windowHandle())
0
164 if (!d->workaroundsCached) {
never evaluated: !d->workaroundsCached
0
165 d->workaroundsCached = true; -
166 const char *renderer = reinterpret_cast<const char *>(glGetString(0x1F01)); -
167 if (renderer && strstr(renderer, "Mali")) {
never evaluated: renderer
never evaluated: strstr(renderer, "Mali")
0
168 d->workaround_brokenFBOReadBack = true; -
169 }
never executed: }
0
170 }
never executed: }
0
171 }
never executed: }
0
172}
never executed: }
0
173 -
174void QGLContext::doneCurrent() -
175{ -
176 QGLContextPrivate * const d = d_func(); -
177 d->guiGlContext->doneCurrent(); -
178}
never executed: }
0
179 -
180void QGLContext::swapBuffers() const -
181{ -
182 const QGLContextPrivate * const d = d_func(); -
183 if (!d->paintDevice || d->paintDevice->devType() != QInternal::Widget)
never evaluated: !d->paintDevice
never evaluated: d->paintDevice->devType() != QInternal::Widget
0
184 return;
never executed: return;
0
185 -
186 QWidget *widget = static_cast<QWidget *>(d->paintDevice); -
187 if (!widget->windowHandle())
never evaluated: !widget->windowHandle()
0
188 return;
never executed: return;
0
189 -
190 d->guiGlContext->swapBuffers(widget->windowHandle()); -
191}
never executed: }
0
192 -
193QFunctionPointer QGLContext::getProcAddress(const QString &procName) const -
194{ -
195 const QGLContextPrivate * const d = d_func(); -
196 return d->guiGlContext->getProcAddress(procName.toLatin1());
never executed: return d->guiGlContext->getProcAddress(procName.toLatin1());
0
197} -
198 -
199void QGLWidget::setContext(QGLContext *context, -
200 const QGLContext* shareContext, -
201 bool deleteOldContext) -
202{ -
203 QGLWidgetPrivate * const d = d_func(); -
204 if (context == 0) {
never evaluated: context == 0
0
205 QMessageLogger("qgl_qpa.cpp", 255, __PRETTY_FUNCTION__).warning("QGLWidget::setContext: Cannot set null context"); -
206 return;
never executed: return;
0
207 } -
208 -
209 if (context->device() == 0)
never evaluated: context->device() == 0
0
210 context->setDevice(this);
never executed: context->setDevice(this);
0
211 -
212 QGLContext* oldcx = d->glcx; -
213 d->glcx = context; -
214 -
215 if (!d->glcx->isValid())
never evaluated: !d->glcx->isValid()
0
216 d->glcx->create(shareContext ? shareContext : oldcx);
never executed: d->glcx->create(shareContext ? shareContext : oldcx);
0
217 -
218 if (deleteOldContext)
never evaluated: deleteOldContext
0
219 delete oldcx;
never executed: delete oldcx;
0
220}
never executed: }
0
221 -
222void QGLWidgetPrivate::init(QGLContext *context, const QGLWidget *shareWidget) -
223{ -
224 initContext(context, shareWidget); -
225}
never executed: }
0
226 -
227bool QGLFormat::hasOpenGLOverlays() -
228{ -
229 return false;
never executed: return false;
0
230} -
231 -
232QColor QGLContext::overlayTransparentColor() const -
233{ -
234 return QColor();
never executed: return QColor();
0
235} -
236 -
237uint QGLContext::colorIndex(const QColor&) const -
238{ -
239 return 0;
never executed: return 0;
0
240} -
241 -
242 -
243 -
244 -
245class QGLTemporaryContextPrivate -
246{ -
247public: -
248 QWindow *window; -
249 QOpenGLContext *context; -
250 -
251 QGLContext *oldContext; -
252}; -
253 -
254QGLTemporaryContext::QGLTemporaryContext(bool, QWidget *) -
255 : d(new QGLTemporaryContextPrivate) -
256{ -
257 d->oldContext = const_cast<QGLContext *>(QGLContext::currentContext()); -
258 -
259 d->window = new QWindow; -
260 d->window->setSurfaceType(QWindow::OpenGLSurface); -
261 d->window->setGeometry(QRect(0, 0, 3, 3)); -
262 d->window->create(); -
263 -
264 d->context = new QOpenGLContext; -
265 -
266 -
267 QSurfaceFormat format; -
268 format.setMajorVersion(4); -
269 format.setMinorVersion(3); -
270 -
271 d->context->setFormat(format); -
272 -
273 d->context->create(); -
274 d->context->makeCurrent(d->window); -
275}
never executed: }
0
276 -
277QGLTemporaryContext::~QGLTemporaryContext() -
278{ -
279 if (d->oldContext)
never evaluated: d->oldContext
0
280 d->oldContext->makeCurrent();
never executed: d->oldContext->makeCurrent();
0
281 -
282 delete d->context; -
283 delete d->window; -
284}
never executed: }
0
285 -
286 -
287bool QGLWidgetPrivate::renderCxPm(QPixmap*) -
288{ -
289 return false;
never executed: return false;
0
290} -
291 -
292 -
293 -
294 -
295 -
296void QGLWidgetPrivate::cleanupColormaps() -
297{ -
298} -
299 -
300bool QGLWidget::event(QEvent *e) -
301{ -
302 return QWidget::event(e);
never executed: return QWidget::event(e);
0
303} -
304 -
305void QGLWidget::resizeEvent(QResizeEvent *e) -
306{ -
307 QGLWidgetPrivate * const d = d_func(); -
308 -
309 QWidget::resizeEvent(e); -
310 if (!isValid())
never evaluated: !isValid()
0
311 return;
never executed: return;
0
312 makeCurrent(); -
313 if (!d->glcx->initialized())
never evaluated: !d->glcx->initialized()
0
314 glInit();
never executed: glInit();
0
315 const qreal scaleFactor = (window() && window()->windowHandle()) ?
never evaluated: window()
never evaluated: window()->windowHandle()
0
316 window()->windowHandle()->devicePixelRatio() : 1.0; -
317 -
318 resizeGL(width() * scaleFactor, height() * scaleFactor); -
319}
never executed: }
0
320 -
321 -
322const QGLContext* QGLWidget::overlayContext() const -
323{ -
324 return 0;
never executed: return 0;
0
325} -
326 -
327void QGLWidget::makeOverlayCurrent() -
328{ -
329} -
330 -
331 -
332void QGLWidget::updateOverlayGL() -
333{ -
334} -
335 -
336const QGLColormap & QGLWidget::colormap() const -
337{ -
338 const QGLWidgetPrivate * const d = d_func(); -
339 return d->cmap;
never executed: return d->cmap;
0
340} -
341 -
342void QGLWidget::setColormap(const QGLColormap & c) -
343{ -
344 (void)c;; -
345}
never executed: }
0
346 -
347QGLContext::QGLContext(QOpenGLContext *context) -
348 : d_ptr(new QGLContextPrivate(this)) -
349{ -
350 QGLContextPrivate * const d = d_func(); -
351 d->init(0, QGLFormat::fromSurfaceFormat(context->format())); -
352 d->guiGlContext = context; -
353 d->guiGlContext->setQGLContextHandle(this,qDeleteQGLContext); -
354 d->ownContext = false; -
355 d->valid = context->isValid(); -
356 d->setupSharing(); -
357}
never executed: }
0
358 -
359QOpenGLContext *QGLContext::contextHandle() const -
360{ -
361 const QGLContextPrivate * const d = d_func(); -
362 return d->guiGlContext;
never executed: return d->guiGlContext;
0
363} -
364 -
365 -
366 -
367 -
368 -
369QGLContext *QGLContext::fromOpenGLContext(QOpenGLContext *context) -
370{ -
371 if (!context)
never evaluated: !context
0
372 return 0;
never executed: return 0;
0
373 if (context->qGLContextHandle()) {
never evaluated: context->qGLContextHandle()
0
374 return reinterpret_cast<QGLContext *>(context->qGLContextHandle());
never executed: return reinterpret_cast<QGLContext *>(context->qGLContextHandle());
0
375 } -
376 QGLContext *glContext = new QGLContext(context); -
377 -
378 -
379 return glContext;
never executed: return glContext;
0
380} -
381 -
382 -
383 -
Switch to Source codePreprocessed file

Generated by Squish Coco Non-Commercial