Removed QPaintDevice dependency in blitFramebuffer().
Change-Id: I7294be5c4447d7e24dda95b822a9ce7b2abbccc4 Reviewed-on: http://codereview.qt.nokia.com/2783 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
This commit is contained in:
parent
f66065f281
commit
44ad7a7f2b
@ -71,6 +71,7 @@ public:
|
|||||||
, platformGLContext(0)
|
, platformGLContext(0)
|
||||||
, shareContext(0)
|
, shareContext(0)
|
||||||
, screen(0)
|
, screen(0)
|
||||||
|
, surface(0)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -86,6 +87,7 @@ public:
|
|||||||
QPlatformGLContext *platformGLContext;
|
QPlatformGLContext *platformGLContext;
|
||||||
QGuiGLContext *shareContext;
|
QGuiGLContext *shareContext;
|
||||||
QScreen *screen;
|
QScreen *screen;
|
||||||
|
QSurface *surface;
|
||||||
|
|
||||||
static void setCurrentContext(QGuiGLContext *context);
|
static void setCurrentContext(QGuiGLContext *context);
|
||||||
};
|
};
|
||||||
@ -229,6 +231,7 @@ bool QGuiGLContext::makeCurrent(QSurface *surface)
|
|||||||
|
|
||||||
if (d->platformGLContext->makeCurrent(surface->surfaceHandle())) {
|
if (d->platformGLContext->makeCurrent(surface->surfaceHandle())) {
|
||||||
QGuiGLContextPrivate::setCurrentContext(this);
|
QGuiGLContextPrivate::setCurrentContext(this);
|
||||||
|
d->surface = surface;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -246,8 +249,20 @@ void QGuiGLContext::doneCurrent()
|
|||||||
|
|
||||||
d->platformGLContext->doneCurrent();
|
d->platformGLContext->doneCurrent();
|
||||||
QGuiGLContextPrivate::setCurrentContext(0);
|
QGuiGLContextPrivate::setCurrentContext(0);
|
||||||
|
|
||||||
|
d->surface = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Returns the surface the context is current for.
|
||||||
|
*/
|
||||||
|
QSurface *QGuiGLContext::surface() const
|
||||||
|
{
|
||||||
|
Q_D(const QGuiGLContext);
|
||||||
|
return d->surface;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void QGuiGLContext::swapBuffers(QSurface *surface)
|
void QGuiGLContext::swapBuffers(QSurface *surface)
|
||||||
{
|
{
|
||||||
Q_D(QGuiGLContext);
|
Q_D(QGuiGLContext);
|
||||||
|
@ -81,6 +81,8 @@ public:
|
|||||||
void swapBuffers(QSurface *surface);
|
void swapBuffers(QSurface *surface);
|
||||||
void (*getProcAddress(const QByteArray &procName)) ();
|
void (*getProcAddress(const QByteArray &procName)) ();
|
||||||
|
|
||||||
|
QSurface *surface() const;
|
||||||
|
|
||||||
static QGuiGLContext *currentContext();
|
static QGuiGLContext *currentContext();
|
||||||
|
|
||||||
QPlatformGLContext *handle() const;
|
QPlatformGLContext *handle() const;
|
||||||
|
@ -1370,10 +1370,12 @@ void QGLFramebufferObject::blitFramebuffer(QGLFramebufferObject *target, const Q
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
const QGLContext *ctx = QGLContext::currentContext();
|
const QGLContext *ctx = QGLContext::currentContext();
|
||||||
if (!ctx)
|
if (!ctx || !ctx->contextHandle())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const int height = ctx->device()->height();
|
QSurface *surface = ctx->contextHandle()->surface();
|
||||||
|
|
||||||
|
const int height = static_cast<QWindow *>(surface)->height();
|
||||||
|
|
||||||
const int sh = source ? source->height() : height;
|
const int sh = source ? source->height() : height;
|
||||||
const int th = target ? target->height() : height;
|
const int th = target ? target->height() : height;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user