cairo/boilerplate
Bryce Harrington 8ff3019f51 gl: Add support for OpenGL ES 3.0
This improves the OpenGL ES support to extend it to version 3.0.
A number of new features are available in glesv3 including creation of
multi-sampled renderbuffers.  These renderbuffers can be blitted to
single sample textures (but not the other way around).  Other features
such as PBO for image uploading, are left as followon work.

For this preliminary implementation, glesv3 backends always create
renderbuffers, which can be set as single sample or multisample.  The
renderbuffer's content is blitted to the texture only when used as a
source or a mask.

Images uploaded to a texture stay there until the surface is used as a
rendering target, at which point its painted to the renderbuffer.

This patch is heavily based off of Henry Song's initial GLESv3 patch
6f7f3795 from his cairogles fork of Cairo, and incorporates subsequent
fixes and pertinent refactorings from his trunk and review feedback from
Uli.

This implements the *functional* support for glesv3, excluding the
various optimization work to utilize its features.  Rendering and
performance should not be expected to improve notably from pure glesv2.
As the GL backend for Cairo remains "experimental", these changes should
likewise be considered as such.

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
2017-09-13 15:18:04 -07:00
..
.gitignore gitignore: Ignore .trs (test results) 2015-07-31 17:56:54 -07:00
cairo-boilerplate-beos.cpp whitespace: Fixup formal arguments and tabs in boilerplate/ and perf/. 2010-06-24 15:02:53 +03:00
cairo-boilerplate-cogl.c boilerplate: Remove unused thread id parameter 2011-11-12 20:49:08 +01:00
cairo-boilerplate-directfb.c boilerplate: Remove unused thread id parameter 2011-11-12 20:49:08 +01:00
cairo-boilerplate-drm.c boilerplate: Maintain consistency in the usage of switch cases 2014-05-06 10:22:43 -07:00
cairo-boilerplate-egl.c gl: Add support for OpenGL ES 3.0 2017-09-13 15:18:04 -07:00
cairo-boilerplate-getopt.c whitespace: Fixup formal arguments and tabs in boilerplate/ and perf/. 2010-06-24 15:02:53 +03:00
cairo-boilerplate-getopt.h [cairo-boilerplate] Silence compiler warning. 2008-06-13 21:34:43 +01:00
cairo-boilerplate-glx.c boilerplate: Fix list termination for glXChooseVisual 2015-07-30 17:16:53 -07:00
cairo-boilerplate-pdf.c Refactor ARRAY_LENGTH macro definitions in test code 2014-11-20 12:22:06 -08:00
cairo-boilerplate-private.h Refactor ARRAY_LENGTH macro definitions in test code 2014-11-20 12:22:06 -08:00
cairo-boilerplate-ps.c Revert accidental push of ps debugging API. 2012-04-14 14:54:07 +01:00
cairo-boilerplate-qt.cpp qt: Fix compilation, also minor fix for building against Qt5 2012-02-12 09:57:00 +00:00
cairo-boilerplate-quartz.c boilerplate: Remove unused thread id parameter 2011-11-12 20:49:08 +01:00
cairo-boilerplate-scaled-font.h whitespace: Fixup formal arguments and tabs in boilerplate/ and perf/. 2010-06-24 15:02:53 +03:00
cairo-boilerplate-script.c boilerplate: Remove unused thread id parameter 2011-11-12 20:49:08 +01:00
cairo-boilerplate-skia.c boilerplate: Remove unused thread id parameter 2011-11-12 20:49:08 +01:00
cairo-boilerplate-svg.c boilerplate: Fix svg extension 2011-11-12 20:49:08 +01:00
cairo-boilerplate-system.c whitespace: Fixup formal arguments and tabs in boilerplate/ and perf/. 2010-06-24 15:02:53 +03:00
cairo-boilerplate-system.h whitespace: Fixup formal arguments and tabs in boilerplate/ and perf/. 2010-06-24 15:02:53 +03:00
cairo-boilerplate-test-surfaces.c boilerplate: Remove unused thread id parameter 2011-11-12 20:49:08 +01:00
cairo-boilerplate-vg.c vg: Use EGL_NONE and GLX_NONE in place of None 2014-05-19 17:37:38 -07:00
cairo-boilerplate-wgl.c boilerplate: Remove unused thread id parameter 2011-11-12 20:49:08 +01:00
cairo-boilerplate-win32-printing.c Add _cairo_win32_print_gdi_error to boilerplate code 2012-04-10 12:09:02 +01:00
cairo-boilerplate-win32.c win32: gcc 5.4 build fix 2016-06-21 19:44:48 +09:30
cairo-boilerplate-xcb.c boilerplate: rename xcb-render-0.0 to xcb-render-0_0 2013-03-22 14:04:44 +01:00
cairo-boilerplate-xlib.c boilerplate: Maintain consistency in the usage of switch cases 2014-05-06 10:22:43 -07:00
cairo-boilerplate-xlib.h [boilerplate] Add missing headers. Oops! 2007-04-21 07:23:30 -04:00
cairo-boilerplate.c test: improve selective execution of Cairo tests based on FORMAT option 2014-08-14 16:10:09 -07:00
cairo-boilerplate.h Refactor ARRAY_LENGTH macro definitions in test code 2014-11-20 12:22:06 -08:00
check-link.c [boilerplate/check-link.c] Oops. Add it. 2008-09-02 22:03:05 -04:00
make-cairo-boilerplate-constructors.sh [boilerplate/test] Use numerical equality not string equality 2009-09-02 10:09:50 +01:00
Makefile.am build: Add explicit dependcy to cxx lib 2010-07-16 19:49:53 +02:00
Makefile.sources backends: Adds a new Cogl based backend 2011-10-11 09:05:45 +01:00
Makefile.win32 build: Clean up environment variables and flags for the win32 build 2011-06-20 10:24:21 +02:00
Makefile.win32.features gl: Add support for OpenGL ES 3.0 2017-09-13 15:18:04 -07:00
README Add boilerplate/README explaining its purpose 2006-08-30 22:33:53 -07:00

This directory provides code that is common to both of cairo's tests
suites:

 * The test suite for correctness in test/
 * The test suite for performance in perf/

We call it boilerplate as it consists primarily of the boilerplate
code necessary for initializing a backend in order to create a surface
for that backend.

The code here just might be useful for someone looking to get started
writing cairo code to use a particular backend, (but there are no
promises that the boilerplate code found here for any particular
backend is exemplary).