Commit Graph

26 Commits

Author SHA1 Message Date
Girish Ramakrishnan
36547f4eff Expose QPA API under qpa/*
The main reasons for doing this are:
1. _qpa.h end up in the master QtGui include file. QtGui is meant for
userland applications. qpa code is neither binary nor source compatible.
Inadvertant use of QPA api makes the user code binary-incompatible.
2. syncqt creates forwarding headers for non-private header files. This
gives people the impression that this is public API.

As discussed on the mailing list, even though QPA api is internal and subject
to change, it needs to  treated differently from private headers since they
will be used by  in-qtbase and out-of-qtbase plugins.

This commit does the following:
1. The _qpa in QPA header files is dropped.
2. syncqt now treats any file with qplatform prefix as a special file and
moves it to qpa/ directory. The recommended way of using QPA API in plugins
is: #include <qpa/qplatformfoo.h>. This allows the user include QPA API
from multiple modules (for example, qplatformfoo might be in QtPrintSupport)
3. The user needs to explicitly add QT += <module>-private to get access to
the qpa api.
4. Creates compat headers for the olden style qplatformfoo_qpa.h and QPlatformFoo
includes.

This commit does not change the cpp filenames. This requires a more careful
merging of existing non qpa cpp files and existing cpp files on a case by
case basis. This can be done at anytime.

The following files are not renamed as part of this changed but will be fixed
as part of a future change:
src/gui/kernel/qgenericpluginfactory_qpa.h
src/gui/kernel/qgenericplugin_qpa.h
src/gui/kernel/qwindowsysteminterface_qpa.h

files were renamed using

    for x in `find . -name "qplatform*_qpa.h"`; do git mv $x "${x/_qpa.h/.h}"; done
    for x in `find . -name "qplatform*_qpa_p.h"`; do git mv $x "${x/_qpa_p.h/_p.h}"; done

includes were renamed using script

for file in `find . -name "*.h" -or -name "*.cpp" -or -name "*.mm"`; do
    sed -i -e 's,.*#.*include.*<\(Qt.*/\)\?\(QPlatform.*\)>,#include <qpa/\L\2.h>,g' \
        -e 's,.*#.*include.*"\(Qt.*/\)\?\(QPlatform.*\)",#include <qpa/\L\2.h>,g' \
        -e 's,.*#.*include.* "\(qplatform.*\)_qpa.h",#include <qpa/\L\1.h>,g' \
        -e 's,.*#.*include.*"\(qplatform.*\)_qpa_p.h",#include <qpa/\L\1_p.h>,g' \
        -e 's,.*#.*include.*<\(Qt.*/\|Qt.*/private/\|private/\)\?\(qplatform.*\)_qpa\(.*\)>,#include <qpa/\2\3>,g' \
        -e 's,.*#.*include.*"\(Qt.*/\|Qt.*/private/\|private/\)\?\(qplatform.*\)_qpa\(.*\)",#include <qpa/\2\3>,g' \
        $file
done

Change-Id: I04a350314a45746e3911f54b3b21ad03315afb67
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-05-07 20:25:24 +02:00
Samuel Rødal
528cb10d53 Made hellowindow example respect the expose event.
The expose event is sent when the window can start rendering.

Change-Id: Ifdfb01a107e3bf665fb7be65802cdaabea4c5a34
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
2012-04-20 08:14:22 +02:00
Oswald Buddenhagen
d91cf1e53b clean up qmake-generated projects
remove "header" and assignmets which are defaults or bogus,
reorder some assignments.

Change-Id: I67403872168c890ca3b696753ceb01c605d19be7
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-02-24 05:18:30 +01:00
Jason McDonald
5635823e17 Remove "All rights reserved" line from license headers.
As in the past, to avoid rewriting various autotests that contain
line-number information, an extra blank line has been inserted at the
end of the license text to ensure that this commit does not change the
total number of lines in the license header.

Change-Id: I311e001373776812699d6efc045b5f742890c689
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-30 03:54:59 +01:00
Jason McDonald
629d6eda5c Update contact information in license headers.
Replace Nokia contact email address with Qt Project website.

Change-Id: I431bbbf76d7c27d8b502f87947675c116994c415
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-23 04:04:33 +01:00
Jason McDonald
1fdfc2abfe Update copyright year in license headers.
Change-Id: I02f2c620296fcd91d4967d58767ea33fc4e1e7dc
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-05 06:36:56 +01:00
Samuel Rødal
e68642fe10 Added multi-screen support to hellowindow example.
Change-Id: I025de342952bffeffa0705eb4cfcf869f32241cc
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2011-12-06 20:14:10 +01:00
Friedemann Kleint
67e613963d Polish the HelloWindow example.
- Add window menu (enabling the close button on Windows)
- Query threaded Open GL capability.

Change-Id: I938f154e242dba584e2f597ac44294ab5d3b7141
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2011-11-28 15:08:01 +01:00
Samuel Rødal
f65cda93e9 Added command line argument to make hellowindow example single window.
Useful when testing on embedded platforms with no support for multiple
top-level windows.

