summaryrefslogtreecommitdiffstats
path: root/src/gui/opengl
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-11-272-0/+8
|\ | | | | | | Change-Id: Id20053d261b4fbbcc0ac8ba49dd3ef2253fa4b95
| * Deprecate implementations of functions deprecated in headersShawn Rutledge2014-11-272-0/+8
| | | | | | | | | | | | | | | | | | If you build with configure -DQT_NO_DEPRECATED this will avoid some build errors. Change-Id: If2b2e57b6919091f3f077ebc2aeca0c3fd2421aa Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-11-244-8/+36
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qiodevice.cpp src/plugins/bearer/linux_common/qofonoservice_linux.cpp src/plugins/bearer/linux_common/qofonoservice_linux_p.h src/plugins/platforms/android/qandroidplatformtheme.cpp src/tools/bootstrap/bootstrap.pro src/widgets/styles/qmacstyle_mac.mm Change-Id: Ia02aab6c4598ce74e9c30bb4666d5e2ef000f99b
| * Merge remote-tracking branch 'origin/5.4.0' into 5.4Frederik Gladhorn2014-11-212-3/+3
| |\ | | | | | | | | | Change-Id: I95f235a66ce2e9b1fa435c0f911c6f7e811755f0
| | * Correct the signature and access rights for the protected constructorLars Knoll2014-11-192-3/+3
| | | | | | | | | | | | | | | Change-Id: Ic43398a82777f3b1a95a36f60ebc4338d60c29ec Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| * | Update fbo toImage() docs regarding premultiplied alphaLaszlo Agocs2014-11-171-3/+17
| | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-42510 Task-number: QTBUG-37261 Change-Id: Ic11bec0a25e66df9d022f640621686be867e84d2 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
| * | Fix for current_fbo getting out of sync in QtOpenGLSamuel Rødal2014-11-111-2/+14
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | When using QGLWidget in combination with QOpenGLFramebufferObject from QtGui, instead of QGLFramebufferObject from QtOpenGL, the current_fbo variable doesn't get updated when framebuffer object bindings change. To ensure that the QGLWidget correctly releases the currently bound framebuffer object when using a QPainter, we keep track of whether QOpenGLFramebufferObject has modified the current FBO binding, and if that's the case we need to read the OpenGL state directly instead of relying on a cached value. Change-Id: If7e0bd936e202cad07365b5ce641ee01d2251930 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| * Skip unused function isCoreProfile() on non-ES2 platformsTor Arne Vestbø2014-11-051-0/+2
| | | | | | | | | | Change-Id: Ia84e74512e7001986c620253cdf0bc431ebc00dc Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Use the static TexStorage2|3D funcs in es buildsLaszlo Agocs2014-11-191-0/+5
| | | | | | | | | | | | | | | | | | | | When building with -opengl es2 and having ES 3.0 or newer, TexStorage must resolve directly to the functions. Other paths (desktop, ES when using dynamic on Windows) are already covered below. Change-Id: If214578bf23547d6f66a17bc999e9fabf97ba770 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* | QOpenGLTexture: don't allocate immutable multisample storage if not supportedGiuseppe D'Angelo2014-11-141-3/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | Multisample textures may be supported without multisample texture storage (e.g. from GL 3.2 to 4.2). And, immutable storage may be present, but not supporting multisample textures (GL 4.3 - 4.4). Thus, we must properly check if we can allocate immutable multisample storage, falling back to mutable multisample storage if we're lacking the feature. Task-number: QTBUG-42643 Change-Id: I1f3d5a9b4296626e40b69a06710331e49c2d1a33 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | QOpenGLTexture: be more strict with the pixel format/typesGiuseppe D'Angelo2014-11-141-3/+141
| | | | | | | | | | | | | | | | | | | | OpenGL ES may be way more pedantic than OpenGL desktop, in that it supports precise combinations of internal format, pixel format and pixel type. Fix the switches inside the code to reflect this. Task-number: QTBUG-41822 Change-Id: Ic0ed025f48a5903f334d56ce8a224dff44821c5c Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | QOpenGLTexture: move the Feature enum on top of the headerGiuseppe D'Angelo2014-11-141-22/+22
| | | | | | | | | | Change-Id: I08f5f3b2856edbdd8c88e65d5af75d760a39facb Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | QOpenGLTexture: Fix a commentGiuseppe D'Angelo2014-11-141-4/+4
| | | | | | | | | | | | | | The right function to call is allocateStorage(), not allocate(). Change-Id: Ia26817dbec710d49e511cab2ae3ca5c1fda20722 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | QOpenGLTexture: introduce support for Ericsson compressed formatsGiuseppe D'Angelo2014-11-142-0/+68
| | | | | | | | | | | | | | | | | | | | OpenGL 4.3 and OpenGL ES 3.0 have support for these formats out of the box. See http://en.wikipedia.org/wiki/Ericsson_Texture_Compression Change-Id: I661f05b9872f3aa128e39cec64df094a79736555 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | QOpenGLTexture: fix storage allocationGiuseppe D'Angelo2014-11-133-12/+159
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Storage allocation was quite wrong in the general case. 1) We can't pass unsized texture formats to immutable storage allocations, so we need to check for that. 2) Second, when allocating mutable storage on GLES, apparently the driver is allowed to peek at the external pixel type. The texture can then only get data in the pixel type passed at storage allocation time. (I guess that, for the sake of simplicity, the drivers are allowed not to perform any pixel conversions.) I'm still not convinced about the wording in the GLES2/3 specifications, but apparently ANGLE behaves this way, so we need to fix this kind of allocation. Unfortunately the only way is to ask, at storage allocation time, what's the external pixel format/type, so we need to introduce an allocateStorage overload taking those as arguments and using them for the glTexImage* calls. Task-number: QTBUG-41822 Task-number: QTBUG-42623 Change-Id: Idf745d549f01c5db3e56e86cf9b1f53a77cfccc6 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | QOpenGLTexture: move all the enums at the beginning of the classGiuseppe D'Angelo2014-11-131-78/+78
| | | | | | | | | | | | | | | | It makes more sense to put them all together, and actually the next patches will require the enums to be moved anyhow. Change-Id: Ieb897e9ea2bfef66426c72f935504a92323e2a00 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | QOpenGLTexture: revamp the feature listGiuseppe D'Angelo2014-11-131-12/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | OpenGL ES 3 adds lots of useful stuff in there, so we should start using it. Since we're there, properly reorganize the other feature checks. Note that by starting using immutable storage on GLES2, we may work around the issue reported in QTBUG-41822 (we're still not 100% sure if it's an ANGLE bug or a Qt bug). Task-number: QTBUG-41822 Change-Id: Id8cdbaaf93bc263e663db06b6fd2fee012cb29ad Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Insert #line statements in shader program.Florian Behrens2014-11-031-27/+125
| | | | | | | | | | | | | | | | | | | | This makes the GLSL compiler issue correct line numbers on errors even in the presence of the other preprocessor lines inserted by QOpenGLShaderProgram/QGLShaderProgram. Change-Id: Ief4fc1dd1e94bb2b3a1ad13fbaf62186910a4994 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | Merge "Merge remote-tracking branch 'origin/5.4' into dev" into refs/staging/devFrederik Gladhorn2014-10-282-1/+97
|\ \
| * | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-272-1/+97
| |\| | | | | | | | | | | | | | | | | | | Conflicts: src/gui/text/qfontdatabase.cpp Change-Id: I6ac1f55faa22b8e7b591386fb67f0333d0ea443d
| | * Do not parent the shader program to the QOpenGLContextJocelyn Turcotte2014-10-231-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the last QOpenGLContext in a share group is destroyed, all the remaining alive QOpenGL* objects have their resource invalidated. This happens under QOpenGLContext::destroy, but before any QObject children of the QOpenGLContext is destroyed by the QObject destructor. This is currently an issue with ANGLE that could be fixed in its own code, but that is still better for us to be covered against. This means that the OpenGL resource is assumed to be destroyed with the context by the driver, but this isn't always the same. Fix an instance of this in QOpenGLTextureGlyphCache by explicitly owning the blit QOpenGLShaderProgram instead of parenting it under the current GL context. The very same resource invalidation system will prevent anything bad to happen if the QOpenGLContext is destroyed before the QOpenGLTextureGlyphCache. Task-number: QTBUG-41588 Change-Id: Ic3bc69b07bcbdcf7d699ea9139b2e34b04e642e5 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| | * Document QOpenGLPixelTransferOptionsLaszlo Agocs2014-10-221-0/+93
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-35576 Change-Id: I178f5db5f1075b6a395cf8ff73b75fe1765540aa Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* | | Support Alpha8 and Grayscale8 natively in the OpenGL paint engineAllan Sandfeld Jensen2014-10-278-7/+75
|/ / | | | | | | | | | | | | | | | | Adds special shaders for the Alpha8 and Grayscale8 formats so that they do not need to rely on the support of GL_ALPHA and GL_LUMINANCE that has been removed from core in recent OpenGL versions. Change-Id: Ie370379b458abf2a50e252bc5099aefc1b11fb1d Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-205-19/+101
|\| | | | | | | Change-Id: If7e51514ed6832750e3ad967e4d322ccf920d2bb
| * Avoid breaking BC with new virtuals in QOpenGLPaintDeviceLaszlo Agocs2014-10-165-44/+95
| | | | | | | | | | | | Task-number: QTBUG-41046 Change-Id: Iab628d2d6811d528e2cc513b6f8a74baa628541d Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
| * Fix QOpenGLWidget on Cocoa when used as viewportLaszlo Agocs2014-10-143-1/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Having a QOpenGLWidget as a graphics view viewport was not functioning on OS X: it was showing incomplete content due to accessing the texture attached to the framebuffer object before the rendering is complete. On the normal path, when rendering is done via paintGL(), the flush was there. When used as a viewport however, this path is not used. The missing flush is now added for the other case too. For performance reasons, we will not flush on every paint engine end(). Instead, the flush is deferred until composition starts. QGLWidget also featured a weird on-by-default autoFillBackground concept. To maintain compatibility with apps that used QGLWidget as the viewport for QGraphicsView, we will now do the same for QOpenGLWidget, but only when it is used as a viewport. For regular QOpenGLWidgets autoFillBackground defaults to false, like for any other widget. The docs are extended with a small section about differences between QGLWidget and QOpenGLWidget. Task-number: QTBUG-41046 Change-Id: I42c2033fdd2ef5815783fd640fe11373761061e0 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-097-36/+39
|\| | | | | | | Change-Id: I05fcd8dc66d9ad0dc76bb7f5bae05c9876bfba14
| * Pass a sized format when creating multisampled renderbuffers on ESLaszlo Agocs2014-10-033-15/+18
| | | | | | | | | | | | | | Task-number: QTBUG-40921 Change-Id: I96b05442dd5928992dab06553b3d41feca89084d Reviewed-by: BogDan Vatra <bogdan@kde.org> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
| * Remove wrong unneeded definition in qopenglextensions_p.hAllan Sandfeld Jensen2014-10-021-12/+0
| | | | | | | | | | | | | | | | The types are already defined by qopengl.h, and the GLchar could be incorrectly defined in the Qt namespace for GLES2 namespaced builds. Change-Id: Ia2052599538af51fdadc434935d51bbfe8437453 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| * Extend QOpenGLVertexArrayObjectHelper to support glIsVertexArraysAllan Sandfeld Jensen2014-09-302-1/+13
| | | | | | | | | | | | | | This is needed for dynamicgl support in QtWebKit. Change-Id: I4d1769394ccdeaf449cac4f002c03ca8013f62f6 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| * Doc: Use title case in section1 titlesNico Vertriest2014-09-302-8/+8
| | | | | | | | | | | | | | | | Using Python script title-cased.py Task-number: QTBUG-41250 Change-Id: I00d3d7a0b30db7304a7904efd6d63abd9a7b493b Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* | QTriangulator: fix a potential out of bounds accessGiuseppe D'Angelo2014-10-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | primeForCount tries to calculate a rough base 2 logarithm of the argument, in order to access the array of deltas between primes. However, the usage of an arithmetic shift instead of a logical shift could cause "high" to stay at 32 -- if the argument is INT_MAX, for instance, the condition of the if clause in the loop is always true. The loop would go this way: * precond: low = 0 , high = 32 * i = 0 : mid = 16, if TRUE, low = 16, high = 32 * i = 1 : mid = 24, if TRUE, low = 24, high = 32 * i = 2 : mid = 28, if TRUE, low = 28, high = 32 * i = 3 : mid = 30, if TRUE, low = 30, high = 32 * i = 4 : mid = 31, if TRUE, low = 31, high = 32 and hence the subsequent access of the 33rd position of the array (by passing index 32) is out of bounds. Now the if at i = 4 is true because "1 << 31" is an arithmetic shift, not a logical one, and gives - (2^31) as result. Making it a logical shift fixes this (INT_MAX is 2^31-1, the shift gives 2^31, so the if is false). Spotted by Coverity. Change-Id: Ied89f4c87d603a209284e22c30f18a3e464d84fd Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* | QTriangulator: fix the array of deltas between primesGiuseppe D'Angelo2014-10-031-2/+2
| | | | | | | | | | | | | | | | 121e71293500e08148d3c2ce31a8e9b618943cba fixed it into QHash, so copy the same ranges here. Change-Id: Ia7738f878965b5593d6ca641d6b8911abfdd2dd3 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* | Merge remote-tracking branch 'origin/5.4' into devOswald Buddenhagen2014-09-29104-1912/+1180
|\| | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/tools/qbytearray.cpp src/gui/image/qimage.cpp src/gui/image/qppmhandler.cpp src/gui/kernel/qguiapplication.cpp src/gui/painting/qpaintengine_raster.cpp Change-Id: I7c1a8e7ebdfd7f7ae767fdb932823498a7660765
| * Update license headers and add new license filesMatti Paaso2014-09-24104-1909/+1077
| | | | | | | | | | | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
| * Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4Frederik Gladhorn2014-09-247-0/+77
| |\
| | * Merge remote-tracking branch 'origin/5.3' into 5.4Frederik Gladhorn2014-09-237-0/+77
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The isAlwaysAskOption was removed in 38621713150b663355ebeb799a5a50d8e39a3c38 so manually removed code in src/plugins/bearer/connman/qconnmanengine.cpp Conflicts: src/corelib/global/qglobal.h src/corelib/tools/qcollator_macx.cpp src/corelib/tools/qstring.cpp src/gui/kernel/qwindow.cpp src/gui/kernel/qwindow_p.h src/gui/text/qtextengine.cpp src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h src/plugins/platforms/android/qandroidinputcontext.cpp src/plugins/platforms/xcb/qglxintegration.cpp src/plugins/platforms/xcb/qglxintegration.h src/plugins/platforms/xcb/qxcbconnection_xi2.cpp src/testlib/qtestcase.cpp src/testlib/qtestlog.cpp src/widgets/dialogs/qfiledialog.cpp src/widgets/kernel/qwindowcontainer.cpp tests/auto/corelib/tools/qcollator/tst_qcollator.cpp tests/auto/gui/text/qtextscriptengine/tst_qtextscriptengine.cpp tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp Change-Id: Ic5d4187f682257a17509f6cd28d2836c6cfe2fc8
| | | * Add missing private headers warningSamuel Gaist2014-09-047-0/+77
| | | | | | | | | | | | | | | | | | | | Change-Id: I7a4dd22ea3bcebf4c3ec3ad731628fd8f3c247e0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * | | Use NonPremultipliedImageSrc shader when painting non-premuled imagesAllan Sandfeld Jensen2014-09-231-3/+23
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | Recognize non-premultiplied images and draw them using the existing NonPremultipliedImageSrc shader so we save premultiplying them on the CPU. Change-Id: I3dfc8f9385ff91502d64ccabf4bf54049cc28040 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
| * | Destroy the QOpenGLTextureBlitter in the destructorJørgen Lind2014-09-101-0/+3
| | | | | | | | | | | | | | | | | | | | | if it has not already been destroyed Change-Id: If9a29da25eb23d5d65204eecabe095df215737ee Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | | Add Grayscale8 and Alpha8 formats to QImage and drawingAllan Sandfeld Jensen2014-09-171-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extend the QImage format with two 8-bit grayscale and alpha formats. These formats have the advantage over Indexed8 that they have simpler conversion and can be rendered to by the raster engine. [ChangeLog][QtGui][QImage] Added support grayscale and alpha 8-bit formats which can also be rendered to. Change-Id: I4343c80a92a3dda196aa38d0c3ea251b094fc274 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* | | Merge remote-tracking branch 'origin/5.4' into devOswald Buddenhagen2014-09-104-7/+13
|\| | | | | | | | | | | Change-Id: Id4997327cc01bd4bb397a463bdffbd15e80398ef
| * | Enhance the VAO docsLaszlo Agocs2014-09-081-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | Make it clear that the class is usable regardless of the OpenGL version the app is targeting. It may just do nothing. Change-Id: I50e68a46e36ef1f4694016311af93c6f8719ce4f Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| * | Remove GLdouble and GL_DOUBLE typedefs for OpenGL ES 2.Gunnar Sletta2014-09-052-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | We have no business defining types which come from another library. These originally stem from the S60 port without further explanation and Qt and its examples today compile without them, so remove them. Change-Id: I683ea897c00ab3a1f7c809c45352fe590ae9a41f Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| * | QOpenGL2GradientCache::getBuffer: calculate hash value outside critical sectionMarc Mutz2014-09-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code doesn't touch any member variables, so it doesn't need mutex protection. Reducing the time spent under the mutex allows a higher speedup (Amdahl's Law), so do it. Also made the mutex locker const to indicate it is never unlock()ed again. Change-Id: Ic50b827c0e34d39cbddc7ec83675b568a9c33f6d Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
* | | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-09-015-50/+135
|\| | | | | | | | | | | Change-Id: I2811ff0b9d4097f0be60ff16e9664a5060cff23e
| * | Code cleaning in qt_gl_resolve_extensionsAllan Sandfeld Jensen2014-08-281-34/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | Moves feature checks so OpenGL vs OpenGLES is only tested one way and extensions so they are not tested if already required by their version. Change-Id: Ia77f6ea924559fa7a428beb6316ae392063dfc4f Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| * | QOpenGLTextureBlitter: Do not call vao functions if it failed to createLaszlo Agocs2014-08-251-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | Follow the good practice of checking for isCreated() before calling VAO functions like bind(). Use also the vao binder where applicable. Change-Id: Ib827f3bce838396bf2e08f9480fa63801d4d3a50 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
| * | Do not resolve core functions on GLES in texture helperLaszlo Agocs2014-08-231-0/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As the spec for eglGetProcAddress says, some implementations may not return function pointers for core functions. Similarly to how we cannot get OpenGL 1.0/1.1 functions with WGL for example. To make sure QOpenGLTexture does not just crash with such implementations, we simply use the statically exported functions in -opengl es2 builds. Change-Id: I213bfcc21e58888b17e0ebcd0a26f26f77517e40 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| * | If a tess/compute shader compilation fails, print its type correctlyGiuseppe D'Angelo2014-08-181-7/+18
| | | | | | | | | | | | | | | Change-Id: I7536b596b890ed304846572b3068b3e932c0f594 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>