Screen blink when App go out from full screen in OpenGL
-
Hello.
I am having trouble when my application goes to full screen and goes out.
I have 3 displays and I am trying to use OpenGL in my application.
For doing this I am using QApplication::setAttribute(Qt::AA_UseOpenGLES, false);
Drivers in my system supports OpenGL ES 2.0 and every thing looks good except when app goes to full screen.If I use QApplication::setAttribute(Qt::AA_UseOpenGLES, true), it works propertly.
When I select 'false' or comment this line, three of screen suffer of a awful blink when app goes to fulscreen and more than one blinks when app goes out from full screen.I thought it was a problem of my app, so I have created a small example to prove it:
C++:
#include <QQmlApplicationEngine>
#include <QtWidgets/QApplication>
#include <QQuickView>#define QtQuickControlsApplication QApplication
#define qApp (static_cast<QtQuickControlsApplication *>(QtQuickControlsApplication::instance()));int main(int argc, char *argv[])
{
QtQuickControlsApplication app(argc, argv);
app.setQuitOnLastWindowClosed(true);//CHANGE THIS BOOLEAN TO 'FALSE' TO REPRODUCE BLINK WHEN GO OUT FROM FULLSCREEN bool bANGLE_Active = true; QtQuickControlsApplication::setAttribute(Qt::AA_UseOpenGLES, bANGLE_Active); //show QML QQmlApplicationEngine* pEngine = new QQmlApplicationEngine(); pEngine->load(QUrl(QStringLiteral("qrc:/resources/ExampleFullScreen.qml"))); return app.exec();
}
QML:
import QtQuick 2.0
import QtQuick.Controls 1.4
import QtQuick.Window 2.2 // Window.FullScreen
import QtQuick.Controls.Styles 1.3
import QtGraphicalEffects 1.0ApplicationWindow
{
id: root
objectName: "callToolBar"visible: true color: "yellow" height: 140 width: 400 Rectangle { anchors.fill: parent color: "red" } // Centered buttons Row { id: buttons anchors { bottom: parent.bottom; bottomMargin: 25; horizontalCenter: parent.horizontalCenter } visible: true width: childrenRect.width height: 50 spacing: 10 Button { id: button2 text: "Button change visibility" onClicked: { if(root.visibility !== Window.FullScreen) root.visibility = Window.FullScreen; else root.visibility = Window.Windowed; } } }
}
If bANGLE_Active = true, it works.
if bANGLE_Active = false it blinks.Any ideas??
-
Hello.
I am having trouble when my application goes to full screen and goes out.
I have 3 displays and I am trying to use OpenGL in my application.
For doing this I am using QApplication::setAttribute(Qt::AA_UseOpenGLES, false);
Drivers in my system supports OpenGL ES 2.0 and every thing looks good except when app goes to full screen.If I use QApplication::setAttribute(Qt::AA_UseOpenGLES, true), it works propertly.
When I select 'false' or comment this line, three of screen suffer of a awful blink when app goes to fulscreen and more than one blinks when app goes out from full screen.I thought it was a problem of my app, so I have created a small example to prove it:
C++:
#include <QQmlApplicationEngine>
#include <QtWidgets/QApplication>
#include <QQuickView>#define QtQuickControlsApplication QApplication
#define qApp (static_cast<QtQuickControlsApplication *>(QtQuickControlsApplication::instance()));int main(int argc, char *argv[])
{
QtQuickControlsApplication app(argc, argv);
app.setQuitOnLastWindowClosed(true);//CHANGE THIS BOOLEAN TO 'FALSE' TO REPRODUCE BLINK WHEN GO OUT FROM FULLSCREEN bool bANGLE_Active = true; QtQuickControlsApplication::setAttribute(Qt::AA_UseOpenGLES, bANGLE_Active); //show QML QQmlApplicationEngine* pEngine = new QQmlApplicationEngine(); pEngine->load(QUrl(QStringLiteral("qrc:/resources/ExampleFullScreen.qml"))); return app.exec();
}
QML:
import QtQuick 2.0
import QtQuick.Controls 1.4
import QtQuick.Window 2.2 // Window.FullScreen
import QtQuick.Controls.Styles 1.3
import QtGraphicalEffects 1.0ApplicationWindow
{
id: root
objectName: "callToolBar"visible: true color: "yellow" height: 140 width: 400 Rectangle { anchors.fill: parent color: "red" } // Centered buttons Row { id: buttons anchors { bottom: parent.bottom; bottomMargin: 25; horizontalCenter: parent.horizontalCenter } visible: true width: childrenRect.width height: 50 spacing: 10 Button { id: button2 text: "Button change visibility" onClicked: { if(root.visibility !== Window.FullScreen) root.visibility = Window.FullScreen; else root.visibility = Window.Windowed; } } }
}
If bANGLE_Active = true, it works.
if bANGLE_Active = false it blinks.Any ideas??