| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
This is needed for RVCT4
Reviewed-by: Jason Barron
|
|
|
|
|
|
|
|
|
| |
GL_OES_element_index_uint detection was not working because
EGL config wasn't yet resolved. In addition QFrameBufferObject
should use 24bit depth render buffer if extension is available.
Task-number: QTBUG-14542
Reviewed-by: Gunnar
|
|
|
|
| |
Reviewed-by: Kim
|
|
|
|
|
| |
This reverts commit 89cbb165600de9a557a8a621dc41b93c2a7a2b52.
The patch should be applied to Qt 4.8, not 4.7.
|
|
|
|
|
|
|
|
| |
If combined depth-stencil buffer is not supported, create
separate depth and stencil buffers.
Task-number: QTBUG-12861
Reviewed-by: Trond
|
|
|
|
|
| |
Task-number: QTBUG-13450
Reviewed-by: Samuel
|
|
|
|
|
|
|
|
| |
Previously, we would try to create one with samples = 1 anyway,
potentially resulting in an INVALID_VALUE error.
Task-number: QTBUG-12757
Reviewed-by: Samuel Rødal
|
|
|
|
|
|
| |
The function is marked internal for now.
Reviewed-by: Gunnar
|
|\
| |
| |
| |
| |
| | |
Conflicts:
src/corelib/codecs/qtextcodec.h
tests/auto/gestures/tst_gestures.cpp
|
| | |
|
|\ \
| |/
|/|
| |
| |
| |
| | |
Conflicts:
mkspecs/common/symbian/symbian.conf
src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
tools/assistant/tools/assistant/helpviewer.cpp
|
| |
| |
| |
| |
| |
| | |
Got rid of an ugly switch statement.
Reviewed-by: Tom
|
|/
|
|
|
| |
Task-number: QTBUG-7683
Reviewed-by: Tom Cooksey
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Qt used to store the GL extensions a particular implementation supported
in a global cache, which was initialized once and never updated.
This could cause problems because different types of context might
support different kinds of extensions (e.g. the difference between
sw and hw contexts). With this patch, the GL extensions are cached
and updated within each QGLContext. It also makes the extension
initialization lazy, which saves application initialization costs for
embedded platforms.
The patch introduces a internal cross platform QGLTemporaryContext
class that is used to create a light-weight GL context without going
via QGLWidget and friends (QWS and WinCE still have QGLWidget fallbacks
for now).
Reviewed-by: Kim
Reviewed-by: Samuel
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
|
|
|
|
|
| |
Using a QPainter on a QGLFramebufferObject will not return the
GL context to its original conditions, especially with the OpenGL2
paint engine. Update the docs to make this clearer.
Task-number: QTBUG-6712
Reviewed-by: Daniel Pope
|
|
|
|
|
|
|
|
|
| |
If the user called QGLFramebufferObject::bind()/release() during a
beginNativePainting() callout, the release() would reset the context's
fbo to zero, not the actual window surface fbo.
Task-number: QTBUG-6204
Reviewed-by: Tom
|
|
|
|
|
|
|
| |
Warnings are for binding/releasing when the current context isn't in the
same context group as the FBO was created in.
Reviewed-By: Trond
|
|
|
|
|
|
|
| |
Now QGLFBO doesn't do stacking, QGLPaintDevice's base implementation is
ok to use.
Reviewed-By: Trond
|
|
|
|
|
|
|
| |
Having this behaviour in QGLFrameBufferObject complicates alot of things
and isn't really necessary.
Reviewed-by: Tom Cooksey
|
|\ |
|
| |
| |
| |
| |
| |
| | |
Also, unbind the texture after it is initialized.
Reviewed-by: Sarah Smith
|
| |
| |
| |
| |
| |
| |
| | |
QGLFramebuffer::isBound() would crash if it was called when there
wasn't a current context bound.
Reviewed-by: Kim
|
|/
|
|
|
|
| |
We need to make sure that the FBO is bound in a valid context.
Reviewed-by: Tom
|
|
|
|
|
|
|
|
| |
The previous code was comparing QGLFramebufferObjectFormat::textureTarget()
against GL_RGB to determine if alpha was present. This should be
internalTextureFormat() instead.
Reviewed-by: Sarah Smith
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sometimes it isn't possible to arrange for the QGLFramebufferObject
to be destroyed before the QGLContext group in which it was created.
Especially during application shutdown or in applications with
multiple shared contexts.
This change modifies QGLFramebufferObject to use QGLSharedResourceGuard,
which ensures that when the last QGLContext in a sharing group is
destroyed, any remaining FBO's will revert to !isValid(). It is now
safe to destroy the context before the FBO, or the FBO before the context.
Unit test included.
Reviewed-by: Sarah Smith
|
| |
|
|
|
|
|
| |
Reviewed-by: Samuel
Reviewed-by: Tom Cooksey
|
| |
|
|
|
|
|
|
|
| |
Need to unbind the window surface FBO and re-bind it in the child
widget's context before doing a blit.
Reviewed-by: Kim
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QGLPaintDevice::format() was returning the context's format, not
the format of the window surface's FBO. This caused the OpenGL1
paint engine to think that the window didn't have depth and
stencil buffers, even though the FBO most certainly did.
This change makes QGLPaintDevice::format() virtual and overrides it
in QGLFBOGLPaintDevice to return an updated format that includes
the context parameters plus the extra features that the FBO supports.
Reviewed-by: Tom Cooksey
|
|
|
|
|
|
|
| |
A new QGLFramebufferObject constructor was added after the
QGLPaintDevice was branched which therefore didn't get patched.
Reviewed-by: Trustme
|
|
|
|
| |
Reviewed-by: Trustme
|
|
|
|
| |
Reviewed-by: Trust Me
|
|
|
|
|
|
|
|
|
|
| |
This patch changes the ordering of QGL2PaintEngine::begin a bit because
QGLPixmapData needs to use the paint engine's drawTexture method within
beginPaint().
Also, this initialises needsSync to true and removes the setState call.
So now all the state initialisation is done in ensureActive rather than
begin.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch also refactors QGL2PaintEngineEx::ensureActive() and the
logic which handles multiple paint engines rendering to the same
QGLContext. In a nut-shell:
* QGLPaintDevice::beginPaint() stores the currently bound FBO
* QGLPaintDevice::ensureActiveTarget() makes sure that GL rendering will
end up in the paint device (I.e. the right context is current and the
right FBO is bound). If a different context or FBO was bound, it is
_not_ remembered.
* QGLPaintDevice::endPaint() restores whatever FBO was bound when
beginPaint() was called.
This logic allows interleaved painter rendering to multiple FBOs and
contexts to work as expected. It also allows a stacked begin/end to work
properly when it's mixed with native GL rendering (as far as current
render target is concerened. GL state clobbering is obviously a
different topic).
QGLPaintDevice::context() also had to be made virtual as there's no good
place to call setContext. This might be possible to change in the future
though.
Finally, to make this work, QGLFramebufferObjectPrivate had to be moved
into it's own private header.
|
|
|
|
| |
Reviewed-by: Sarah Smith
|
|
|
|
| |
Reviewed-by: Sarah Smith
|
| |
|
|
|
|
|
|
|
|
| |
Avoid crashing when framebuffer object created in one context is used
in a shared context after the original context is destroyed.
Task-number: 260874
Reviewed-by: Samuel
|
|
|
|
|
|
|
|
| |
Previously, it was possible that painting using QPainter to a different
GL target (E.g. QGLWidget) would unbind the FBO. In such cases, isBound
returned true, even though the FBO wasn't bound to any context.
Reviewed-by: Samuel
|
|
|
|
|
|
|
| |
Renaming setInternalFormat() to setInternalTextureFormat() (and
similarly for the accessor) makes the API a bit more explicit.
Reviewed-by: Trond
|
|
|
|
|
|
|
|
|
|
| |
The type of GLenum was changed between 10.4 and 10.5, so to support
compiling on one and deploying on the other we need this hack. Also
get rid of the complex QGLFramebufferObjectFormat constructor in
favor of a simple default constructor and setters, which is more
Qt-ish anyway, and avoids ambiguities on mac.
Reviewed-by: Trond
|
|
|
|
| |
Reviewed-by: Trond
|
|
|
|
|
|
|
| |
Need to blit into a regular QGLFramebufferObject first to force a
multisample resolve.
Reviewed-by: Trond
|
|
|
|
| |
Reviewed-by: Trond
|
|
|
|
|
|
|
| |
It's insufficient to use a single paint engine to render to all FBOs. If
the default engine is already in used we need to create our own engine.
Reviewed-by: Trond
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|
| |
| |
| |
| | |
Reviewed-by: Trust Me
|