summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/eglfs/qeglfsbackingstore.cpp
Commit message (Collapse)AuthorAgeFilesLines
* eglfs: Move reusable functionality to eglconvenienceLaszlo Agocs2014-01-171-157/+0
| | | | | | | | | | | | | | | | | | | | | | | | The cursor implementation is generic GL(ES) code that should be shared by all the present and future egl-based embedded platform plugins. Follow the pattern of QEGLPlatformContext and move this class into eglconvenience as QEGLPlatformCursor. Similarly, the common bits from the context implementation context are moved back to EGLPlatformContext. eglconvenience has now base classes for integration, screen, window, etc. too. By using these, eglfs becomes much smaller and cleaner. This also paves the way for creating new, separate EGL-based platform plugins for Android, embedded Linux, etc. Also added some documentation to each of the base classes. devicediscovery is now fixed to be usable on any platform. The implementation in this case is naturally a dummy one. This finally allows using it from anywhere without myriads of ugly ifdefs. Change-Id: I02946e360c04e02de7fe234a23a08320eff4ccf5 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* Remove the GLES 2 dependency for eglfs and kmsJorgen Lind2013-11-191-0/+1
| | | | | Change-Id: If7b80487e01db726367f5a67d2860073f60a0844 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* eglfs: Make backingstore handle unexpected scenarios gracefullyLaszlo Agocs2013-10-291-2/+2
| | | | | | | | | | | | On platforms other than Android eglfs does not allow having multiple windows when one of the windows is OpenGL. On Android however this has to be handled silently, without aborting the application. The backingstore lacked the necessary checks so QGLWidget-based apps were crashing. This is now corrected. Task-number: QTBUG-34412 Change-Id: Ifb469fa9ef391b24aed3942430c0347276809ba5 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* eglfs: Separate compositor and improve raster window supportLaszlo Agocs2013-10-091-158/+19
| | | | | | | | | | | Separating the compositor into a separate source file improves the chances of possible future reuse and paves the way to supporting multiple GL windows. Tooltips are now working too. Implemented a few window functions like raise() and lower(). Fixed the qFatal for multiple GL windows to be raised in non-SDK based Android builds too. Change-Id: Id94d2fb2a4382766f3d130eebe1e6f397a535852 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* eglfs: Support multiple raster windowsLaszlo Agocs2013-09-201-81/+151
| | | | | | | | | | | | | | | | | | | | | Allow widget apps with popups and multiple top-level widgets to function on the eglfs platform. GL and Quick2 apps are not affected. Instead of trying to create a native window and EGL surface for each window, do it only for the window that is created first. This first window is forced to fullscreen as usual. Later windows however are treated differently: These will not have a native window, surface or context, and keep their normal size. All the textures belonging to the raster windows are then rendered in one step, using a stacking order maintained based on visibility changes and window activation. Note that this will only help apps that create a main window first and have everything else inside that window or on top of it as menus, dialogs, popups, etc. Change-Id: Ia435458ba81bf3c35cc8f61bcb2d2a50cf17f0e3 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com> Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* eglfs: Do not leak the QOpenGLShaderProgram instanceLaszlo Agocs2013-09-171-0/+1
| | | | | Change-Id: Ia0691b99d57986328b9dd81e527ea4f402d7bc5b Reviewed-by: Andy Nichols <andy.nichols@digia.com>
* remove unnecessary beginPaint and endPaint overridesShawn Rutledge2013-09-161-4/+0
| | | | | | | | | | | | | QPlatformBackingStore::endPaint does not take a QRegion parameter. 6ce6b8a378b0d97ba950240ffb048a4b7e485235 set the API, but the platform implementations were not all synced up since then. There was anyway no point in overriding beginPaint and endPaint on platforms which don't need to do anything there. This fixes clang warnings of the form QXcbBackingStore::endPaint hides overloaded virtual function Change-Id: Id6cd0fc2c831a34576ac2c73eeb0d5741d26e622 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* eglfs: Fix updates when resizing backing storeEskil Abrahamsen Blomfeldt2013-07-311-1/+3
| | | | | | | | | | We would resize the backing store without resizing the viewport, which would cause all subsequent blits of the backing store to the screen to look broken. Task-number: QTBUG-32146 Change-Id: I65bae051b7cfbbc61fc285e4baa74685d5639569 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
* EGLFS and MinimalEGL windows are not marked as OpenGL surfacesAllan Sandfeld Jensen2013-07-261-2/+0
| | | | | | | | | Several QOpenGLContext methods fails incorrectly on QWindows from EGL or MinimalEGL. This is happens because they are incorrectly marked as raster surfaces instead of OpenGL surfaces. Change-Id: Ic9b3859915a9049fce442216b01dce89521fa5ee Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-181-1/+1
| | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-221-24/+24
| | | | | | | | 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>
* Revert "Fix transformation in eglfs backingstore"Jon Trulson2012-08-291-2/+2
| | | | | | | | | | This reverts commit 12491f35bbea7008b15fb0ba0ee7ea5bf6eb6b6c. This change is not needed on eglfs. It causes widget based apps to be rendered with Y inverted. Change-Id: Idb23fa22c438442b81882b64bf84d6aa0662d27b Reviewed-by: Laszlo Agocs <lagocs83@gmail.com>
* Fix transformation in eglfs backingstoreLaszlo Agocs2012-08-221-2/+2
| | | | | | | | | | | | While not visible with forced-fullscreen windows, the formula used to set up positioning on the Y axis is wrong. (with the GL coordinate system Y goes 1..-1 when moving top-to-bottom) Taken from kms' version of the backingstore which had the formulas corrected. Change-Id: I460a4eec925e47b08453af4e093d719567af22ea Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Made eglfs work with backing store based applications again.Samuel Rødal2012-08-151-1/+1
| | | | | | | | | Make sure we pick the same config for the context and window surface, and do not create unnecessary window surfaces for the desktop widget. Change-Id: I3c8fb3df9ab8a658196e41dfa1705cfca625a2d7 Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com> Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
* eglfs refactor: move window creation into qeglfswindowGirish Ramakrishnan2012-06-121-2/+3
| | | | | | | | | | This potentially allows the creation of multiple QWindows. The platform context is now in a seperate file and the integration provides a new instance of the context allowing creation of multiple contexts. Change-Id: If2b6fa29b573d87c0a4cd0a8eff1f044bd1ff9b8 Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* eglfs: implement hardware cursor for the raspberry-piGirish Ramakrishnan2012-06-011-1/+1
| | | | | | | | | | | | | | | | The cursor is rendered on a dispmanx layer and moved around. This approach saves us from having to update the underlying window each time the cursor moves. Dispmanx layers cannot be moved to negative coords. As a result, currently it is not possible to move to a location less than the hostpot. A future commit will fix this problem. Change-Id: Ida5ee961d03a6929860c515e503482756a4913ed Reviewed-by: Johannes Zellner <johannes.zellner@nokia.com> Reviewed-by: Andy Nichols <andy.nichols@nokia.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* eglfs: keep context active only during flushGirish Ramakrishnan2012-05-301-2/+4
| | | | | | | | The OpenGL context needs to be current only while flushing the backing store. Change-Id: I4d6a10f22bcfe04f35a14a690180237f6c691829 Reviewed-by: Andy Nichols <andy.nichols@nokia.com>
* eglfs: remove support for widget rendering using opengl paint engineGirish Ramakrishnan2012-05-291-20/+0
| | | | | | | | | | The eglfs backing store code can render either using the raster paint engine (through QImage) or using the opengl paint engine. Rendering quality using the opengl paint engine is pretty poor so remove it. Change-Id: I64061ceb3a480049cfebe61aaf172ad1f1da7042 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* eglfs: release shader program after useGirish Ramakrishnan2012-05-291-1/+1
| | | | | Change-Id: Ibe89de88c6c01d182a240def92eb78c0cc896463 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Add eglfs cursor supportGirish Ramakrishnan2012-05-161-0/+5
| | | | | | | | cursor-atlas.png was generated from existing cursor images (qttools/src/shared/qtpropertybrowser/images/) Change-Id: Ic4b396590eaec93e14a4b0915b15f735f5b1a5f5 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Optimized EGLFS backing store a bit.Samuel Rødal2012-04-181-8/+29
| | | | | | | | Avoid expensive image copying when possible. Change-Id: Ia79919ea7652d7bfdd744198c494c20cb78a0f48 Reviewed-by: Donald Carr <donald.carr@nokia.com> Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* Fixed RGBA <-> BGRA bug in EGLFS backingstore.Samuel Rødal2012-04-171-1/+1
| | | | | | | | | Better to swizzle in the fragment shader than to do a byte swapping operation on the CPU. Change-Id: I01420c3a5ceb5309f5648e1f86979b025bdd88aa Reviewed-by: Donald Carr <donald.carr@nokia.com> Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* Implemented raster based backing store for EGLFS plugin.Samuel Rødal2012-04-161-2/+121
| | | | | | | This improves quality of rendering for QWidget-based applications a bit. Change-Id: I6b832d1de7e722f4dbe4e82882f5db35f0b8c30c Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* Make QEglFSBackingStore use QtGui-only APIs.Samuel Rødal2012-03-231-45/+32
| | | | | | | | | We now have better replacements for QGLPaintDevice etc. Change-Id: I3ac563f0ac26a563b3c788d16c77e0237d9d96d9 Reviewed-by: Donald Carr <donald.carr@nokia.com> Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com> Reviewed-by: Andy Nichols <andy.nichols@nokia.com>
* Remove widgets dependency from eglfsDonald Carr2012-03-091-6/+15
| | | | | | | | | | | | eglfs uses the (old) OpenGL paint engine for paint operations. This drags in a QWidget dependency and hence everything bar the kitchen sink. This change gets eglfs buildable without widget support although anything which relies on a QPaintDevice will end up rendering nothing to the screen. (Similar to the QWS simplegl driver) Change-Id: If7fcdb79038ef7568e771402fd1667bc0318ff5f Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com> Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
* Remove "All rights reserved" line from license headers.Jason McDonald2012-01-301-1/+1
| | | | | | | | | | 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>
* Update contact information in license headers.Jason McDonald2012-01-231-1/+1
| | | | | | | Replace Nokia contact email address with Qt Project website. Change-Id: I431bbbf76d7c27d8b502f87947675c116994c415 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update copyright year in license headers.Jason McDonald2012-01-051-1/+1
| | | | | Change-Id: I02f2c620296fcd91d4967d58767ea33fc4e1e7dc Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Fix debug output in eglfs with QEGL_EXTRA_DEBUG enabledJohannes Zellner2011-12-131-4/+4
| | | | | Change-Id: I615a953b52184d01c5b1b78d1cff283f94c458d9 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Copy core GL functionality to QtGui with QGL -> QOpenGL naming.Samuel Rødal2011-08-291-2/+2
| | | | | | Change-Id: Ibc989afa4a30dd184d41d1a1cd89f97196e48855 Reviewed-on: http://codereview.qt.nokia.com/3710 Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Get the eglfs plugin compiling.Samuel Rødal2011-07-261-0/+104
Change-Id: I5addb1a2593a670d559b9fbf9183f52af410895b Reviewed-on: http://codereview.qt.nokia.com/2176 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>