Change-Id: I212ca69c3f5d5d338e860169b14e3f9f3951712b
Reviewed-by: Andy Nichols <andy.nichols@nokia.com>
2011-11-21 12:57:49 +01:00
Kent Hansen
a1d19b0917 Make examples build with Qt-in-namespace
Change-Id: Ie4710b8f3afb44191927bab94eb47e00207cb831
Reviewed-on: http://codereview.qt-project.org/5684
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
2011-09-28 12:18:53 +02:00
Jason McDonald
85675b31bf Add missing license headers
Examples get the BSD license header.

Change-Id: I4802cc00815c69e2f113aa8973d61203357212e3
Reviewed-on: http://codereview.qt-project.org/4849
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2011-09-15 03:27:45 +02:00
Samuel Rødal
a7d682dd9c Fixed hellowindow making context current in wrong thread.
Make the context a child of the Renderer, which is already moved to the
correct thread.

Change-Id: Iafda090e15b322c03e2c10b1905050f636b90197
Reviewed-on: http://codereview.qt.nokia.com/3915
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2011-08-31 09:26:48 +02:00
Samuel Rødal
6e28e8441b Copy core GL functionality to QtGui with QGL -> QOpenGL naming.
Change-Id: Ibc989afa4a30dd184d41d1a1cd89f97196e48855
Reviewed-on: http://codereview.qt.nokia.com/3710
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2011-08-29 10:25:24 +02:00
Paul Olav Tvete
1bf7fc2f1a make 'make install' install
Change-Id: I766e7917f6362b1f9cc26d18381e8d76eaf6ff83
Reviewed-on: http://codereview.qt.nokia.com/3261
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2011-08-23 14:34:48 +02:00
Samuel Rødal
66d9b4d2f8 Make the hellowindow example multi-threaded to stress the GL backend.
Change-Id: I9e158c0889b050f9ed76ea21176102fc792eef83
Reviewed-on: http://codereview.qt.nokia.com/3150
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
2011-08-19 13:57:30 +02:00
Samuel Rødal
c3da77798b Added workable QScreen API on top of QPlatformScreen.
QPlatformIntegration::screens() no longer has to be implemented,
implementations should call QPlatformIntegration::screenAdded() for each
screen instead. This is for being able to support adding screens at
run-time later on, by connecting it to a signal in QGuiApplication.

The QGuiGLContext API has changed a bit, by not sending in all the
parameters in the constructor but instead having a create() function.
The createPlatformGLContext() factory in QPlatformIntegration takes a
QGuiGLContext * instead of a QSurfaceFormat and a share context, similar
to how the window and backing store factory functions work.

The XCB plugin has experimental support for connecting to multiple X
displays simultaneously, creating one or more QScreen for each.

Change-Id: I248a22a4fd3481280710110272c04a30a8021e8f
Reviewed-on: http://codereview.qt.nokia.com/2103
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2011-07-25 13:52:09 +02:00
Morten Sorvig
def5901955 Reintroduce QWindow::SurfaceType
On Cocoa it makes sense to distinguish between the
two window types.

Reviewed-by: Samuel
2011-06-22 14:10:26 +02:00
Samuel Rødal
176f30b137 OpenGL API refactor.
Rename QGuiGLFormat to QSurfaceFormat, and make QWindow sub-class of
QSurface and QPlatformWindow sub-class of QPlatformSurface, instead of
having QPlatformGLSurface accessor in QWindow.
2011-06-21 14:02:22 +02:00
Laszlo Agocs
c84346ddff Make glx wayland backends working. 2011-06-20 10:30:30 +02:00
Samuel Rødal
4a189c188c QWindowContext / QWindowFormat refactor.
To enable having a single GL context used for multiple drawables we need
to de-couple the context class a bit more from the window class in the
plugin API. Now contexts are created stand-alone based on a GL format
and a share context, and when calling makeCurrent() a desired surface
is specified. This maps well to GLX, EGL, Cocoa, AGL, and WGL, which all
support this use case.

QWindowContext is renamed to QGuiGLContext, and QWindowFormat is renamed
to QGuiGLFormat. We have the ability to introduce a pbuffer or similar
other offscreen GL drawable abstraction in the future.
2011-06-10 09:24:56 +02:00
Lars Knoll
a889305c7e fix pro files
all examples compile again
2011-05-07 23:50:03 +02:00
Samuel Rødal
59ded5cce4 Implemented close event for QWindow and QWidgetWindow. 2011-05-02 12:00:00 +02:00
Samuel Rødal
3086f2098e Set the window title even if it was set before calling create(). 2011-05-02 10:38:33 +02:00
Samuel Rødal
b68d0688fe Add resize event support to QWindow.
(cherry picked from commit 12b4e7e5a2b18cdd23f540821e1f2785f62b0b9a)
2011-04-28 15:40:01 +02:00
Samuel Rødal
33e1b8dda5 Remove unused parameters in hellowindow.
(cherry picked from commit 3d7f0d967ca1e7e76087d84efc67f5247b72dae6)
2011-04-28 15:39:57 +02:00
Samuel Rødal
f1601a4930 Added QWindow example in examples/opengl/hellowindow.
(cherry picked from commit 712f5fe0acc7ef73117151cd8206a0d4f5d01428)
2011-04-28 15:39:54 +02:00