summaryrefslogtreecommitdiffstats
path: root/src/opengl/qgl_egl.cpp
Commit message (Collapse)AuthorAgeFilesLines
* QGLContext on EGL gets an additional QEglProperties static field applied to ↵Michael Dominic K2011-04-011-0/+7
| | | | | | | | | every window surface created. Conflicts: src/opengl/qgl_egl.cpp src/opengl/qgl_p.h
* Changes to driver workarounds.Robin Burchell2011-03-171-2/+25
| | | | | | | | | | | | - Force enable brokenFBOReadBack on non-Nokia v1.4 SGX drivers (as this is apparantly not fixed, except on the Nokia drivers) - Add debug when workarounds are enabled to ease debugging This fixes the following MeeGo bug: https://bugs.meego.com/show_bug.cgi?id=5616 Merge-request: 1144 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Update copyright year to 2011.Jason McDonald2011-01-101-1/+1
| | | | Reviewed-by: Trust Me
* Add work around for bug when painting w/glTexSubImage into large textureEskil Abrahamsen Blomfeldt2010-12-161-0/+2
| | | | | | | | | | | | | | It seems that copying small rectangles from glTexSubImage2D into a texture which is 2048x2048 is busted on some SGX drivers, even though the driver reports 2048 as the maximum texture size. This caused text to turn into flickering garbage once the texture glyph cache had grown to its max size (e.g. when painting very many Chinese glyphs.) To work around the problem, we hardcore the maximum texture height to 1024 on this driver so that the texture glyph cache is reset whenever that size is exceeded. Task-number: QT-3971 Done-with: Samuel
* Doc: Fixing typoSergio Ahumada2010-11-091-1/+1
|
* Added support for blitting to native child widgets in GL window surface.Samuel Rødal2010-10-221-2/+2
| | | | | | | | Support blitting by copying from the top-level window's back buffer to a temporary texture and then blitting from the texture to the native child widget. Performance suffers, but it's better than failing. Reviewed-by: Gunnar Sletta
* Don't pretend to support single buffered EGL surfaces.Trond Kjernåsen2010-09-241-0/+1
| | | | | Task-number: QTBUG-12865 Reviewed-by: Samuel
* Introduce QtOpenGL module for Symbian.Jani Hautakangas2010-08-201-1/+1
| | | | | Task-number: QT-2139 Reviewed-by: Gunnar Sletta
* Fixed autotest failure in tst_qgl::clipTest.Samuel Rødal2010-08-121-0/+1
| | | | | | | | | Change fb00d5003ac5d91953a95d8164180f8f56a2b0f2 introduced a slight behavioural change by leaving the surface handle dangling. We need to unset the surface handle even if we don't own it to make sure we don't access it again. Reviewed-by: Gunnar Sletta
* QGLWindowSurface support for partial updates via EGL_NOK_swap_region2Michael Dominic K2010-07-011-0/+8
| | | | | | | (if extension available). Merge-request: 712 Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Check for EGLSurface leak only when paint device is a QGLWidget.Michael Dominic K2010-07-011-9/+12
| | | | | | | (not QGLWindowSurface for example). Merge-request: 722 Reviewed-by: Trond
* EGL plane levels are the same as all other GL backends.Trond Kjernåsen2010-06-251-1/+1
| | | | | | | Qt has never used level 1 for the main plane, it's always been 0 and will always be 0. Reviewed-by: Harald Fernengel
* Fix another potential strstr() crash for EGL based GL apps.Trond Kjernåsen2010-06-111-1/+2
| | | | | Task-number: releated to QT-3498 Reviewed-by: Samuel
* Fixed an on-exit application crash for GL apps using EGL.Trond Kjernåsen2010-06-111-1/+1
| | | | | Task-number: QT-3498 Reviewed-by: Samuel
* Added workarounds for two MBX/SGX specific GL ES bugs/problems.Trond Kjernåsen2010-05-141-1/+19
| | | | | | | | | | | | | | The workaround flags are put into the platform independent section for now, since there might be a general need for these as we expand our GL and GL ES usage. The workaround_needsFullClearOnEveryFrame flag covers the case where you get a performance penalty on PowerVR hw if all rendering buffers are not cleared. The workaround_brokenFBOReadBack flag covers the case where copying pixels from a texture (e.g. via glCopyTexSubImage2d()) bound in an FBO doesn't work. Task-number: QTBUG-10670 Reviewed-by: Gunnar
* Cleanup & remove unused function overloads from QEgl* APIsTom Cooksey2010-04-161-1/+1
| | | | | | This should make stubbing out these APIs slightly easier. Reviewed-By: TrustMe
* Remove debug output from qt_eglproperties_set_glformatTom Cooksey2010-03-111-3/+1
| | | | Reviewed-By: TrustMe
* Delete the QGLContext in ~QX11GLPixmapDataTom Cooksey2010-03-111-2/+3
| | | | | | | | This also includes changes which allow QGLContext to not own it's own QEglContext. With X11GL, the QEglContext gets reused by multiple QGLContexts so it is important QGLContext doesn't delete it. Reviewed-By: TrustMe
* Update QGLFormat from EGLConfig properlyTom Cooksey2010-03-101-38/+32
| | | | | | | Previously, some members of QGLFormat (like alphaBufferSize) would be left to the initial -1 value. Reviewed-By: TrustMe
* Make sure 16-bit EGL configs are chosen over 32-bit configsTom Cooksey2010-03-101-28/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We want to make sure 16-bit configs are chosen over 32-bit configs as they will provide the best performance. The EGL config selection algorithm is a bit stange in this regard: The selection criteria for EGL_BUFFER_SIZE is "AtLeast", so we can't use it to discard 32-bit configs completely from the selection. So it then comes to the sorting algorithm. The red/green/blue sizes have a sort priority of 3, so they are sorted by first. The sort order is special and described as "by larger _total_ number of color bits.". So EGL will put 32-bit configs in the list before the 16-bit configs. However, the spec also goes on to say "If the requested number of bits in attrib_list for a particular component is 0, then the number of bits for that component is not considered". This part of the spec also seems to imply that setting the red/green/blue bits to zero means none of the components are considered and EGL disregards the entire sorting rule. It then looks to the next highest priority rule, which is EGL_BUFFER_SIZE. Despite the selection criteria being "AtLeast" for EGL_BUFFER_SIZE, it's sort order is "smaller" meaning 16-bit configs are put in the list before 32-bit configs. So, to make sure 16-bit is preffered over 32-bit, we must set the red/green/blue sizes to zero. This has an unfortunate consequence that if the application sets the red/green/blue size to 5/6/5 on the QGLFormat, they will probably get a 32-bit config, even when there's an RGB565 config avaliable. Oh well. Reviewed-By: TrustMe
* Port QX11GLPixmapData & QX11GLWindowSurface to new QEgl APITom Cooksey2010-03-051-6/+9
| | | | | | | It's still just as buggy, but at least it allows us to remove a lot of crud from qgl_x11egl.cpp. Reviewed-By: TrustMe
* Add and use QGLContextPrivate::eglSurfaceForDevice()Tom Cooksey2010-03-021-3/+30
| | | | | | | | | The QGLContext only stores the EGLSurface for QWidgets & QGLWidgets, other device types like QPixmap & QGLPixelBuffer store the surface themsselves. With this patch it is possible to create a QGLContext on a QPixmap, make it current and render GL to that QPixmap on X11. Reviewed-By: TrustMe
* Move EGL surface type setting to new QEglProperties::setDeviceTypeTom Cooksey2010-03-021-33/+29
| | | | | | Also renamed qt_egl_set_format->qt_eglproperties_set_glformat Reviewed-By: TrustMe
* Move static methods from QEglContext to QEgl namespaceTom Cooksey2010-03-021-1/+1
| | | | Reviewed-By: Aleksandar Sasha Babic
* Merge branch '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-01-071-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1: QIODevice: Fix readAll() Temporary hackiesh solution to prevent BOM in the xml data. Fixed qxmlstream autotest when using shadow builds. Attempt at readding the capital P headers for Phonon Remove special Phonon processing from syncqt. Use the lowercase/shortname.h headers for Phonon includes Fixes a crash when setting focus on a widget with a focus proxy. Update copyright year to 2010 doc: Clarified activeSubControls and subControls. Remove warning "statement with no effect" doc: Clarified that .lnk files are System files on Windows.
| * Update copyright year to 2010Jason McDonald2010-01-061-1/+1
| | | | | | | | Reviewed-by: Trust Me
* | Remove QGLShareRegister and transfer its functionality to QGLContextGroupRhys Weatherley2010-01-041-1/+1
|/ | | | | Task-number: QT-2600 Reviewed-by: Samuel
* Fix EGL surface leaks when re-parenting QGLWidget on X11/EGLTom Cooksey2009-12-151-13/+21
| | | | | | | | | | | | When a QGLWidget is re-parented, it's native X11 window usually gets destroyed and re-created. This also happens when you set a window attribute or flag. On EGL, we must destroy the surface for the window before destroying the window itself, otherwise we can leak the surface. This also fixes lots of BadDrawable errors when running the autotests (which were due to surface leaks!). Reviewed-By: TrustMe
* EGL_SAMPLES should be 1, not -1, to select number of samplesRhys Weatherley2009-10-091-1/+1
| | | | Reviewed-by: trustme
* Fix BadDrawable errors when re-parenting a QGLWidget on X11/EGLTom Cooksey2009-10-011-2/+13
| | | | | | | | | | It's actually not really reparenting, but calling setWindowFlags which triggered the errors. But setWindowFlags causes a re-parent. The context isn't really the right please to free the surface, but fixing that is a much more intrusive change. Reviewed-By: TrustMe
* Fix a memory leak of EGLSurface's in QGLContextRhys Weatherley2009-09-301-2/+4
| | | | Reviewed-by: Julian de Bhal
* Move common EGL functions to qgl_egl.cppRhys Weatherley2009-09-251-0/+37
| | | | | | | | There were several copies of the same stubbed functions in qgl_wince.cpp, qgl_qws.cpp, and qgl_x11egl.cpp. Move them all to a common location for easier maintainence. Reviewed-by: Sarah Smith
* Start to separate the EGLSurface from QEglContext in QtOpenGLRhys Weatherley2009-09-241-0/+52
| | | | | | | Also, move the EGL makeCurrent(), doneCurrent(), swapBuffers(), and reset() functions into the common qgl_egl.cpp. Reviewed-by: Sarah Smith
* Update license headers again.Jason McDonald2009-09-091-4/+4
| | | | Reviewed-by: Trust Me
* Merge branch '4.5' into 4.6Thiago Macieira2009-08-311-13/+13
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: demos/boxes/glshaders.cpp demos/boxes/vector.h demos/embedded/fluidlauncher/pictureflow.cpp demos/embedded/fluidlauncher/pictureflow.h doc/src/desktop-integration.qdoc doc/src/distributingqt.qdoc doc/src/examples-overview.qdoc doc/src/examples.qdoc doc/src/frameworks-technologies/dbus-adaptors.qdoc doc/src/geometry.qdoc doc/src/groups.qdoc doc/src/objecttrees.qdoc doc/src/platform-notes.qdoc doc/src/plugins-howto.qdoc doc/src/qt3support.qdoc doc/src/qtdbus.qdoc doc/src/qtdesigner.qdoc doc/src/qtgui.qdoc doc/src/qtmain.qdoc doc/src/qtopengl.qdoc doc/src/qtsvg.qdoc doc/src/qtuiloader.qdoc doc/src/qundo.qdoc doc/src/richtext.qdoc doc/src/topics.qdoc src/corelib/tools/qdumper.cpp src/gui/embedded/qkbdpc101_qws.cpp src/gui/embedded/qkbdsl5000_qws.cpp src/gui/embedded/qkbdusb_qws.cpp src/gui/embedded/qkbdvr41xx_qws.cpp src/gui/embedded/qkbdyopy_qws.cpp src/gui/embedded/qmousebus_qws.cpp src/gui/embedded/qmousevr41xx_qws.cpp src/gui/embedded/qmouseyopy_qws.cpp src/gui/painting/qpaintengine_d3d.cpp src/gui/painting/qwindowsurface_d3d.cpp src/opengl/gl2paintengineex/glgc_shader_source.h src/opengl/gl2paintengineex/qglpexshadermanager.cpp src/opengl/gl2paintengineex/qglpexshadermanager_p.h src/opengl/gl2paintengineex/qglshader.cpp src/opengl/gl2paintengineex/qglshader_p.h src/opengl/util/fragmentprograms_p.h src/plugins/kbddrivers/linuxis/linuxiskbdhandler.cpp src/plugins/mousedrivers/linuxis/linuxismousehandler.cpp src/script/parser/qscript.g src/script/qscriptarray_p.h src/script/qscriptasm_p.h src/script/qscriptbuffer_p.h src/script/qscriptclass.cpp src/script/qscriptclassdata_p.h src/script/qscriptcompiler.cpp src/script/qscriptcompiler_p.h src/script/qscriptcontext.cpp src/script/qscriptcontext_p.cpp src/script/qscriptcontext_p.h src/script/qscriptcontextfwd_p.h src/script/qscriptecmaarray.cpp src/script/qscriptecmaarray_p.h src/script/qscriptecmaboolean.cpp src/script/qscriptecmacore.cpp src/script/qscriptecmadate.cpp src/script/qscriptecmadate_p.h src/script/qscriptecmaerror.cpp src/script/qscriptecmaerror_p.h src/script/qscriptecmafunction.cpp src/script/qscriptecmafunction_p.h src/script/qscriptecmaglobal.cpp src/script/qscriptecmaglobal_p.h src/script/qscriptecmamath.cpp src/script/qscriptecmamath_p.h src/script/qscriptecmanumber.cpp src/script/qscriptecmanumber_p.h src/script/qscriptecmaobject.cpp src/script/qscriptecmaobject_p.h src/script/qscriptecmaregexp.cpp src/script/qscriptecmaregexp_p.h src/script/qscriptecmastring.cpp src/script/qscriptecmastring_p.h src/script/qscriptengine.cpp src/script/qscriptengine_p.cpp src/script/qscriptengine_p.h src/script/qscriptenginefwd_p.h src/script/qscriptextenumeration.cpp src/script/qscriptextenumeration_p.h src/script/qscriptextqobject.cpp src/script/qscriptextqobject_p.h src/script/qscriptextvariant.cpp src/script/qscriptfunction.cpp src/script/qscriptfunction_p.h src/script/qscriptgc_p.h src/script/qscriptmember_p.h src/script/qscriptobject_p.h src/script/qscriptprettypretty.cpp src/script/qscriptprettypretty_p.h src/script/qscriptvalue.cpp src/script/qscriptvalueimpl.cpp src/script/qscriptvalueimpl_p.h src/script/qscriptvalueimplfwd_p.h src/script/qscriptvalueiteratorimpl.cpp src/script/qscriptxmlgenerator.cpp src/script/qscriptxmlgenerator_p.h tests/auto/linguist/lupdate/testdata/recursivescan/project.ui tests/auto/linguist/lupdate/testdata/recursivescan/sub/finddialog.cpp tests/auto/qkeyevent/tst_qkeyevent.cpp tools/linguist/shared/cpp.cpp
| * Update tech preview license header.Jason McDonald2009-08-311-13/+13
| | | | | | | | Reviewed-by: Trust Me
| * Update license headers.Jason McDonald2009-08-111-1/+1
| | | | | | | | Reviewed-by: Trust Me
* | Update contact URL in license headers.Jason McDonald2009-08-121-1/+1
| | | | | | | | Reviewed-by: Trust Me
* | Merge license header changes from 4.5Volker Hilsheimer2009-06-161-2/+2
|\ \ | |/
| * Update license headers as requested by the marketing department.Jason McDonald2009-06-161-2/+2
| | | | | | | | Reviewed-by: Trust Me
| * Long live Qt 4.5!Lars Knoll2009-03-231-0/+131
|
* Fix changed behaviour after QEglProperties::value() patchTom Cooksey2009-05-221-4/+4
| | | | | | | Patch 27fadaa7eb2d58b47e7f0f508e3402e7a8de3894 (Make QEglProperties::value() return the EGL default if not set) changed behaviour. This patch reverts this change to behaviour but keeps QEglProperties::value() returning the EGL default value.
* Long live Qt!Lars Knoll2009-03-231-0/+131