summaryrefslogtreecommitdiffstats
path: root/examples/opengl
Commit message (Collapse)AuthorAgeFilesLines
...
* Add an example for creating OpenGL contextsLaszlo Agocs2014-02-287-1/+800
| | | | | | | | | | | | | | | | | | | Besides serving as an example for performing OpenGL rendering inside a window container in a way that it works across all GL versions, this is an extremely useful tool for developers and users alike since it allows quick and easy checking of what sort of context a particular driver returns for a particular QSurfaceFormat. NB! Depending on the OpenGL driver, some surprises can be expected. The handling of core/compatibility profiles, the fwdcompat bit, the supported GLSL versions, etc. tend to be somewhat different across the different OpenGL implementations. Task-number: QTBUG-37071 Change-Id: Iae4328e66cd0bb19f74a77fefef93ea5a3221e31 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Fix division by zero in hellogl_es2 example.Friedemann Kleint2014-02-241-6/+6
| | | | | | | | Task-number: QTBUG-37027 Change-Id: Id18ee9c44650de9c434a82d3d10cf48e6ba9e78c Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* Dynamic GL switch on WindowsLaszlo Agocs2014-02-142-37/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The patch introduces a new build configuration on Windows which can be requested by passing -opengl dynamic to configure. Platforms other than Windows (including WinRT) are not affected. The existing Angle and desktop configurations are not affected. These continue to function as before and Angle remains the default. In the future, when all modules have added support for the dynamic path, as described below, the default configuration could be changed to be the dynamic one. This would allow providing a single set of binaries in the official builds instead of the current two. When requesting dynamic GL, Angle is built but QT_OPENGL_ES[_2] are never defined. Instead, the code path that has traditionally been desktop GL only becomes the dynamic path that has to do runtime checks. Qt modules and applications are not linked to opengl32.dll or libegl/glesv2.dll in this case. Instead, QtGui exports all necessary egl/egl/gl functions which will, under the hood, forward all requests to a dynamically loaded EGL/WGL/GL implementation. Porting guide (better said, changes needed to prepare your code to work with dynamic GL builds when the fallback to Angle is utilized): 1. In !QT_OPENGL_ES[_2] code branches use QOpenGLFunctions::isES() to differentiate between desktop and ES where needed. Keep in mind that it is the desktop GL header (plus qopenglext.h) that is included, not the GLES one. QtGui's proxy will handle some differences, for example calling glClearDepth will route to glClearDepthf when needed. The built-in eglGetProcAddress is able to retrieve pointers for standard GLES2 functions too so code resolving OpenGL 2 functions will function in any case. 2. QT_CONFIG will contain "opengl" and "dynamicgl" in dynamic builds, but never "angle" or "opengles2". 3. The preprocessor define QT_OPENGL_DYNAMIC is also available in dynamic builds. The usage of this is strongly discouraged and should not be needed anywhere except for QtGui and the platform plugin. 4. Code in need of the library handle can use QOpenGLFunctions::platformGLHandle(). The decision on which library to load is currently based on a simple test that creates a dummy window/context and tries to resolve an OpenGL 2 function. If this fails, it goes for Angle. This seems to work well on Win7 PCs for example that do not have proper graphics drivers providing OpenGL installed but are D3D9 capable using the default drivers. Setting QT_OPENGL to desktop or angle skips the test and forces usage of the given GL. There are also two new application attributes that could be used for the same purpose. If Angle is requested but the libraries are not present, desktop is tried. If desktop is requested, or if angle is requested but nothing works, the EGL/WGL functions will still be callable but will return 0. This conveniently means that eglInitialize() and such will report a failure. Debug messages can be enabled by setting QT_OPENGLPROXY_DEBUG. This will tell which implementation is chosen. The textures example application is ported to OpenGL 2, the GL 1 code path is removed. [ChangeLog][QtGui] Qt builds on Windows can now be configured for dynamic loading of the OpenGL implementation. This can be requested by passing -opengl dynamic to configure. In this mode no modules will link to opengl32.dll or Angle's libegl/libglesv2. Instead, QtGui will dynamically choose between desktop and Angle during the first GL/EGL/WGL call. This allows deploying applications with a single set of Qt libraries with the ability of transparently falling back to Angle in case the opengl32.dll is not suitable, due to missing graphics drivers for example. Task-number: QTBUG-36483 Change-Id: I716fdebbf60b355b7d9ef57d1e069eef366b4ab9 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* Fix MSVC-warnings about double to float truncation.Friedemann Kleint2014-01-241-24/+24
| | | | | Change-Id: I4aef12bd8fe37dffb06fc7d0b6a330bfc42fa270 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* expand tabs and related whitespace fixes in *.{cpp,h,qdoc}Oswald Buddenhagen2014-01-135-25/+25
| | | | | | | | the diff -w for this commit is empty. Started-by: Thiago Macieira <thiago.macieira@intel.com> Change-Id: I77bb84e71c63ce75e0709e5b94bee18e3ce6ab9e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Make OpenGL examples work on retina displays.Morten Johan Sørvig2013-11-294-5/+5
| | | | | | | | | glViewport expects device pixels, but the various geometry accessors returns values in device-independent pixels. Change-Id: I8004692de82251e4f1f25bf8f2698895f222ede3 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Remove warnings about examples not running in the Qt SimulatorTor Arne Vestbø2013-10-0911-28/+0
| | | | | | | The Qt Simulator is no longer supported with Qt 5. Change-Id: I0f98351d482dd0554ea0754746d56f94ee6bf22f Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-09-162-5/+0
|\ | | | | | | | | | | | | Conflicts: src/corelib/tools/qstring.cpp Change-Id: Ifc6cd3a0f1cf14cc0fe6cf30afb0c7f40cfdbc3e
| * examples: remove unused static const variablesMarc Mutz2013-09-142-5/+0
| | | | | | | | | | | | | | They cause warnings on Clang. Change-Id: If599303f4a00c2a24f0a7c369299f3ea6fe7fc91 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* | hellowindow: Request multisampling only when told soLaszlo Agocs2013-09-101-1/+2
|/ | | | | | | | | | Similarly to qmlscene, multisampling will only be requested when passing --multisample on the command line. This is useful because (1) multisampling is not really needed by this app and (2) it helps with broken drivers that advertise MSAA configs but break when using them. Change-Id: I50ff0db80843f488899901ab796eee588b62078b Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* QGLWidget: Support retina framebuffer grabbingGabriel de Dietrich2013-05-231-1/+1
| | | | | | | | | And update the opengl/grabber example. Task-number: QTBUG-31173 Change-Id: If09f1f3634b353d034f51240fc68be6ee7aabb48 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Update opengl/overpainting example for high-dpiGabriel de Dietrich2013-05-231-2/+4
| | | | | | | | Depends on I8e81a0c6af61df1c4497a5934e2b89bad6f616f0 to properly render the overlay. Change-Id: I7ef6b726cc06eb750e7c00beb4ec6e80e85866a1 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* Avoid harmless warning in paintedwindow exampleGunnar Sletta2013-05-142-7/+2
| | | | | | Task-number: QTBUG-31078 Change-Id: Id7221db752c06fc94e55ae859615abb2642a139b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Improved robustness of threaded rendering in hellowindow example.Samuel Rødal2013-04-252-26/+55
| | | | | | | | | | | | Previously resizes along with the animation was implemented using queued signals and slots, potentially causing a huge lag between the size of the window and the rendered contents. Now the animation is always driven by the rendering thread and is triggered based on the window's isExposed() status. Change-Id: Ifd89a63c2a436671a7b15326ff56be9ec2a5362d Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* PaintedWindow example: Use standard window flags.Friedemann Kleint2013-03-181-1/+1
| | | | | Change-Id: Ie7202efc88c176e2c39574677227c9f177c8e6d1 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Whitespace cleanup: remove trailing whitespaceAxel Waggershauser2013-03-169-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | Remove all trailing whitespace from the following list of files: *.cpp *.h *.conf *.qdoc *.pro *.pri *.mm *.rc *.pl *.qps *.xpm *.txt *README excluding 3rdparty, test-data and auto generated code. Note A): the only non 3rdparty c++-files that still have trailing whitespace after this change are: * src/corelib/codecs/cp949codetbl_p.h * src/corelib/codecs/qjpunicode.cpp * src/corelib/codecs/qbig5codec.cpp * src/corelib/xml/qxmlstream_p.h * src/tools/qdoc/qmlparser/qqmljsgrammar.cpp * src/tools/uic/ui4.cpp * tests/auto/other/qtokenautomaton/tokenizers/* * tests/benchmarks/corelib/tools/qstring/data.cpp * util/lexgen/tokenizer.cpp Note B): in about 30 files some overlapping 'leading tab' and 'TAB character in non-leading whitespace' issues have been fixed to make the sanity bot happy. Plus some general ws-fixes here and there as asked for during review. Change-Id: Ia713113c34d82442d6ce4d93d8b1cf545075d11d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Merge branch 'release' into stableSergio Ahumada2013-01-311-0/+2
|\ | | | | | | Change-Id: If3aa1b7ed75082eff6e9761ad82c83691135ed60
| * push feature conditionals down to subdirectoriesOswald Buddenhagen2013-01-311-0/+2
| | | | | | | | | | | | | | | | | | the top-level project is not installed, and the meta-project which is used instead does not know anything about conditionals. Task-number: QTBUG-28414 Change-Id: Id5785ab5f92373ece74699e3c28220fc7f9689ac Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* | Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2013-01-221-1/+1
|\| | | | | | | Change-Id: Iaa321deb9e536ce89b87a337b57634f00c770a32
| * fix a typo in cube exampleJing Bai2013-01-181-1/+1
| | | | | | | | | | Change-Id: I1ad01aa519007d203669ccc63ef7d769b7e740b5 Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* | Update copyright year in Digia's license headersSergio Ahumada2013-01-1876-76/+76
| | | | | | | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Fix crash in hellowindow example when minimizing.Friedemann Kleint2013-01-151-1/+2
|/ | | | | | | Task-number: QTBUG-28439 Change-Id: Idcea2712afdbb08b4da2fa230fd8ba6aebd380b7 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Polish code of some opengl exampleshjk2012-12-2829-255/+182
| | | | | Change-Id: If24ae1845176fc525cf6a239a5079f4802f8df3f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* add and use qtHaveModule() functionOswald Buddenhagen2012-12-211-1/+1
| | | | | | | | | | | this is much more elegant than the so far propagated !isEmpty(QT.foo.name). also replace feature-specific tests (no-gui and no-widgets) and the obsolete contains(QT_CONFIG, foo) syntax. Change-Id: Ia4b3c8febcabf9eeca67b1f9173a523820b1038b Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com> Reviewed-by: Tasuku Suzuki <stasuku@gmail.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Fix compilation of Open GL ES 2 examples when using a Qt-namespace.Friedemann Kleint2012-12-193-5/+2
| | | | | Change-Id: I174569a8c989ab53fb6b9bb700c110db2f93c2d5 Reviewed-by: hjk <qthjk@ovi.com>
* remove QT+=widgets from SUBDIRS projectsOswald Buddenhagen2012-12-171-2/+0
| | | | | | | it makes no sense whatsoever Change-Id: Ica7c764575079a12512ee2eb62a995ebbefa09a0 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* OpenGL examples: Add error message about ANGLE on WindowsThomas Hartmann2012-12-177-0/+42
| | | | | | | | | | | | | | | | | | | These OpenGL examples require a Desktop OpenGL and will not build with OpenGL ES 2.0. This means those examples do not build on Windows with the default configuration using ANGLE. ANGLE is wrapping OpenGL ES 2.0 to DirectX and does not support the full Desktop OpenGL feature set. Since this is confusing for Windows users that do not know about ANGLE this patch adds an explicit error message describing the solution. (configuring Qt with -opengl desktop) Task-number: QTBUG-28590 Change-Id: I782e6830b9e282ddcc8a2ee0a47faf3579d36aab Reviewed-by: hjk <qthjk@ovi.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
* Removed requestOrientation() API from QWindow.Samuel Rødal2012-12-061-9/+7
| | | | | | | | | | | There are no proper implementations of this API, and as it stands it only acts to confuse anyone who stumbles across it. It will be better to revisit the full cross platform orientation API story for 5.1. Change-Id: Iff7054a32c6e5e4ad0cc0493a5e4ecc35a6ec4f3 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
* Fix example documentation for OpenGL module and (widget) Tools.Gunnar Sletta2012-11-3011-129/+10
| | | | | Change-Id: Id9dc39752bcae915f618e1a5696115a5e6923251 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* centralize and fixup example sources install targetsOswald Buddenhagen2012-11-2915-63/+15
| | | | | | | | | | | | | it's confusing for the users if the examples' project files contain code to install their own sources. also, this constitutes an enormous code duplication, and lots of mistakes. consequently, automate it. more or less as a side effect, this also removes the entirely meaningless target installs in subdirs projects. Task-number: QTBUG-28184 Change-Id: I9fc1367a06db9e2c46aeb67d68729a4f67163ef9 Reviewed-by: hjk <qthjk@ovi.com>
* Add \brief to the examples.Eike Ziller2012-11-2911-11/+11
| | | | | | | | | That is used by qdoc to generate brief descriptions for the example manifests. Change-Id: I142a6d3259f90d0c9990033b3c36e139062ac343 Reviewed-by: Eike Ziller <eike.ziller@digia.com> Reviewed-by: hjk <qthjk@ovi.com>
* delete .desktop files of examplesOswald Buddenhagen2012-11-2813-143/+0
| | | | | | | | | they were added without an explanation, and they can't be particularly useful (because they contain hard-coded paths and refer to non-existing icons). Change-Id: I27e2c35375e28645b0c03449ddc7ac7017da5943 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Examples: Install to $$[QT_INSTALL_EXAMPLES]/$submodule/$examplehjk2012-11-2615-30/+30
| | | | | | | | This makes the structure of the examples after an 'make install' similar to the one in a 'developer build'. Change-Id: I9120bd741fab332e64e30adc01cefe87e5633454 Reviewed-by: Martin Smith <martin.smith@digia.com>
* Remove warnings from qtbase.Mitch Curtis2012-11-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | geometryengine.cpp: In member function 'void GeometryEngine::drawCubeGeometry(QGLShaderProgram*)': geometryengine.cpp:159:93: warning: cast to pointer from integer of different sie [-Wint-to-pointer-cast] geometryengine.cpp:167:95: warning: cast to pointer f rom integer ofdifferent size [-Wint-to-pointer-cast] benchmarking.cpp: In member function 'void TestBenchmark::multiple()': benchmarking.cpp:85:9: warning: variable 'result' set but not used [-Wunused-but-set-variable] benchmarking.cpp: In member function 'void TestBenchmark::series()': benchmarking.cpp:120:9: warning: variable 'result' set but not used [-Wunused-but-set-variable] qstandarditemmodel.cpp:2717:45: warning: unused variable 'd' [-Wunused-variable] qxcbconnection.cpp: In member function 'xcb_timestamp_t QXcbConnection::getTimestamp()': qxcbconnection.cpp:930:40: warning: suggest parentheses around assignment used as truth value [-Wparentheses] tst_qguiapplication.cpp: In constructor 'BlockableWindow::BlockableWindow()': tst_qguiapplication.cpp:340:9: warning:'BlockableWindow::enters' will be initialized after [-Wreorder] tst_qguia pplication.cpp:339:9: warning 'int BlockableWindow::leaves' [-Wreorder] tst_qguiapplication.cpp:342:12: waring: when initialized here [-Wreorder] tst_qsqltablemodel.cpp:570:10: warning: unused parameter 'value' [-Wunused-parameter] tst_qabstractitemview.cpp:1546:8: warning: unused parameter 'index' [-Wunused-parameter] Change-Id: I49c88547182e4669cfde2c2536403fc5573ca2da Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Rename all QWindow properties that have "window" in themShawn Rutledge2012-11-073-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | windowTitle, windowModality, windowIcon and so on are named that way to be similar to the ones in QWidget. However QQuickWindow inherits all of the declared properties, and we would like to have shorter property names in QML. If you are working with a Window then it's obvious the title property is the window title. Unfortunately, there must be patches in many other modules which depend on this one. In order to avoid the need to merge them all at the same time, there is also patch https://codereview.qt-project.org/#change,39001 which temporarily adds backwards-compatible accessors, which can be removed after the other modules are able to build without them. We should not rename windowState to state, because in QML, state usually drives the state machine for animation transitions etc. (although QWindow is not an Item, a user might get confused about it). Related patches are https://codereview.qt-project.org/#change,39001 https://codereview.qt-project.org/#change,37764 https://codereview.qt-project.org/#change,37765 https://codereview.qt-project.org/#change,37766 https://codereview.qt-project.org/#change,37762 Change-Id: Ie4424ec15fbdef6b29b137f90a2ae33f173edd21 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Fix hellowindow example generating excess timersMiikka Heikkinen2012-11-052-5/+8
| | | | | | | | | | | | The example was creating a new timer on every expose event, which quickly leads into massive excess of timeout signals. Fixed by only creating one timer. Task-number: QTBUG-27836 Change-Id: Ia6ed1bd9575e296f4c6c5b12509095e4d5c016dd Reviewed-by: Jonathan Liu <net147@gmail.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Fixed cube opengl exampleOliver Wolff2012-10-171-1/+2
| | | | | | | | | | | Proper variable initialization should fix crashs and black screens for that example. Task-number: QTBUG-27281 Task-number: QTBUG-27021 Change-Id: I538f233ea3c2faf6c1864c46be0d03828e92a110 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
* Fix missing return in QtOpenGl/paintedwindow example.Friedemann Kleint2012-10-131-1/+1
| | | | | | Change-Id: I17da0e93bb7c1b0cdbb5b76035ec913cbc616608 Reviewed-by: Topi Reiniö <topi.reinio@digia.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Made cube example not use glActiveTexture.Samuel Rødal2012-10-021-2/+1
| | | | | | | | | We're setting the default texture unit anyway, and glActiveTexture would require resolving through QOpenGLFunctions. Task-number: QTBUG-24555 Change-Id: Id8d660baaa1532e7b8e623673f501703c76fac65 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Added QGLPixelBuffer implementation using framebuffer objects.Samuel Rødal2012-09-273-7/+7
| | | | | | | | | | | Instead of having QGLPixelBuffer be a unusable stub implementation we deprecate it and implement it in terms of QOpenGLFramebufferObject. Framebuffer objects are anyway the recommended replacement for pixelbuffers in modern OpenGL, as the context switching overhead is avoided. Change-Id: Ia220c358ee92813e87981d297c51d84525010322 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-2277-567/+553
| | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Move opengl/wid/net example docs to proper folders.Frederik Gladhorn2012-09-2123-0/+1282
| | | | | | Change-Id: I846439a9cf7ad965ed27a00f98dbc4ff97abe73b Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Martin Smith <martin.smith@digia.com>
* examples: Mark ctor's as explicitSergio Ahumada2012-09-174-5/+5
| | | | | | | | | Make C++ class constructors that can be used with only one required argument 'explicit' to minimize wrong use of the class. Change-Id: Ida9f9c2f0c8608c35b0137b2512a6747afd69515 Reviewed-by: Mitch Curtis <mitch.curtis@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Make gui/math3d classes use float rather than qrealSean Harmer2012-09-072-38/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This corrects the mismatch between using floats for internal storage and qreal in the API of QVector*D which leads to lots of implicit casts between double and float. This change also stops users from being surprised by the loss of precision when using these classes on desktop platforms and removes the need for the private constructors taking a dummy int as the final argument. The QMatrix4x4 and QQuaternion classes have been changed to use float for their internal storage since these are meant to be used in conjunction with the QVector*D classes. This is to prevent unexpected loss of precision and to improve performance. The on-disk format has also been changed from double to float thereby reducing the storage required when streaming vectors and matrices. This is potentially a large saving when working with complex 3D meshes etc. This also has a significant performance improvement when passing matrices to QOpenGLShaderProgram (and QGLShaderProgram) as we no longer have to iterate and convert the data to floats. This is an operation that could easily be needed many times per frame. This change also opens the door for further optimisations of these classes to be implemented by using SIMD intrinsics. This needs to be applied in conjunction with https://codereview.qt-project.org/#change,33548 Task-number: QTBUG-21035 Task-number: QTBUG-20661 Change-Id: I9321b06040ffb93ae1cbd72fd2013267ac901b2e Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* qtbase: Add missing example installs and files.Friedemann Kleint2012-07-101-0/+5
| | | | | Change-Id: I071fd862e001b766c9fb13106242edf23a608663 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* OpenGL/HelloWindow example: Fix resource leaks.Friedemann Kleint2012-05-253-10/+21
| | | | | Change-Id: Icf776b5581b3a632e8cef19af1059503146c158c Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* Fixed unused parameter warning in hellowindow example.Mitch Curtis2012-05-181-0/+2
| | | | | Change-Id: I48ea19b5548a179d8116685fa481c4d1b3804bba Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* Expose QPA API under qpa/*Girish Ramakrishnan2012-05-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Made hellowindow example respect the expose event.Samuel Rødal2012-04-202-4/+11
| | | | | | | The expose event is sent when the window can start rendering. Change-Id: Ifdfb01a107e3bf665fb7be65802cdaabea4c5a34 Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
* Cleaned up examples/opengl/cube/cube.pro, removed message()Rohan McGovern2012-02-291-9/+0
| | | | | | | | | It's arbitrary and confusing to put a message(OpenGL support is enabled) in this one OpenGL example and no others, especially since the message is output during configure. Change-Id: I7b55868d10c288f3459a7fda594fea1e6f45bf9a Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com>