[cogl] Start building parallel installable 2.0 api only



commit f951d0995f8a8de23264a985568b4cae7ac492f2
Author: Robert Bragg <robert linux intel com>
Date:   Wed Apr 11 17:35:40 2012 +0100

    Start building parallel installable 2.0 api only
    
    Since we are getting towards a complete Cogl 2.0 api this breaks 1.x api
    compatibility by no longer building a libcogl.so and instead building a
    libcogl2.so library.
    
    The headers are now installed into an include/cogl2 sub-directory that
    wont conflict with an installed cogl 1.x package.
    
    The cogl-2.0-experimental.pc pkg-config file is now named
    cogl2.pc and similarly the reference manual has been renamed from
    cogl-2.0-experimental to cogl2.
    
    The examples have not been namespaced and so they are not parallel
    installable.
    
    Since we haven't yet reached the 2.0 api yet the version has been bumped
    to 1.99.1
    
    All of the conformance tests have been updated so they no longer test
    the 1.x apis, and since I was going through all the tests I took the
    opportunity to rename the global ctx and fb variables to test_ctx and
    test_fb.
    
    Reviewed-by: Neil Roberts <neil linux intel com>

 cogl-pango/Makefile.am                             |   43 +-
 cogl-pango/cogl-pango-2.0-experimental.pc.in       |   13 -
 .../{cogl-pango-1.0.pc.in => cogl-pango2.pc.in}    |   12 +-
 cogl/Makefile.am                                   |   57 +-
 cogl/cogl-1.0.pc.in                                |   13 -
 cogl/cogl.h                                        |    8 +-
 cogl/cogl2-experimental.h                          |   31 -
 cogl/{cogl-2.0-experimental.pc.in => cogl2.pc.in}  |    6 +-
 configure.ac                                       |   44 +-
 doc/reference/Makefile.am                          |    2 +-
 doc/reference/cogl/Makefile.am                     |  153 -----
 doc/reference/cogl/blend-strings.xml               |  129 ----
 doc/reference/cogl/cogl-docs.xml.in                |  212 ------
 doc/reference/cogl/cogl-sections.txt               |  710 --------------------
 doc/reference/cogl/cogl_ortho.png                  |  Bin 12650 -> 0 bytes
 doc/reference/cogl/fill-rule-even-odd.png          |  Bin 3121 -> 0 bytes
 doc/reference/cogl/fill-rule-non-zero.png          |  Bin 3143 -> 0 bytes
 doc/reference/cogl/quad-indices-order.png          |  Bin 2620 -> 0 bytes
 doc/reference/cogl/quad-indices-triangles.png      |  Bin 8018 -> 0 bytes
 .../{cogl-2.0-experimental => cogl2}/Makefile.am   |    4 +-
 .../blend-strings.xml                              |    0
 .../cogl2-docs.xml.in}                             |    0
 .../cogl2-sections.txt}                            |    0
 .../cogl_ortho.png                                 |  Bin 12650 -> 12650 bytes
 .../fill-rule-even-odd.png                         |  Bin 3121 -> 3121 bytes
 .../fill-rule-non-zero.png                         |  Bin 3143 -> 3143 bytes
 .../quad-indices-order.png                         |  Bin 2620 -> 2620 bytes
 .../quad-indices-triangles.png                     |  Bin 8018 -> 8018 bytes
 examples/Makefile.am                               |   15 +-
 tests/conform/Makefile.am                          |    3 +-
 tests/conform/test-backface-culling.c              |  101 +---
 tests/conform/test-bitmask.c                       |    5 +
 tests/conform/test-blend-strings.c                 |  132 +---
 tests/conform/test-color-mask.c                    |   46 +-
 tests/conform/test-custom-attributes.c             |   70 +-
 tests/conform/test-depth-test.c                    |   20 +-
 tests/conform/test-just-vertex-shader.c            |  158 +----
 tests/conform/test-offscreen.c                     |   99 ++--
 tests/conform/test-path.c                          |  156 +++---
 tests/conform/test-pipeline-uniforms.c             |  137 ++--
 tests/conform/test-pipeline-user-matrix.c          |   17 +-
 tests/conform/test-pixel-buffer.c                  |   18 +-
 tests/conform/test-point-size.c                    |   22 +-
 tests/conform/test-point-sprite.c                  |   36 +-
 tests/conform/test-premult.c                       |   61 +--
 tests/conform/test-primitive.c                     |   24 +-
 tests/conform/test-read-texture-formats.c          |    4 +-
 tests/conform/test-snippets.c                      |  120 ++--
 tests/conform/test-sparse-pipeline.c               |   18 +-
 tests/conform/test-sub-texture.c                   |   34 +-
 tests/conform/test-texture-3d.c                    |   36 +-
 tests/conform/test-utils.c                         |   37 +-
 tests/conform/test-utils.h                         |    4 +-
 tests/conform/test-wrap-modes.c                    |  100 +---
 tests/conform/test-write-texture-formats.c         |   56 +-
 55 files changed, 682 insertions(+), 2284 deletions(-)
---
diff --git a/cogl-pango/Makefile.am b/cogl-pango/Makefile.am
index b49562f..5dfab2a 100644
--- a/cogl-pango/Makefile.am
+++ b/cogl-pango/Makefile.am
@@ -24,13 +24,13 @@ source_h_priv = \
 	cogl-pango-pipeline-cache.h \
 	$(NULL)
 
-lib_LTLIBRARIES = libcogl-pango.la
+lib_LTLIBRARIES = libcogl-pango2.la
 
-libcogl_pango_la_SOURCES = $(source_c) $(source_h) $(source_h_priv)
-libcogl_pango_la_CFLAGS = $(COGL_DEP_CFLAGS) $(COGL_PANGO_DEP_CFLAGS) $(COGL_EXTRA_CFLAGS) $(MAINTAINER_CFLAGS)
-libcogl_pango_la_LIBADD = $(top_builddir)/cogl/libcogl.la
-libcogl_pango_la_LIBADD += $(COGL_DEP_LIBS) $(COGL_PANGO_DEP_LIBS) $(COGL_EXTRA_LDFLAGS)
-libcogl_pango_la_LDFLAGS = \
+libcogl_pango2_la_SOURCES = $(source_c) $(source_h) $(source_h_priv)
+libcogl_pango2_la_CFLAGS = $(COGL_DEP_CFLAGS) $(COGL_PANGO_DEP_CFLAGS) $(COGL_EXTRA_CFLAGS) $(MAINTAINER_CFLAGS)
+libcogl_pango2_la_LIBADD = $(top_builddir)/cogl/libcogl2.la
+libcogl_pango2_la_LIBADD += $(COGL_DEP_LIBS) $(COGL_PANGO_DEP_LIBS) $(COGL_EXTRA_LDFLAGS)
+libcogl_pango2_la_LDFLAGS = \
 	-export-dynamic \
 	-export-symbols-regex "^cogl_pango_.*"
 	-no-undefined \
@@ -45,11 +45,10 @@ INCLUDES = \
 	-I$(top_srcdir)			\
 	-I$(top_builddir)
 
-cogl_pangoheadersdir = $(includedir)/cogl/cogl-pango
+cogl_pangoheadersdir = $(includedir)/cogl2/cogl-pango
 cogl_pangoheaders_HEADERS = $(source_h)
 
-pc_files = cogl-pango-1.0.pc \
-	   cogl-pango-$(COGL_API_VERSION)-experimental.pc
+pc_files = cogl-pango2.pc
 
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = $(pc_files)
@@ -68,7 +67,7 @@ dist-hook: ../build/win32/vs9/cogl-pango.vcproj ../build/win32/vs10/cogl-pango.v
 	done >coglpango.sourcefiles
 	$(CPP) -P - <$(top_srcdir)/build/win32/vs9/cogl-pango.vcprojin >$@
 	rm coglpango.sourcefiles
-	
+
 ../build/win32/vs10/cogl-pango.vcxproj: $(top_srcdir)/build/win32/vs10/cogl-pango.vcxprojin
 	for F in $(source_c); do \
 		case $$F in \
@@ -78,7 +77,7 @@ dist-hook: ../build/win32/vs9/cogl-pango.vcproj ../build/win32/vs10/cogl-pango.v
 	done >coglpango.vs10.sourcefiles
 	$(CPP) -P - <$(top_srcdir)/build/win32/vs10/cogl-pango.vcxprojin >$@
 	rm coglpango.vs10.sourcefiles
-	
+
 ../build/win32/vs10/cogl-pango.vcxproj.filters: $(top_srcdir)/build/win32/vs10/cogl-pango.vcxproj.filtersin
 	for F in $(source_c); do \
 		case $$F in \
@@ -100,23 +99,23 @@ INTROSPECTION_GIRS =
 if HAVE_INTROSPECTION
 INTROSPECTION_COMPILER_ARGS=--includedir=$(top_builddir)/cogl
 
-CoglPango-1.0.gir: libcogl-pango.la Makefile
+CoglPango-2.0.gir: libcogl-pango2.la Makefile
 
-CoglPango_1_0_gir_NAMESPACE = CoglPango
-CoglPango_1_0_gir_VERSION = 1.0
-CoglPango_1_0_gir_LIBS = $(top_builddir)/cogl/libcogl.la libcogl-pango.la
-CoglPango_1_0_gir_FILES = $(source_h) $(source_c)
-CoglPango_1_0_gir_CFLAGS = $(INCLUDES) $(AM_CPPFLAGS) $(COGL_DEP_CFLAGS) $(COGL_PANGO_DEP_CFLAGS)
-CoglPango_1_0_gir_INCLUDES = Pango-1.0 PangoCairo-1.0
-CoglPango_1_0_gir_EXPORT_PACKAGES = cogl-pango-1.0
-CoglPango_1_0_gir_SCANNERFLAGS = \
+CoglPango_2_0_gir_NAMESPACE = CoglPango
+CoglPango_2_0_gir_VERSION = 2.0
+CoglPango_2_0_gir_LIBS = $(top_builddir)/cogl/libcogl2.la libcogl-pango2.la
+CoglPango_2_0_gir_FILES = $(source_h) $(source_c)
+CoglPango_2_0_gir_CFLAGS = $(INCLUDES) $(AM_CPPFLAGS) $(COGL_DEP_CFLAGS) $(COGL_PANGO_DEP_CFLAGS)
+CoglPango_2_0_gir_INCLUDES = Pango-1.0 PangoCairo-1.0
+CoglPango_2_0_gir_EXPORT_PACKAGES = cogl-pango-2.0
+CoglPango_2_0_gir_SCANNERFLAGS = \
 	--warn-all \
 	--identifier-prefix=CoglPango \
 	--symbol-prefix=cogl_pango \
 	--c-include='cogl-pango/cogl-pango.h' \
-	--include-uninstalled=$(top_builddir)/cogl/Cogl-1.0.gir
+	--include-uninstalled=$(top_builddir)/cogl/Cogl-2.0.gir
 
-INTROSPECTION_GIRS += CoglPango-1.0.gir
+INTROSPECTION_GIRS += CoglPango-2.0.gir
 
 girdir = $(datadir)/gir-1.0
 gir_DATA = $(INTROSPECTION_GIRS)
diff --git a/cogl-pango/cogl-pango-1.0.pc.in b/cogl-pango/cogl-pango2.pc.in
similarity index 50%
rename from cogl-pango/cogl-pango-1.0.pc.in
rename to cogl-pango/cogl-pango2.pc.in
index e105de9..eada534 100644
--- a/cogl-pango/cogl-pango-1.0.pc.in
+++ b/cogl-pango/cogl-pango2.pc.in
@@ -2,12 +2,12 @@ prefix= prefix@
 exec_prefix= exec_prefix@
 libdir= libdir@
 includedir= includedir@
-apiversion=1.0
-requires= COGL_PKG_REQUIRES@ cogl-1.0
+apiversion= COGL_API_VERSION@
+requires= COGL_PKG_REQUIRES@ cogl2
 
-Name: Cogl
+Name: CoglPango2
 Description: An object oriented GL/GLES Abstraction/Utility Layer
-Version: @COGL_1_VERSION@
-Libs: -L${libdir} -lcogl-pango
-Cflags: -I${includedir}/cogl
+Version: @COGL_VERSION@
+Libs: -L${libdir} -lcoglpango2
+Cflags: -I${includedir}/cogl2
 Requires: ${requires}
diff --git a/cogl/Makefile.am b/cogl/Makefile.am
index d778497..cc55ce1 100644
--- a/cogl/Makefile.am
+++ b/cogl/Makefile.am
@@ -38,22 +38,12 @@ BUILT_SOURCES += cogl-defines.h
 DISTCLEANFILES += cogl-defines.h
 EXTRA_DIST += cogl-defines.h.in
 
-# Note: The cogl-1.0/cogl-gl-1.0 files are essentially for
-# compatability only.  I'm not really sure who could possibly be using
-# them so we may decide to remove them entirely at some point.
-pc_files = \
-	cogl-1.0.pc \
-	cogl-gl-1.0.pc
-
-pc_files += cogl-$(COGL_API_VERSION)-experimental.pc
-
-cogl-gl-1.0.pc: cogl-1.0.pc
-	$(QUIET_GEN)cp -f $< $(@F)
+pc_files = cogl2.pc
 
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = $(pc_files)
 
-EXTRA_DIST += cogl-1.0.pc.in cogl-$(COGL_API_VERSION)-experimental.pc.in
+EXTRA_DIST += cogl2.pc.in
 DISTCLEANFILES += $(pc_files)
 
 # public 1.x api headers
@@ -112,7 +102,6 @@ cogl_experimental_h = \
 	$(srcdir)/cogl-depth-state.h 		\
 	$(srcdir)/cogl-buffer.h 		\
 	$(srcdir)/cogl-pixel-buffer.h		\
-	$(srcdir)/cogl2-experimental.h		\
 	$(srcdir)/cogl2-compatibility.h		\
 	$(NULL)
 
@@ -464,22 +453,26 @@ glib_enum_c = cogl-enum-types.c
 glib_enum_headers = $(cogl_1_public_h)
 include $(top_srcdir)/build/autotools/Makefile.am.enums
 
-lib_LTLIBRARIES += libcogl.la
+#XXX should we specify a libdir sub-directory now so that
+#for the next major version of Cogl we don't need to change
+#the library name to safely allow parallel installability?
+#E.g. libdir=$(libdir)/
+lib_LTLIBRARIES += libcogl2.la
 
-libcogl_la_LIBADD = -lm $(COGL_DEP_LIBS) $(COGL_EXTRA_LDFLAGS)
+libcogl2_la_LIBADD = -lm $(COGL_DEP_LIBS) $(COGL_EXTRA_LDFLAGS)
 if SUPPORT_GLX
-libcogl_la_LIBADD += -ldl
+libcogl2_la_LIBADD += -ldl
 endif
 # XXX: The aim is to eventually get rid of all private API exports
 # for cogl-pango.
-libcogl_la_LDFLAGS = \
+libcogl2_la_LDFLAGS = \
 	-no-undefined \
 	-version-info @COGL_LT_CURRENT@:@COGL_LT_REVISION@:@COGL_LT_AGE@ \
 	-export-dynamic \
 	-export-symbols-regex "^(cogl|_cogl_debug_flags|_cogl_atlas_new|_cogl_atlas_add_reorganize_callback|_cogl_atlas_reserve_space|_cogl_callback|_cogl_util_get_eye_planes_for_screen_poly|_cogl_atlas_texture_remove_reorganize_callback|_cogl_atlas_texture_add_reorganize_callback|_cogl_texture_foreach_sub_texture_in_region|_cogl_atlas_texture_new_with_size|_cogl_profile_trace_message|_cogl_context_get_default).*"
 
-libcogl_la_SOURCES = $(cogl_sources_c)
-nodist_libcogl_la_SOURCES = $(BUILT_SOURCES)
+libcogl2_la_SOURCES = $(cogl_sources_c)
+nodist_libcogl2_la_SOURCES = $(BUILT_SOURCES)
 
 # Cogl installed headers
 cogl_headers = \
@@ -488,7 +481,7 @@ cogl_headers = \
 	$(srcdir)/cogl-pango.h \
 	$(NULL)
 
-coglincludedir = $(includedir)/cogl/cogl
+coglincludedir = $(includedir)/cogl2/cogl
 coglinclude_HEADERS = $(cogl_headers) $(cogl_experimental_h)
 nodist_coglinclude_HEADERS = cogl-defines.h cogl-enum-types.h
 
@@ -582,18 +575,18 @@ DISTCLEANFILES += ../build/win32/vs9/cogl.vcproj ../build/win32/vs10/cogl.vcxpro
 INTROSPECTION_GIRS =
 
 if HAVE_INTROSPECTION
-Cogl-1.0.gir: libcogl.la Makefile
-
-Cogl_1_0_gir_NAMESPACE = Cogl
-Cogl_1_0_gir_VERSION = 1.0
-Cogl_1_0_gir_LIBS = libcogl.la
-Cogl_1_0_gir_FILES = $(cogl_1_public_h) cogl-enum-types.h
-Cogl_1_0_gir_CFLAGS = $(INCLUDES) $(AM_CPPFLAGS) $(COGL_DEP_CFLAGS) -UCOGL_ENABLE_EXPERIMENTAL_API -UCOGL_ENABLE_EXPERIMENTAL_2_0_API
-Cogl_1_0_gir_INCLUDES = GL-1.0 GObject-2.0
-Cogl_1_0_gir_EXPORT_PACKAGES = cogl-1.0
-Cogl_1_0_gir_SCANNERFLAGS = --warn-all --c-include='cogl/cogl.h'
-
-INTROSPECTION_GIRS += Cogl-1.0.gir
+Cogl-2.0.gir: libcogl2.la Makefile
+
+Cogl_2_0_gir_NAMESPACE = Cogl
+Cogl_2_0_gir_VERSION = 2.0
+Cogl_2_0_gir_LIBS = libcogl2.la
+Cogl_2_0_gir_FILES = $(cogl_1_public_h) cogl-enum-types.h
+Cogl_2_0_gir_CFLAGS = $(INCLUDES) $(AM_CPPFLAGS) $(COGL_DEP_CFLAGS) -UCOGL_ENABLE_EXPERIMENTAL_API -UCOGL_ENABLE_EXPERIMENTAL_2_0_API
+Cogl_2_0_gir_INCLUDES = GL-1.0 GObject-2.0
+Cogl_2_0_gir_EXPORT_PACKAGES = cogl-2.0
+Cogl_2_0_gir_SCANNERFLAGS = --warn-all --c-include='cogl/cogl.h'
+
+INTROSPECTION_GIRS += Cogl-2.0.gir
 
 girdir = $(datadir)/gir-1.0
 gir_DATA = $(INTROSPECTION_GIRS)
diff --git a/cogl/cogl.h b/cogl/cogl.h
index 0e3c7b6..85e17b3 100644
--- a/cogl/cogl.h
+++ b/cogl/cogl.h
@@ -29,11 +29,15 @@
 
 #define __COGL_H_INSIDE__
 
-#ifdef COGL_ENABLE_EXPERIMENTAL_2_0_API
+#ifndef COGL_ENABLE_EXPERIMENTAL_2_0_API
+#define COGL_ENABLE_EXPERIMENTAL_2_0_API
+#endif
+
+/* TODO: Most of our currently "experimental" api should now just be
+ * considered part of the 2.0 api */
 #ifndef COGL_ENABLE_EXPERIMENTAL_API
 #define COGL_ENABLE_EXPERIMENTAL_API
 #endif
-#endif
 
 /* We currently keep gtype integration delimited in case we eventually
  * want to split it out into a separate utility library when Cogl
diff --git a/cogl/cogl-2.0-experimental.pc.in b/cogl/cogl2.pc.in
similarity index 78%
rename from cogl/cogl-2.0-experimental.pc.in
rename to cogl/cogl2.pc.in
index 93eaf31..36029ca 100644
--- a/cogl/cogl-2.0-experimental.pc.in
+++ b/cogl/cogl2.pc.in
@@ -5,9 +5,9 @@ includedir= includedir@
 apiversion= COGL_API_VERSION@
 requires= COGL_PKG_REQUIRES@
 
-Name: Cogl
+Name: Cogl2
 Description: An object oriented GL/GLES Abstraction/Utility Layer
 Version: @COGL_VERSION@
-Libs: -L${libdir} -lcogl
-Cflags: -I${includedir}/cogl
+Libs: -L${libdir} -lcogl2
+Cflags: -I${includedir}/cogl2
 Requires: ${requires}
diff --git a/configure.ac b/configure.ac
index 67fc4cf..d482f28 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,30 +3,24 @@ AC_PREREQ(2.59)
 dnl ================================================================
 dnl XXX: If you are making a release then you need to check these
 dnl sections:
-dnl  API versions (Only the 1.x version needs to change)
+dnl  API versions
 dnl   (the pretty numbers that the users see)
 dnl
 dnl  Interface version details for libtool
 dnl   (the shared library versioning information)
 dnl
 dnl  Source code release status
-dnl   (mark the source code as being part of a "release" or from "git")
+dnl   (mark the source code as being part of a "snapshot", "release"
+dnl    or from "git")
 dnl ================================================================
 
 dnl ================================================================
 dnl API versions (i.e. the pretty numbers that users see)
 dnl ================================================================
-m4_define([cogl_major_version], [2])
-m4_define([cogl_minor_version], [0])
-m4_define([cogl_micro_version], [0])
-m4_define([cogl_version],
-          [cogl_major_version.cogl_minor_version.cogl_micro_version])
-
-dnl Since the core Cogl library has to also maintain support for the
-dnl Cogl 1.x API for Clutter then we track the 1.x version separately.
-m4_define([cogl_1_minor_version], [10])
-m4_define([cogl_1_micro_version], [1])
-m4_define([cogl_1_version], [1.cogl_1_minor_version.cogl_1_micro_version])
+m4_define([cogl_major_version], [1])
+m4_define([cogl_minor_version], [99])
+m4_define([cogl_micro_version], [1])
+m4_define([cogl_version], [cogl_major_version.cogl_minor_version.cogl_micro_version])
 
 dnl ================================================================
 dnl Interface version details for libtool
@@ -55,9 +49,9 @@ dnl ================================================================
 #
 #  5. If any interfaces have been removed since the last public release,
 #     then set AGE to 0.
-m4_define([cogl_lt_current], 10)
+m4_define([cogl_lt_current], 0)
 m4_define([cogl_lt_revision], 0)
-m4_define([cogl_lt_age], 1)
+m4_define([cogl_lt_age], 0)
 # We do also tell libtool the pretty version:
 m4_define([cogl_lt_release], [cogl_version])
 
@@ -72,7 +66,7 @@ dnl ================================================================
 # updating the version number in advance of a release.
 m4_define([cogl_release_status], [git])
 
-AC_INIT(cogl, [cogl_1_version])
+AC_INIT(cogl, [cogl_version])
 AC_CONFIG_SRCDIR(cogl/cogl.h)
 AC_CONFIG_AUX_DIR([build])
 AC_CONFIG_MACRO_DIR([build/autotools])
@@ -122,10 +116,6 @@ AC_SUBST([COGL_VERSION],[cogl_version])
 AC_SUBST([COGL_API_VERSION],[cogl_major_version.0])
 AC_SUBST([COGL_API_VERSION_AM],[$COGL_MAJOR_VERSION\_0])
 
-AC_SUBST([COGL_1_MINOR_VERSION],[cogl_1_minor_version])
-AC_SUBST([COGL_1_MICRO_VERSION],[cogl_1_micro_version])
-AC_SUBST([COGL_1_VERSION],[cogl_1_version])
-
 
 dnl ================================================================
 dnl Export the libtool versioning
@@ -1117,20 +1107,16 @@ build/win32/Makefile
 build/win32/vs9/Makefile
 build/win32/vs10/Makefile
 cogl/Makefile
-cogl/cogl-1.0.pc
-cogl/cogl-2.0-experimental.pc
+cogl/cogl2.pc
 cogl/cogl-defines.h
 cogl/cogl.rc
 cogl-pango/Makefile
-cogl-pango/cogl-pango-1.0.pc
-cogl-pango/cogl-pango-2.0-experimental.pc
+cogl-pango/cogl-pango2.pc
 cogl-pango/cogl-pango.rc
 doc/Makefile
 doc/reference/Makefile
-doc/reference/cogl/Makefile
-doc/reference/cogl/cogl-docs.xml
-doc/reference/cogl-2.0-experimental/Makefile
-doc/reference/cogl-2.0-experimental/cogl-2.0-experimental-docs.xml
+doc/reference/cogl2/Makefile
+doc/reference/cogl2/cogl2-docs.xml
 examples/Makefile
 tests/Makefile
 tests/conform/Makefile
@@ -1144,7 +1130,7 @@ dnl ================================================================
 dnl Dah Da!
 dnl ================================================================
 echo ""
-echo "Cogl - $COGL_1_VERSION/$COGL_VERSION (${COGL_RELEASE_STATUS})"
+echo "Cogl - $COGL_VERSION (${COGL_RELEASE_STATUS})"
 
 # Global flags
 echo ""
diff --git a/doc/reference/Makefile.am b/doc/reference/Makefile.am
index 8cf6d05..bbe0216 100644
--- a/doc/reference/Makefile.am
+++ b/doc/reference/Makefile.am
@@ -1 +1 @@
-SUBDIRS = cogl cogl-2.0-experimental
+SUBDIRS = cogl2
diff --git a/doc/reference/cogl-2.0-experimental/Makefile.am b/doc/reference/cogl2/Makefile.am
similarity index 98%
rename from doc/reference/cogl-2.0-experimental/Makefile.am
rename to doc/reference/cogl2/Makefile.am
index df29aaf..d497943 100644
--- a/doc/reference/cogl-2.0-experimental/Makefile.am
+++ b/doc/reference/cogl2/Makefile.am
@@ -9,7 +9,7 @@ AUTOMAKE_OPTIONS = 1.6
 # of using the various options.
 
 # The name of the module, e.g. 'glib'.
-DOC_MODULE=cogl-2.0-experimental
+DOC_MODULE=cogl2
 
 # The top-level SGML file. You can change this if you want to.
 DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.xml
@@ -144,7 +144,7 @@ expand_content_files = \
 # e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
 
 INCLUDES=-I$(top_srcdir) -I$(top_builddir)/cogl -DCOGL_ENABLE_EXPERIMENTAL_API $(COGL_DEP_CFLAGS)
-GTKDOC_LIBS=$(top_builddir)/cogl/libcogl.la $(COGL_DEP_LIBS)
+GTKDOC_LIBS=$(top_builddir)/cogl/libcogl2.la $(COGL_DEP_LIBS)
 
 # This includes the standard gtk-doc make rules, copied by gtkdocize.
 if BUILD_GTK_DOC
diff --git a/doc/reference/cogl-2.0-experimental/blend-strings.xml b/doc/reference/cogl2/blend-strings.xml
similarity index 100%
rename from doc/reference/cogl-2.0-experimental/blend-strings.xml
rename to doc/reference/cogl2/blend-strings.xml
diff --git a/doc/reference/cogl-2.0-experimental/cogl-2.0-experimental-docs.xml.in b/doc/reference/cogl2/cogl2-docs.xml.in
similarity index 100%
rename from doc/reference/cogl-2.0-experimental/cogl-2.0-experimental-docs.xml.in
rename to doc/reference/cogl2/cogl2-docs.xml.in
diff --git a/doc/reference/cogl-2.0-experimental/cogl-2.0-experimental-sections.txt b/doc/reference/cogl2/cogl2-sections.txt
similarity index 100%
rename from doc/reference/cogl-2.0-experimental/cogl-2.0-experimental-sections.txt
rename to doc/reference/cogl2/cogl2-sections.txt
diff --git a/doc/reference/cogl-2.0-experimental/cogl_ortho.png b/doc/reference/cogl2/cogl_ortho.png
similarity index 100%
rename from doc/reference/cogl-2.0-experimental/cogl_ortho.png
rename to doc/reference/cogl2/cogl_ortho.png
diff --git a/doc/reference/cogl-2.0-experimental/fill-rule-even-odd.png b/doc/reference/cogl2/fill-rule-even-odd.png
similarity index 100%
rename from doc/reference/cogl-2.0-experimental/fill-rule-even-odd.png
rename to doc/reference/cogl2/fill-rule-even-odd.png
diff --git a/doc/reference/cogl-2.0-experimental/fill-rule-non-zero.png b/doc/reference/cogl2/fill-rule-non-zero.png
similarity index 100%
rename from doc/reference/cogl-2.0-experimental/fill-rule-non-zero.png
rename to doc/reference/cogl2/fill-rule-non-zero.png
diff --git a/doc/reference/cogl-2.0-experimental/quad-indices-order.png b/doc/reference/cogl2/quad-indices-order.png
similarity index 100%
rename from doc/reference/cogl-2.0-experimental/quad-indices-order.png
rename to doc/reference/cogl2/quad-indices-order.png
diff --git a/doc/reference/cogl-2.0-experimental/quad-indices-triangles.png b/doc/reference/cogl2/quad-indices-triangles.png
similarity index 100%
rename from doc/reference/cogl-2.0-experimental/quad-indices-triangles.png
rename to doc/reference/cogl2/quad-indices-triangles.png
diff --git a/examples/Makefile.am b/examples/Makefile.am
index f96ae65..8b4b468 100644
--- a/examples/Makefile.am
+++ b/examples/Makefile.am
@@ -5,18 +5,17 @@ INCLUDES = \
 
 AM_CFLAGS = \
 	$(COGL_DEP_CFLAGS) \
-	$(COGL_EXTRA_CFLAGS) \
-	-DCOGL_ENABLE_EXPERIMENTAL_2_0_API
+	$(COGL_EXTRA_CFLAGS)
 
 if INSTALL_EXAMPLES
-AM_CFLAGS += -DCOGL_EXAMPLES_DATA=\""$(pkgdatadir)/examples-data/"\"
+AM_CFLAGS += -DCOGL_EXAMPLES_DATA=\""$(pkgdatadir)/2.0/examples-data/"\"
 else
 AM_CFLAGS += -DCOGL_EXAMPLES_DATA=\""$(abs_top_srcdir)/examples/"\"
 endif
 
 common_ldadd = \
 	$(COGL_DEP_LIBS) \
-	$(top_builddir)/cogl/libcogl.la
+	$(top_builddir)/cogl/libcogl2.la
 
 programs = cogl-hello cogl-info cogl-msaa
 examples_datadir = $(pkgdatadir)/examples-data
@@ -32,7 +31,7 @@ cogl_msaa_LDADD = $(common_ldadd)
 if BUILD_COGL_PANGO
 programs += cogl-crate
 cogl_crate_SOURCES = cogl-crate.c
-cogl_crate_LDADD = $(common_ldadd) $(COGL_PANGO_DEP_LIBS) $(top_builddir)/cogl-pango/libcogl-pango.la
+cogl_crate_LDADD = $(common_ldadd) $(COGL_PANGO_DEP_LIBS) $(top_builddir)/cogl-pango/libcogl-pango2.la
 cogl_crate_CFLAGS = $(AM_CFLAGS) $(COGL_PANGO_DEP_CFLAGS)
 examples_data_DATA += crate.jpg
 endif
@@ -46,9 +45,9 @@ cogl_x11_tfp_LDADD = $(common_ldadd)
 endif
 
 if SUPPORT_WAYLAND_EGL_SERVER
-programs += cogland
-cogland_SOURCES = cogland.c
-cogland_LDADD = $(common_ldadd)
+programs += cogland2
+cogland2_SOURCES = cogland.c
+cogland2_LDADD = $(common_ldadd)
 endif
 
 if SUPPORT_SDL
diff --git a/tests/conform/Makefile.am b/tests/conform/Makefile.am
index 7de8305..fca9d83 100644
--- a/tests/conform/Makefile.am
+++ b/tests/conform/Makefile.am
@@ -108,13 +108,12 @@ INCLUDES = \
 	-I$(top_builddir)/cogl
 
 test_conformance_CPPFLAGS = \
-	-DCOGL_ENABLE_EXPERIMENTAL_API \
 	-DCOGL_DISABLE_DEPRECATED \
 	-DTESTS_DATADIR=\""$(top_srcdir)/tests/data"\" \
 	-DCLUTTER_COMPILATION
 
 test_conformance_CFLAGS = -g3 -O0 $(COGL_DEP_CFLAGS) $(COGL_EXTRA_CFLAGS)
-test_conformance_LDADD = $(COGL_DEP_LIBS) $(top_builddir)/cogl/libcogl.la
+test_conformance_LDADD = $(COGL_DEP_LIBS) $(top_builddir)/cogl/libcogl2.la
 test_conformance_LDFLAGS = -export-dynamic
 
 test: wrappers
diff --git a/tests/conform/test-backface-culling.c b/tests/conform/test-backface-culling.c
index fe1eda5..5f61a51 100644
--- a/tests/conform/test-backface-culling.c
+++ b/tests/conform/test-backface-culling.c
@@ -35,20 +35,19 @@ validate_part (CoglFramebuffer *framebuffer,
                            shown ? 0xff0000ff : 0x000000ff);
 }
 
-/* We draw everything 16 times. The draw number is used as a bitmask
-   to test all of the combinations of enabling legacy state, both
-   winding orders and all four culling modes */
+/* We draw everything 8 times. The draw number is used as a bitmask
+   to test all of the combinations of both winding orders and all four
+   culling modes */
 
-#define USE_LEGACY_STATE(draw_num) (((draw_num) & 0x01) >> 0)
-#define FRONT_WINDING(draw_num)    (((draw_num) & 0x02) >> 1)
-#define CULL_FACE_MODE(draw_num)   (((draw_num) & 0x0c) >> 2)
+#define FRONT_WINDING(draw_num)    (((draw_num) & 0x01) >> 1)
+#define CULL_FACE_MODE(draw_num)   (((draw_num) & 0x06) >> 2)
 
 static void
 paint_test_backface_culling (TestState *state,
                              CoglFramebuffer *framebuffer)
 {
   int draw_num;
-  CoglPipeline *base_pipeline = cogl_pipeline_new (ctx);
+  CoglPipeline *base_pipeline = cogl_pipeline_new (test_ctx);
 
   cogl_framebuffer_orthographic (framebuffer,
                                  0, 0,
@@ -67,8 +66,6 @@ paint_test_backface_culling (TestState *state,
                                    COGL_PIPELINE_FILTER_NEAREST,
                                    COGL_PIPELINE_FILTER_NEAREST);
 
-  cogl_push_framebuffer (framebuffer);
-
   /* Render the scene sixteen times to test all of the combinations of
      cull face mode, legacy state and winding orders */
   for (draw_num = 0; draw_num < 16; draw_num++)
@@ -77,81 +74,42 @@ paint_test_backface_culling (TestState *state,
       CoglTextureVertex verts[4];
       CoglPipeline *pipeline;
 
-      cogl_push_matrix ();
-      cogl_translate (0, TEXTURE_RENDER_SIZE * draw_num, 0);
+      cogl_framebuffer_push_matrix (framebuffer);
+      cogl_framebuffer_translate (framebuffer,
+                                  0, TEXTURE_RENDER_SIZE * draw_num, 0);
 
       pipeline = cogl_pipeline_copy (base_pipeline);
 
-      cogl_set_backface_culling_enabled (USE_LEGACY_STATE (draw_num));
       cogl_pipeline_set_front_face_winding (pipeline, FRONT_WINDING (draw_num));
       cogl_pipeline_set_cull_face_mode (pipeline, CULL_FACE_MODE (draw_num));
 
-      cogl_push_source (pipeline);
-
       memset (verts, 0, sizeof (verts));
 
       x2 = x1 + (float)(TEXTURE_RENDER_SIZE);
 
       /* Draw a front-facing texture */
-      cogl_rectangle (x1, y1, x2, y2);
+      cogl_framebuffer_draw_rectangle (framebuffer, pipeline, x1, y1, x2, y2);
 
       x1 = x2;
       x2 = x1 + (float)(TEXTURE_RENDER_SIZE);
 
       /* Draw a front-facing texture with flipped texcoords */
-      cogl_rectangle_with_texture_coords (x1, y1, x2, y2,
-                                          1.0, 0.0, 0.0, 1.0);
+      cogl_framebuffer_draw_textured_rectangle (framebuffer,
+                                                pipeline,
+                                                x1, y1, x2, y2,
+                                                1.0, 0.0, 0.0, 1.0);
 
       x1 = x2;
       x2 = x1 + (float)(TEXTURE_RENDER_SIZE);
 
       /* Draw a back-facing texture */
-      cogl_rectangle (x2, y1, x1, y2);
-
-      x1 = x2;
-      x2 = x1 + (float)(TEXTURE_RENDER_SIZE);
-
-      /* If the texture is sliced then cogl_polygon doesn't work so
-         we'll just use a solid color instead */
-      if (cogl_texture_is_sliced (state->texture))
-        cogl_set_source_color4ub (255, 0, 0, 255);
-
-      /* Draw a front-facing polygon */
-      verts[0].x = x1;    verts[0].y = y2;
-      verts[1].x = x2;    verts[1].y = y2;
-      verts[2].x = x2;    verts[2].y = y1;
-      verts[3].x = x1;    verts[3].y = y1;
-      verts[0].tx = 0;    verts[0].ty = 0;
-      verts[1].tx = 1.0;  verts[1].ty = 0;
-      verts[2].tx = 1.0;  verts[2].ty = 1.0;
-      verts[3].tx = 0;    verts[3].ty = 1.0;
-      cogl_polygon (verts, 4, FALSE);
-
-      x1 = x2;
-      x2 = x1 + (float)(TEXTURE_RENDER_SIZE);
+      cogl_framebuffer_draw_rectangle (framebuffer, pipeline, x2, y1, x1, y2);
 
-      /* Draw a back-facing polygon */
-      verts[0].x = x1;    verts[0].y = y1;
-      verts[1].x = x2;    verts[1].y = y1;
-      verts[2].x = x2;    verts[2].y = y2;
-      verts[3].x = x1;    verts[3].y = y2;
-      verts[0].tx = 0;    verts[0].ty = 0;
-      verts[1].tx = 1.0;  verts[1].ty = 0;
-      verts[2].tx = 1.0;  verts[2].ty = 1.0;
-      verts[3].tx = 0;    verts[3].ty = 1.0;
-      cogl_polygon (verts, 4, FALSE);
+      cogl_framebuffer_pop_matrix (framebuffer);
 
-      x1 = x2;
-      x2 = x1 + (float)(TEXTURE_RENDER_SIZE);
-
-      cogl_pop_matrix ();
-
-      cogl_pop_source ();
       cogl_object_unref (pipeline);
     }
 
-  cogl_pop_framebuffer ();
-
   cogl_object_unref (base_pipeline);
 }
 
@@ -160,15 +118,12 @@ validate_result (CoglFramebuffer *framebuffer, int y_offset)
 {
   int draw_num;
 
-  for (draw_num = 0; draw_num < 16; draw_num++)
+  for (draw_num = 0; draw_num < 8; draw_num++)
     {
       gboolean cull_front, cull_back;
       CoglPipelineCullFaceMode cull_mode;
 
-      if (USE_LEGACY_STATE (draw_num))
-        cull_mode = COGL_PIPELINE_CULL_FACE_MODE_BACK;
-      else
-        cull_mode = CULL_FACE_MODE (draw_num);
+      cull_mode = CULL_FACE_MODE (draw_num);
 
       switch (cull_mode)
         {
@@ -209,12 +164,6 @@ validate_result (CoglFramebuffer *framebuffer, int y_offset)
       /* Back-facing texture */
       validate_part (framebuffer,
                      2, y_offset + draw_num, !cull_back);
-      /* Front-facing texture polygon */
-      validate_part (framebuffer,
-                     3, y_offset + draw_num, !cull_front);
-      /* Back-facing texture polygon */
-      validate_part (framebuffer,
-                     4, y_offset + draw_num, !cull_back);
     }
 }
 
@@ -223,7 +172,7 @@ paint (TestState *state)
 {
   CoglPipeline *pipeline;
 
-  paint_test_backface_culling (state, fb);
+  paint_test_backface_culling (state, test_fb);
 
   /*
    * Now repeat the test but rendered to an offscreen
@@ -235,17 +184,17 @@ paint (TestState *state)
 
   /* Copy the result of the offscreen rendering for validation and
    * also so we can have visual feedback. */
-  pipeline = cogl_pipeline_new (ctx);
+  pipeline = cogl_pipeline_new (test_ctx);
   cogl_pipeline_set_layer_texture (pipeline, 0, state->offscreen_tex);
-  cogl_framebuffer_draw_rectangle (fb,
+  cogl_framebuffer_draw_rectangle (test_fb,
                                    pipeline,
                                    0, TEXTURE_RENDER_SIZE * 16,
                                    state->width,
                                    state->height + TEXTURE_RENDER_SIZE * 16);
   cogl_object_unref (pipeline);
 
-  validate_result (fb, 0);
-  validate_result (fb, 16);
+  validate_result (test_fb, 0);
+  validate_result (test_fb, 16);
 }
 
 static CoglTexture *
@@ -283,8 +232,8 @@ test_backface_culling (void)
   TestState state;
   CoglTexture *tex;
 
-  state.width = cogl_framebuffer_get_width (fb);
-  state.height = cogl_framebuffer_get_height (fb);
+  state.width = cogl_framebuffer_get_width (test_fb);
+  state.height = cogl_framebuffer_get_height (test_fb);
 
   state.offscreen = NULL;
 
diff --git a/tests/conform/test-bitmask.c b/tests/conform/test-bitmask.c
index 3e5e173..f976551 100644
--- a/tests/conform/test-bitmask.c
+++ b/tests/conform/test-bitmask.c
@@ -9,6 +9,11 @@
    within Cogl. Cogl doesn't export the symbols for this data type so
    we just directly include the source instead */
 
+/* we undef these to avoid them being redefined by config.h when
+ * including cogl-bitmask.c */
+#undef COGL_ENABLE_EXPERIMENTAL_2_0_API
+#undef COGL_ENABLE_EXPERIMENTAL_API
+
 #include <cogl/cogl-bitmask.h>
 #include <cogl/cogl-bitmask.c>
 #define _COGL_IN_TEST_BITMASK
diff --git a/tests/conform/test-blend-strings.c b/tests/conform/test-blend-strings.c
index 4fcf85f..84fa6d8 100644
--- a/tests/conform/test-blend-strings.c
+++ b/tests/conform/test-blend-strings.c
@@ -21,7 +21,7 @@
 
 typedef struct _TestState
 {
-  CoglContext *ctx;
+  int padding;
 } TestState;
 
 
@@ -52,7 +52,6 @@ test_blend (TestState *state,
   guint8 Ba = MASK_ALPHA (blend_constant);
   CoglColor blend_const_color;
 
-  CoglHandle material;
   CoglPipeline *pipeline;
   gboolean status;
   GError *error = NULL;
@@ -60,21 +59,22 @@ test_blend (TestState *state,
   int x_off;
 
   /* First write out the destination color without any blending... */
-  pipeline = cogl_pipeline_new (ctx);
+  pipeline = cogl_pipeline_new (test_ctx);
   cogl_pipeline_set_color4ub (pipeline, Dr, Dg, Db, Da);
   cogl_pipeline_set_blend (pipeline, "RGBA = ADD (SRC_COLOR, 0)", NULL);
-  cogl_set_source (pipeline);
-  cogl_rectangle (x * QUAD_WIDTH,
-                  y * QUAD_WIDTH,
-                  x * QUAD_WIDTH + QUAD_WIDTH,
-                  y * QUAD_WIDTH + QUAD_WIDTH);
+  cogl_framebuffer_draw_rectangle (test_fb,
+                                   pipeline,
+                                   x * QUAD_WIDTH,
+                                   y * QUAD_WIDTH,
+                                   x * QUAD_WIDTH + QUAD_WIDTH,
+                                   y * QUAD_WIDTH + QUAD_WIDTH);
   cogl_object_unref (pipeline);
 
   /*
    * Now blend a rectangle over our well defined destination:
    */
 
-  pipeline = cogl_pipeline_new (ctx);
+  pipeline = cogl_pipeline_new (test_ctx);
   cogl_pipeline_set_color4ub (pipeline, Sr, Sg, Sb, Sa);
 
   status = cogl_pipeline_set_blend (pipeline, blend_string, &error);
@@ -94,11 +94,12 @@ test_blend (TestState *state,
   cogl_color_init_from_4ub (&blend_const_color, Br, Bg, Bb, Ba);
   cogl_pipeline_set_blend_constant (pipeline, &blend_const_color);
 
-  cogl_set_source (pipeline);
-  cogl_rectangle (x * QUAD_WIDTH,
-                  y * QUAD_WIDTH,
-                  x * QUAD_WIDTH + QUAD_WIDTH,
-                  y * QUAD_WIDTH + QUAD_WIDTH);
+  cogl_framebuffer_draw_rectangle (test_fb,
+                                   pipeline,
+                                   x * QUAD_WIDTH,
+                                   y * QUAD_WIDTH,
+                                   x * QUAD_WIDTH + QUAD_WIDTH,
+                                   y * QUAD_WIDTH + QUAD_WIDTH);
   cogl_object_unref (pipeline);
 
   /* See what we got... */
@@ -118,60 +119,7 @@ test_blend (TestState *state,
         g_print ("  blend constant = UNUSED\n");
     }
 
-  test_utils_check_pixel (fb, x_off, y_off, expected_result);
-
-
-  /*
-   * Test with legacy API
-   */
-
-  /* Clear previous work */
-  cogl_set_source_color4ub (0, 0, 0, 0xff);
-  cogl_rectangle (x * QUAD_WIDTH,
-                  y * QUAD_WIDTH,
-                  x * QUAD_WIDTH + QUAD_WIDTH,
-                  y * QUAD_WIDTH + QUAD_WIDTH);
-
-  /* First write out the destination color without any blending... */
-  material = cogl_material_new ();
-  cogl_material_set_color4ub (material, Dr, Dg, Db, Da);
-  cogl_material_set_blend (material, "RGBA = ADD (SRC_COLOR, 0)", NULL);
-  cogl_set_source (material);
-  cogl_rectangle (x * QUAD_WIDTH,
-                  y * QUAD_WIDTH,
-                  x * QUAD_WIDTH + QUAD_WIDTH,
-                  y * QUAD_WIDTH + QUAD_WIDTH);
-  cogl_handle_unref (material);
-
-  /*
-   * Now blend a rectangle over our well defined destination:
-   */
-
-  material = cogl_material_new ();
-  cogl_material_set_color4ub (material, Sr, Sg, Sb, Sa);
-
-  status = cogl_material_set_blend (material, blend_string, &error);
-  if (!status)
-    {
-      /* This is a failure as it must be equivalent to the new API */
-      g_warning ("Error setting blend string %s: %s",
-		 blend_string, error->message);
-      g_assert_not_reached ();
-    }
-
-  cogl_color_init_from_4ub (&blend_const_color, Br, Bg, Bb, Ba);
-  cogl_material_set_blend_constant (material, &blend_const_color);
-
-  cogl_set_source (material);
-  cogl_rectangle (x * QUAD_WIDTH,
-                  y * QUAD_WIDTH,
-                  x * QUAD_WIDTH + QUAD_WIDTH,
-                  y * QUAD_WIDTH + QUAD_WIDTH);
-  cogl_handle_unref (material);
-
-  /* See what we got... */
-
-  test_utils_check_pixel (fb, x_off, y_off, expected_result);
+  test_utils_check_pixel (test_fb, x_off, y_off, expected_result);
 }
 
 static CoglTexture *
@@ -228,7 +176,7 @@ test_tex_combine (TestState *state,
   guint8 Ca = MASK_ALPHA (combine_constant);
   CoglColor combine_const_color;
 
-  CoglHandle material;
+  CoglPipeline *pipeline;
   gboolean status;
   GError *error = NULL;
   int y_off;
@@ -238,17 +186,17 @@ test_tex_combine (TestState *state,
   tex0 = make_texture (tex0_color);
   tex1 = make_texture (tex1_color);
 
-  material = cogl_material_new ();
+  pipeline = cogl_pipeline_new (test_ctx);
 
-  cogl_material_set_color4ub (material, 0x80, 0x80, 0x80, 0x80);
-  cogl_material_set_blend (material, "RGBA = ADD (SRC_COLOR, 0)", NULL);
+  cogl_pipeline_set_color4ub (pipeline, 0x80, 0x80, 0x80, 0x80);
+  cogl_pipeline_set_blend (pipeline, "RGBA = ADD (SRC_COLOR, 0)", NULL);
 
-  cogl_material_set_layer (material, 0, tex0);
-  cogl_material_set_layer_combine (material, 0,
+  cogl_pipeline_set_layer_texture (pipeline, 0, tex0);
+  cogl_pipeline_set_layer_combine (pipeline, 0,
                                    "RGBA = REPLACE (TEXTURE)", NULL);
 
-  cogl_material_set_layer (material, 1, tex1);
-  status = cogl_material_set_layer_combine (material, 1,
+  cogl_pipeline_set_layer_texture (pipeline, 1, tex1);
+  status = cogl_pipeline_set_layer_combine (pipeline, 1,
                                             combine_string, &error);
   if (!status)
     {
@@ -259,15 +207,15 @@ test_tex_combine (TestState *state,
     }
 
   cogl_color_init_from_4ub (&combine_const_color, Cr, Cg, Cb, Ca);
-  cogl_material_set_layer_combine_constant (material, 1, &combine_const_color);
-
-  cogl_set_source (material);
-  cogl_rectangle (x * QUAD_WIDTH,
-                  y * QUAD_WIDTH,
-                  x * QUAD_WIDTH + QUAD_WIDTH,
-                  y * QUAD_WIDTH + QUAD_WIDTH);
-
-  cogl_handle_unref (material);
+  cogl_pipeline_set_layer_combine_constant (pipeline, 1, &combine_const_color);
+
+  cogl_framebuffer_draw_rectangle (test_fb,
+                                   pipeline,
+                                   x * QUAD_WIDTH,
+                                   y * QUAD_WIDTH,
+                                   x * QUAD_WIDTH + QUAD_WIDTH,
+                                   y * QUAD_WIDTH + QUAD_WIDTH);
+  cogl_object_unref (pipeline);
   cogl_object_unref (tex0);
   cogl_object_unref (tex1);
 
@@ -288,7 +236,7 @@ test_tex_combine (TestState *state,
         g_print ("  combine constant = UNUSED\n");
     }
 
-  test_utils_check_pixel (fb, x_off, y_off, expected_result);
+  test_utils_check_pixel (test_fb, x_off, y_off, expected_result);
 }
 
 static void
@@ -350,7 +298,7 @@ paint (TestState *state)
                     "A = MODULATE (PREVIOUS, TEXTURE)", /* tex combine */
                     0xffffff20); /* expected */
 
-  /* XXX: we are assuming test_tex_combine creates a material with
+  /* XXX: we are assuming test_tex_combine creates a pipeline with
    * a color of 0x80808080 (i.e. the "PRIMARY" color) */
   test_tex_combine (state, 7, 0, /* position */
                     0xffffff80, /* texture 0 color (alpha = 0.5) */
@@ -412,17 +360,13 @@ test_blend_strings (void)
 {
   TestState state;
 
-  cogl_framebuffer_orthographic (fb, 0, 0,
-                                 cogl_framebuffer_get_width (fb),
-                                 cogl_framebuffer_get_height (fb),
+  cogl_framebuffer_orthographic (test_fb, 0, 0,
+                                 cogl_framebuffer_get_width (test_fb),
+                                 cogl_framebuffer_get_height (test_fb),
                                  -1,
                                  100);
 
-  /* XXX: we have to push/pop a framebuffer since this test currently
-   * uses the legacy cogl_rectangle() api. */
-  cogl_push_framebuffer (fb);
   paint (&state);
-  cogl_pop_framebuffer ();
 
   if (cogl_test_verbose ())
     g_print ("OK\n");
diff --git a/tests/conform/test-color-mask.c b/tests/conform/test-color-mask.c
index 1e22cbc..f49d9dd 100644
--- a/tests/conform/test-color-mask.c
+++ b/tests/conform/test-color-mask.c
@@ -18,36 +18,36 @@ typedef struct _TestState
 static void
 paint (TestState *state)
 {
-  CoglColor bg;
+  CoglPipeline *white = cogl_pipeline_new (test_ctx);
   int i;
 
-  cogl_set_source_color4ub (255, 255, 255, 255);
+  cogl_pipeline_set_color4f (white, 1, 1, 1, 1);
 
-  /* We push the third framebuffer first so that later we can switch
-     back to it by popping to test that that works */
-  cogl_push_framebuffer (state->fbo[2]);
 
-  cogl_push_framebuffer (state->fbo[0]);
-  cogl_rectangle (-1.0, -1.0, 1.0, 1.0);
-  cogl_pop_framebuffer ();
+  cogl_framebuffer_draw_rectangle (state->fbo[0],
+                                   white,
+                                   -1.0, -1.0, 1.0, 1.0);
 
-  cogl_push_framebuffer (state->fbo[1]);
-  cogl_rectangle (-1.0, -1.0, 1.0, 1.0);
-  cogl_pop_framebuffer ();
+  cogl_framebuffer_draw_rectangle (state->fbo[1],
+                                   white,
+                                   -1.0, -1.0, 1.0, 1.0);
 
-  /* We should now be back on the third framebuffer */
-  cogl_rectangle (-1.0, -1.0, 1.0, 1.0);
-  cogl_pop_framebuffer ();
+  cogl_framebuffer_draw_rectangle (state->fbo[2],
+                                   white,
+                                   -1.0, -1.0, 1.0, 1.0);
 
-  cogl_color_init_from_4ub (&bg, 128, 128, 128, 255);
-  cogl_clear (&bg, COGL_BUFFER_BIT_COLOR | COGL_BUFFER_BIT_DEPTH);
+  cogl_object_unref (white);
+
+  cogl_framebuffer_clear4f (test_fb,
+                            COGL_BUFFER_BIT_COLOR | COGL_BUFFER_BIT_DEPTH,
+                            0.5, 0.5, 0.5, 1.0);
 
   /* Render all of the textures to the screen */
   for (i = 0; i < NUM_FBOS; i++)
     {
-      CoglPipeline *pipeline = cogl_pipeline_new (ctx);
+      CoglPipeline *pipeline = cogl_pipeline_new (test_ctx);
       cogl_pipeline_set_layer_texture (pipeline, 0, state->tex[i]);
-      cogl_framebuffer_draw_rectangle (fb, pipeline,
+      cogl_framebuffer_draw_rectangle (test_fb, pipeline,
                                        2.0f / NUM_FBOS * i - 1.0f, -1.0f,
                                        2.0f / NUM_FBOS * (i + 1) - 1.0f, 1.0f);
       cogl_object_unref (pipeline);
@@ -61,7 +61,7 @@ paint (TestState *state)
           { 0x00, 0xff, 0x00, 0xff },
           { 0x00, 0x00, 0xff, 0xff } };
 
-      test_utils_check_pixel_rgb (fb,
+      test_utils_check_pixel_rgb (test_fb,
                                   state->width * (i + 0.5f) / NUM_FBOS,
                                   state->height / 2,
                                   expected_colors[i][0],
@@ -76,8 +76,8 @@ test_color_mask (void)
   TestState state;
   int i;
 
-  state.width = cogl_framebuffer_get_width (fb);
-  state.height = cogl_framebuffer_get_height (fb);
+  state.width = cogl_framebuffer_get_width (test_fb);
+  state.height = cogl_framebuffer_get_height (test_fb);
 
   for (i = 0; i < NUM_FBOS; i++)
     {
@@ -99,11 +99,7 @@ test_color_mask (void)
                                        COGL_COLOR_MASK_BLUE);
     }
 
-  /* XXX: we have to push/pop a framebuffer since this test currently
-   * uses the legacy cogl_rectangle() api. */
-  cogl_push_framebuffer (fb);
   paint (&state);
-  cogl_pop_framebuffer ();
 
   if (cogl_test_verbose ())
     g_print ("OK\n");
diff --git a/tests/conform/test-custom-attributes.c b/tests/conform/test-custom-attributes.c
index 6af4fa2..44327d3 100644
--- a/tests/conform/test-custom-attributes.c
+++ b/tests/conform/test-custom-attributes.c
@@ -43,7 +43,7 @@ test_float_verts (TestState *state, int offset_x, int offset_y)
       { 15, 0, /**/ 0, 1, 0, 1 }
     };
 
-  buffer = cogl_attribute_buffer_new (ctx,
+  buffer = cogl_attribute_buffer_new (test_ctx,
                                       sizeof (float_verts), float_verts);
   attributes[0] = cogl_attribute_new (buffer,
                                       "cogl_position_in",
@@ -58,10 +58,10 @@ test_float_verts (TestState *state, int offset_x, int offset_y)
                                       4, /* n_components */
                                       COGL_ATTRIBUTE_TYPE_FLOAT);
 
-  cogl_framebuffer_push_matrix (fb);
-  cogl_framebuffer_translate (fb, offset_x, offset_y, 0.0f);
+  cogl_framebuffer_push_matrix (test_fb);
+  cogl_framebuffer_translate (test_fb, offset_x, offset_y, 0.0f);
 
-  cogl_framebuffer_draw_attributes (fb,
+  cogl_framebuffer_draw_attributes (test_fb,
                                     state->pipeline,
                                     COGL_VERTICES_MODE_TRIANGLES,
                                     0, /* first_vertex */
@@ -69,14 +69,14 @@ test_float_verts (TestState *state, int offset_x, int offset_y)
                                     attributes,
                                     2 /* n_attributes */);
 
-  cogl_framebuffer_pop_matrix (fb);
+  cogl_framebuffer_pop_matrix (test_fb);
 
   cogl_object_unref (attributes[1]);
   cogl_object_unref (attributes[0]);
   cogl_object_unref (buffer);
 
-  test_utils_check_pixel (fb, offset_x + 5, offset_y + 5, 0xff0000ff);
-  test_utils_check_pixel (fb, offset_x + 15, offset_y + 5, 0x00ff00ff);
+  test_utils_check_pixel (test_fb, offset_x + 5, offset_y + 5, 0xff0000ff);
+  test_utils_check_pixel (test_fb, offset_x + 15, offset_y + 5, 0x00ff00ff);
 }
 
 static void
@@ -103,7 +103,7 @@ test_byte_verts (TestState *state, int offset_x, int offset_y)
       { 0, 0, /**/ 0, 0, 1, 1 },
     };
 
-  buffer = cogl_attribute_buffer_new (ctx,
+  buffer = cogl_attribute_buffer_new (test_ctx,
                                       sizeof (norm_verts), norm_verts);
   attributes[0] = cogl_attribute_new (buffer,
                                       "cogl_position_in",
@@ -119,10 +119,10 @@ test_byte_verts (TestState *state, int offset_x, int offset_y)
                                       COGL_ATTRIBUTE_TYPE_UNSIGNED_BYTE);
   cogl_attribute_set_normalized (attributes[1], TRUE);
 
-  cogl_framebuffer_push_matrix (fb);
-  cogl_framebuffer_translate (fb, offset_x, offset_y, 0.0f);
+  cogl_framebuffer_push_matrix (test_fb);
+  cogl_framebuffer_translate (test_fb, offset_x, offset_y, 0.0f);
 
-  cogl_framebuffer_draw_attributes (fb,
+  cogl_framebuffer_draw_attributes (test_fb,
                                     state->pipeline,
                                     COGL_VERTICES_MODE_TRIANGLES,
                                     0, /* first_vertex */
@@ -133,7 +133,7 @@ test_byte_verts (TestState *state, int offset_x, int offset_y)
   cogl_object_unref (attributes[1]);
 
   /* Test again with unnormalized attributes */
-  unnorm_buffer = cogl_attribute_buffer_new (ctx,
+  unnorm_buffer = cogl_attribute_buffer_new (test_ctx,
                                              sizeof (unnorm_verts),
                                              unnorm_verts);
   attributes[1] = cogl_attribute_new (unnorm_buffer,
@@ -143,9 +143,9 @@ test_byte_verts (TestState *state, int offset_x, int offset_y)
                                       4, /* n_components */
                                       COGL_ATTRIBUTE_TYPE_BYTE);
 
-  cogl_framebuffer_translate (fb, 20, 0, 0);
+  cogl_framebuffer_translate (test_fb, 20, 0, 0);
 
-  cogl_framebuffer_draw_attributes (fb,
+  cogl_framebuffer_draw_attributes (test_fb,
                                     state->pipeline,
                                     COGL_VERTICES_MODE_TRIANGLES,
                                     0, /* first_vertex */
@@ -153,16 +153,16 @@ test_byte_verts (TestState *state, int offset_x, int offset_y)
                                     attributes,
                                     2 /* n_attributes */);
 
-  cogl_framebuffer_pop_matrix (fb);
+  cogl_framebuffer_pop_matrix (test_fb);
 
   cogl_object_unref (attributes[0]);
   cogl_object_unref (attributes[1]);
   cogl_object_unref (buffer);
   cogl_object_unref (unnorm_buffer);
 
-  test_utils_check_pixel (fb, offset_x + 5, offset_y + 5, 0xff0000ff);
-  test_utils_check_pixel (fb, offset_x + 15, offset_y + 5, 0x00ff00ff);
-  test_utils_check_pixel (fb, offset_x + 25, offset_y + 5, 0x0000ffff);
+  test_utils_check_pixel (test_fb, offset_x + 5, offset_y + 5, 0xff0000ff);
+  test_utils_check_pixel (test_fb, offset_x + 15, offset_y + 5, 0x00ff00ff);
+  test_utils_check_pixel (test_fb, offset_x + 25, offset_y + 5, 0x0000ffff);
 }
 
 static void
@@ -180,7 +180,7 @@ test_short_verts (TestState *state, int offset_x, int offset_y)
       { -5, -1 }
     };
 
-  pipeline = cogl_pipeline_new (ctx);
+  pipeline = cogl_pipeline_new (test_ctx);
   snippet = cogl_snippet_new (COGL_SNIPPET_HOOK_VERTEX_TRANSFORM,
                               "attribute vec2 pos;",
                               NULL);
@@ -193,7 +193,7 @@ test_short_verts (TestState *state, int offset_x, int offset_y)
 
   cogl_pipeline_set_color4ub (pipeline, 255, 0, 0, 255);
 
-  buffer = cogl_attribute_buffer_new (ctx,
+  buffer = cogl_attribute_buffer_new (test_ctx,
                                       sizeof (short_verts), short_verts);
   attributes[0] = cogl_attribute_new (buffer,
                                       "pos",
@@ -202,13 +202,13 @@ test_short_verts (TestState *state, int offset_x, int offset_y)
                                       2, /* n_components */
                                       COGL_ATTRIBUTE_TYPE_SHORT);
 
-  cogl_framebuffer_push_matrix (fb);
-  cogl_framebuffer_translate (fb,
+  cogl_framebuffer_push_matrix (test_fb);
+  cogl_framebuffer_translate (test_fb,
                               offset_x + 10.0f,
                               offset_y + 10.0f,
                               0.0f);
 
-  cogl_framebuffer_draw_attributes (fb,
+  cogl_framebuffer_draw_attributes (test_fb,
                                     pipeline,
                                     COGL_VERTICES_MODE_TRIANGLES,
                                     0, /* first_vertex */
@@ -216,7 +216,7 @@ test_short_verts (TestState *state, int offset_x, int offset_y)
                                     attributes,
                                     1 /* n_attributes */);
 
-  cogl_framebuffer_pop_matrix (fb);
+  cogl_framebuffer_pop_matrix (test_fb);
 
   cogl_object_unref (attributes[0]);
 
@@ -231,13 +231,13 @@ test_short_verts (TestState *state, int offset_x, int offset_y)
   pipeline2 = cogl_pipeline_copy (pipeline);
   cogl_pipeline_set_color4ub (pipeline2, 0, 255, 0, 255);
 
-  cogl_framebuffer_push_matrix (fb);
-  cogl_framebuffer_translate (fb,
+  cogl_framebuffer_push_matrix (test_fb);
+  cogl_framebuffer_translate (test_fb,
                               offset_x + 10.0f - 65525.0f,
                               offset_y - 65525,
                               0.0f);
 
-  cogl_framebuffer_draw_attributes (fb,
+  cogl_framebuffer_draw_attributes (test_fb,
                                     pipeline2,
                                     COGL_VERTICES_MODE_TRIANGLES,
                                     0, /* first_vertex */
@@ -245,7 +245,7 @@ test_short_verts (TestState *state, int offset_x, int offset_y)
                                     attributes,
                                     1 /* n_attributes */);
 
-  cogl_framebuffer_pop_matrix (fb);
+  cogl_framebuffer_pop_matrix (test_fb);
 
   cogl_object_unref (attributes[0]);
 
@@ -253,14 +253,14 @@ test_short_verts (TestState *state, int offset_x, int offset_y)
   cogl_object_unref (pipeline);
   cogl_object_unref (buffer);
 
-  test_utils_check_pixel (fb, offset_x + 5, offset_y + 5, 0xff0000ff);
-  test_utils_check_pixel (fb, offset_x + 15, offset_y + 5, 0x00ff00ff);
+  test_utils_check_pixel (test_fb, offset_x + 5, offset_y + 5, 0xff0000ff);
+  test_utils_check_pixel (test_fb, offset_x + 15, offset_y + 5, 0x00ff00ff);
 }
 
 static void
 paint (TestState *state)
 {
-  cogl_framebuffer_clear4f (fb, COGL_BUFFER_BIT_COLOR, 0, 0, 0, 1);
+  cogl_framebuffer_clear4f (test_fb, COGL_BUFFER_BIT_COLOR, 0, 0, 0, 1);
 
   test_float_verts (state, 0, 0);
   test_byte_verts (state, 0, 10);
@@ -276,14 +276,14 @@ test_custom_attributes (void)
       CoglSnippet *snippet;
       TestState state;
 
-      cogl_framebuffer_orthographic (fb,
+      cogl_framebuffer_orthographic (test_fb,
                                      0, 0,
-                                     cogl_framebuffer_get_width (fb),
-                                     cogl_framebuffer_get_height (fb),
+                                     cogl_framebuffer_get_width (test_fb),
+                                     cogl_framebuffer_get_height (test_fb),
                                      -1,
                                      100);
 
-      state.pipeline = cogl_pipeline_new (ctx);
+      state.pipeline = cogl_pipeline_new (test_ctx);
       snippet = cogl_snippet_new (COGL_SNIPPET_HOOK_VERTEX,
                                   "attribute vec4 color;",
                                   "cogl_color_out = color;");
diff --git a/tests/conform/test-depth-test.c b/tests/conform/test-depth-test.c
index 76891db..41bdc58 100644
--- a/tests/conform/test-depth-test.c
+++ b/tests/conform/test-depth-test.c
@@ -54,7 +54,7 @@ draw_rectangle (TestState *state,
                               rect_state->range_near,
                               rect_state->range_far);
 
-  pipeline = cogl_pipeline_new (ctx);
+  pipeline = cogl_pipeline_new (test_ctx);
   if (!cogl_pipeline_set_depth_state (pipeline, &depth_state, NULL))
     {
       cogl_object_unref (pipeline);
@@ -65,19 +65,19 @@ draw_rectangle (TestState *state,
     {
       cogl_pipeline_set_color4ub (pipeline, Cr, Cg, Cb, Ca);
 
-      cogl_framebuffer_push_matrix (fb);
-      cogl_framebuffer_translate (fb, 0, 0, rect_state->depth);
-      cogl_framebuffer_draw_rectangle (fb,
+      cogl_framebuffer_push_matrix (test_fb);
+      cogl_framebuffer_translate (test_fb, 0, 0, rect_state->depth);
+      cogl_framebuffer_draw_rectangle (test_fb,
                                        pipeline,
                                        x * QUAD_WIDTH,
                                        y * QUAD_WIDTH,
                                        x * QUAD_WIDTH + QUAD_WIDTH,
                                        y * QUAD_WIDTH + QUAD_WIDTH);
-      cogl_framebuffer_pop_matrix (fb);
+      cogl_framebuffer_pop_matrix (test_fb);
     }
   else
     {
-      cogl_push_framebuffer (fb);
+      cogl_push_framebuffer (test_fb);
       cogl_push_matrix ();
       cogl_set_source_color4ub (Cr, Cg, Cb, Ca);
       cogl_translate (0, 0, rect_state->depth);
@@ -118,7 +118,7 @@ test_depth (TestState *state,
   if (missing_feature)
     return;
 
-  test_utils_check_pixel (fb,
+  test_utils_check_pixel (test_fb,
                           x * QUAD_WIDTH + (QUAD_WIDTH / 2),
                           y * QUAD_WIDTH + (QUAD_WIDTH / 2),
                           expected_result);
@@ -260,9 +260,9 @@ test_depth_test (void)
 {
   TestState state;
 
-  cogl_framebuffer_orthographic (fb, 0, 0,
-                                 cogl_framebuffer_get_width (fb),
-                                 cogl_framebuffer_get_height (fb),
+  cogl_framebuffer_orthographic (test_fb, 0, 0,
+                                 cogl_framebuffer_get_width (test_fb),
+                                 cogl_framebuffer_get_height (test_fb),
                                  -1,
                                  100);
 
diff --git a/tests/conform/test-just-vertex-shader.c b/tests/conform/test-just-vertex-shader.c
index 2e05480..0aa6f3e 100644
--- a/tests/conform/test-just-vertex-shader.c
+++ b/tests/conform/test-just-vertex-shader.c
@@ -25,90 +25,17 @@ create_dummy_texture (void)
 }
 
 static void
-paint_legacy (TestState *state)
-{
-  CoglHandle material = cogl_material_new ();
-  CoglTexture *tex;
-  CoglColor color;
-  GError *error = NULL;
-  CoglHandle shader, program;
-
-  cogl_color_init_from_4ub (&color, 0, 0, 0, 255);
-  cogl_clear (&color, COGL_BUFFER_BIT_COLOR);
-
-  /* Set the primary vertex color as red */
-  cogl_color_set_from_4ub (&color, 0xff, 0x00, 0x00, 0xff);
-  cogl_material_set_color (material, &color);
-
-  /* Override the vertex color in the texture environment with a
-     constant green color provided by a texture */
-  tex = create_dummy_texture ();
-  cogl_material_set_layer (material, 0, tex);
-  cogl_object_unref (tex);
-  if (!cogl_material_set_layer_combine (material, 0,
-                                        "RGBA=REPLACE(TEXTURE)",
-                                        &error))
-    {
-      g_warning ("Error setting layer combine: %s", error->message);
-      g_assert_not_reached ();
-    }
-
-  /* Set up a dummy vertex shader that does nothing but the usual
-     fixed function transform */
-  shader = cogl_create_shader (COGL_SHADER_TYPE_VERTEX);
-  cogl_shader_source (shader,
-                      "void\n"
-                      "main ()\n"
-                      "{\n"
-                      "  cogl_position_out = "
-                      "cogl_modelview_projection_matrix * "
-                      "cogl_position_in;\n"
-                      "  cogl_color_out = cogl_color_in;\n"
-                      "  cogl_tex_coord_out[0] = cogl_tex_coord_in;\n"
-                      "}\n");
-  cogl_shader_compile (shader);
-  if (!cogl_shader_is_compiled (shader))
-    {
-      char *log = cogl_shader_get_info_log (shader);
-      g_warning ("Shader compilation failed:\n%s", log);
-      g_free (log);
-      g_assert_not_reached ();
-    }
-
-  program = cogl_create_program ();
-  cogl_program_attach_shader (program, shader);
-  cogl_program_link (program);
-
-  cogl_handle_unref (shader);
-
-  /* Draw something using the material */
-  cogl_set_source (material);
-  cogl_rectangle (0, 0, 50, 50);
-
-  /* Draw it again using the program. It should look exactly the same */
-  cogl_program_use (program);
-  cogl_rectangle (50, 0, 100, 50);
-  cogl_program_use (COGL_INVALID_HANDLE);
-
-  cogl_handle_unref (material);
-  cogl_handle_unref (program);
-}
-
-static void
 paint (TestState *state)
 {
-  CoglPipeline *pipeline = cogl_pipeline_new (ctx);
+  CoglPipeline *pipeline = cogl_pipeline_new (test_ctx);
   CoglTexture *tex;
-  CoglColor color;
   GError *error = NULL;
-  CoglHandle shader, program;
+  CoglSnippet *snippet;
 
-  cogl_color_init_from_4ub (&color, 0, 0, 0, 255);
-  cogl_clear (&color, COGL_BUFFER_BIT_COLOR);
+  cogl_framebuffer_clear4f (test_fb, COGL_BUFFER_BIT_COLOR, 0, 0, 0, 1);
 
   /* Set the primary vertex color as red */
-  cogl_color_set_from_4ub (&color, 0xff, 0x00, 0x00, 0xff);
-  cogl_pipeline_set_color (pipeline, &color);
+  cogl_pipeline_set_color4f (pipeline, 1, 0, 0, 1);
 
   /* Override the vertex color in the texture environment with a
      constant green color provided by a texture */
@@ -124,43 +51,25 @@ paint (TestState *state)
     }
 
   /* Set up a dummy vertex shader that does nothing but the usual
-     fixed function transform */
-  shader = cogl_create_shader (COGL_SHADER_TYPE_VERTEX);
-  cogl_shader_source (shader,
-                      "void\n"
-                      "main ()\n"
-                      "{\n"
-                      "  cogl_position_out = "
-                      "cogl_modelview_projection_matrix * "
-                      "cogl_position_in;\n"
-                      "  cogl_color_out = cogl_color_in;\n"
-                      "  cogl_tex_coord_out[0] = cogl_tex_coord_in;\n"
-                      "}\n");
-  cogl_shader_compile (shader);
-  if (!cogl_shader_is_compiled (shader))
-    {
-      char *log = cogl_shader_get_info_log (shader);
-      g_warning ("Shader compilation failed:\n%s", log);
-      g_free (log);
-      g_assert_not_reached ();
-    }
-
-  program = cogl_create_program ();
-  cogl_program_attach_shader (program, shader);
-  cogl_program_link (program);
-
-  cogl_handle_unref (shader);
-
-  /* Draw something without the program */
-  cogl_set_source (pipeline);
-  cogl_rectangle (0, 0, 50, 50);
-
-  /* Draw it again using the program. It should look exactly the same */
-  cogl_pipeline_set_user_program (pipeline, program);
-  cogl_handle_unref (program);
-
-  cogl_rectangle (50, 0, 100, 50);
-  cogl_pipeline_set_user_program (pipeline, COGL_INVALID_HANDLE);
+     modelview-projection transform */
+  snippet = cogl_snippet_new (COGL_SNIPPET_HOOK_VERTEX,
+                              NULL, /* no declarations */
+                              NULL); /* no "post" code */
+  cogl_snippet_set_replace (snippet,
+                            "  cogl_position_out = "
+                            "cogl_modelview_projection_matrix * "
+                            "cogl_position_in;\n"
+                            "  cogl_color_out = cogl_color_in;\n"
+                            "  cogl_tex_coord_out[0] = cogl_tex_coord_in;\n");
+
+  /* Draw something without the snippet */
+  cogl_framebuffer_draw_rectangle (test_fb, pipeline, 0, 0, 50, 50);
+
+  /* Draw it again using the snippet. It should look exactly the same */
+  cogl_pipeline_add_snippet (pipeline, snippet);
+  cogl_object_unref (snippet);
+
+  cogl_framebuffer_draw_rectangle (test_fb, pipeline, 50, 0, 100, 50);
 
   cogl_object_unref (pipeline);
 }
@@ -179,27 +88,18 @@ test_just_vertex_shader (void)
 {
   TestState state;
 
-  cogl_framebuffer_orthographic (fb,
+  cogl_framebuffer_orthographic (test_fb,
                                  0, 0,
-                                 cogl_framebuffer_get_width (fb),
-                                 cogl_framebuffer_get_height (fb),
+                                 cogl_framebuffer_get_width (test_fb),
+                                 cogl_framebuffer_get_height (test_fb),
                                  -1,
                                  100);
 
-  /* If shaders aren't supported then we can't run the test */
-  if (cogl_features_available (COGL_FEATURE_SHADERS_GLSL))
+  /* If GLSL isn't supported then we can't run the test */
+  if (cogl_has_feature (test_ctx, COGL_FEATURE_ID_GLSL))
     {
-      /* XXX: we have to push/pop a framebuffer since this test currently
-       * uses the legacy cogl_rectangle() api. */
-      cogl_push_framebuffer (fb);
-
-      paint_legacy (&state);
-      validate_result (fb);
-
       paint (&state);
-      validate_result (fb);
-
-      cogl_pop_framebuffer ();
+      validate_result (test_fb);
 
       if (cogl_test_verbose ())
         g_print ("OK\n");
diff --git a/tests/conform/test-offscreen.c b/tests/conform/test-offscreen.c
index 0683a8a..6e7d3cc 100644
--- a/tests/conform/test-offscreen.c
+++ b/tests/conform/test-offscreen.c
@@ -32,7 +32,7 @@ check_quadrant (TestState *state,
   width -= 4;
   height -= 4;
 
-  test_utils_check_region (fb, x, y, width, height, expected_rgba);
+  test_utils_check_region (test_fb, x, y, width, height, expected_rgba);
 }
 
 static void
@@ -40,16 +40,18 @@ test_paint (TestState *state)
 {
   CoglTexture2D *tex_2d;
   CoglTexture *tex;
-  CoglOffscreen *offscreen;
+  CoglFramebuffer *offscreen;
+  CoglPipeline *color;
+  CoglPipeline *textured;
 
-  tex_2d = cogl_texture_2d_new_with_size (ctx,
+  tex_2d = cogl_texture_2d_new_with_size (test_ctx,
                                           state->fb_width,
                                           state->fb_height,
                                           COGL_PIXEL_FORMAT_RGBA_8888_PRE,
                                           NULL);
   tex = COGL_TEXTURE (tex_2d);
 
-  offscreen = cogl_offscreen_new_to_texture (tex);
+  offscreen = COGL_FRAMEBUFFER (cogl_offscreen_new_to_texture (tex));
 
   /* Set a scale and translate transform on the window framebuffer
    * before switching to the offscreen framebuffer so we can verify it
@@ -61,41 +63,39 @@ test_paint (TestState *state)
    * quarter of the window size and slide it to the top right of the
    * window.
    */
-  cogl_push_matrix ();
-  cogl_translate (0.5, 0.5, 0);
-  cogl_scale (-0.5, 0.5, 1);
+  cogl_framebuffer_push_matrix (test_fb);
+  cogl_framebuffer_translate (test_fb, 0.5, 0.5, 0);
+  cogl_framebuffer_scale (test_fb, -0.5, 0.5, 1);
 
-  cogl_push_framebuffer (COGL_FRAMEBUFFER (offscreen));
+  /* Use something other than the identity matrix for the modelview so we can
+   * verify it gets restored when we switch back to test_fb */
+  cogl_framebuffer_scale (offscreen, 2, 2, 1);
 
-  /* Cogl should release the last reference when we call cogl_pop_framebuffer()
-   */
-  cogl_object_unref (offscreen);
-
-  /* Setup something other than the identity matrix for the modelview so we can
-   * verify it gets restored when we call cogl_pop_framebuffer () */
-  cogl_scale (2, 2, 1);
+  color = cogl_pipeline_new (test_ctx);
 
   /* red, top left */
-  cogl_set_source_color4ub (0xff, 0x00, 0x00, 0xff);
-  cogl_rectangle (-0.5, 0.5, 0, 0);
+  cogl_pipeline_set_color4f (color, 1, 0, 0, 1);
+  cogl_framebuffer_draw_rectangle (offscreen, color, -0.5, 0.5, 0, 0);
   /* green, top right */
-  cogl_set_source_color4ub (0x00, 0xff, 0x00, 0xff);
-  cogl_rectangle (0, 0.5, 0.5, 0);
+  cogl_pipeline_set_color4f (color, 0, 1, 0, 1);
+  cogl_framebuffer_draw_rectangle (offscreen, color, 0, 0.5, 0.5, 0);
   /* blue, bottom left */
-  cogl_set_source_color4ub (0x00, 0x00, 0xff, 0xff);
-  cogl_rectangle (-0.5, 0, 0, -0.5);
+  cogl_pipeline_set_color4f (color, 0, 0, 1, 1);
+  cogl_framebuffer_draw_rectangle (offscreen, color, -0.5, 0, 0, -0.5);
   /* white, bottom right */
-  cogl_set_source_color4ub (0xff, 0xff, 0xff, 0xff);
-  cogl_rectangle (0, 0, 0.5, -0.5);
+  cogl_pipeline_set_color4f (color, 1, 1, 1, 1);
+  cogl_framebuffer_draw_rectangle (offscreen, color, 0, 0, 0.5, -0.5);
 
-  cogl_pop_framebuffer ();
+  cogl_object_unref (offscreen);
 
-  cogl_set_source_texture (tex);
-  cogl_rectangle (-1, 1, 1, -1);
+  textured = cogl_pipeline_new (test_ctx);
+  cogl_pipeline_set_layer_texture (textured, 0, tex);
+  cogl_framebuffer_draw_rectangle (test_fb, textured, -1, 1, 1, -1);
+  cogl_object_unref (textured);
 
   cogl_object_unref (tex_2d);
 
-  cogl_pop_matrix ();
+  cogl_framebuffer_pop_matrix (test_fb);
 
   /* NB: The texture is drawn flipped horizontally and scaled to fit in the
    * top right corner of the window. */
@@ -115,35 +115,38 @@ test_flush (TestState *state)
 {
   CoglTexture2D *tex_2d;
   CoglTexture *tex;
-  CoglOffscreen *offscreen;
-  CoglColor clear_color;
+  CoglFramebuffer *offscreen;
   int i;
 
   for (i = 0; i < 3; i++)
     {
+      CoglPipeline *red;
+
       /* This tests that rendering to a framebuffer and then reading back
          the contents of the texture will automatically flush the
          journal */
 
-      tex_2d = cogl_texture_2d_new_with_size (ctx,
+      tex_2d = cogl_texture_2d_new_with_size (test_ctx,
                                               16, 16, /* width/height */
                                               COGL_PIXEL_FORMAT_RGBA_8888_PRE,
                                               NULL);
       tex = COGL_TEXTURE (tex_2d);
 
-      offscreen = cogl_offscreen_new_to_texture (tex);
-
-      cogl_push_framebuffer (COGL_FRAMEBUFFER (offscreen));
+      offscreen = COGL_FRAMEBUFFER (cogl_offscreen_new_to_texture (tex));
 
-      cogl_color_init_from_4ub (&clear_color, 0, 0, 0, 255);
-      cogl_clear (&clear_color, COGL_BUFFER_BIT_COLOR);
+      cogl_framebuffer_clear4f (offscreen, COGL_BUFFER_BIT_COLOR,
+                                0, 0, 0, 1);
 
-      cogl_set_source_color4ub (255, 0, 0, 255);
-      cogl_rectangle (-1, -1, 1, 1);
+      red = cogl_pipeline_new (test_ctx);
+      cogl_pipeline_set_color4f (red, 1, 0, 0, 1);
+      cogl_framebuffer_draw_rectangle (offscreen,
+                                       red,
+                                       -1, -1, 1, 1);
+      cogl_object_unref (red);
 
       if (i == 0)
         /* First time check using read pixels on the offscreen */
-        test_utils_check_region (COGL_FRAMEBUFFER (offscreen),
+        test_utils_check_region (offscreen,
                                  1, 1, 15, 15, 0xff0000ff);
       else if (i == 1)
         {
@@ -162,14 +165,16 @@ test_flush (TestState *state)
                                         0xff0000ff);
         }
 
-      cogl_pop_framebuffer ();
-
       if (i == 2)
         {
+          CoglPipeline *textured = cogl_pipeline_new (test_ctx);
+          cogl_pipeline_set_layer_texture (textured, 0, tex);
           /* Third time try drawing the texture to the screen */
-          cogl_set_source_texture (tex);
-          cogl_rectangle (-1, -1, 1, 1);
-          test_utils_check_region (fb,
+          cogl_framebuffer_draw_rectangle (test_fb,
+                                           textured,
+                                           -1, -1, 1, 1);
+          cogl_object_unref (textured);
+          test_utils_check_region (test_fb,
                                    2, 2, /* x/y */
                                    state->fb_width - 4,
                                    state->fb_height - 4,
@@ -186,15 +191,11 @@ test_offscreen (void)
 {
   TestState state;
 
-  state.fb_width = cogl_framebuffer_get_width (fb);
-  state.fb_height = cogl_framebuffer_get_height (fb);
+  state.fb_width = cogl_framebuffer_get_width (test_fb);
+  state.fb_height = cogl_framebuffer_get_height (test_fb);
 
-  /* XXX: we have to push/pop a framebuffer since this test currently
-   * uses the legacy cogl_rectangle() api. */
-  cogl_push_framebuffer (fb);
   test_paint (&state);
   test_flush (&state);
-  cogl_pop_framebuffer ();
 
   if (cogl_test_verbose ())
     g_print ("OK\n");
diff --git a/tests/conform/test-path.c b/tests/conform/test-path.c
index a7a6f3c..67f433e 100644
--- a/tests/conform/test-path.c
+++ b/tests/conform/test-path.c
@@ -15,12 +15,17 @@ typedef struct _TestState
 } TestState;
 
 static void
-draw_path_at (int x, int y)
+draw_path_at (CoglPath *path, int x, int y)
 {
-  cogl_framebuffer_push_matrix (fb);
-  cogl_framebuffer_translate (fb, x * BLOCK_SIZE, y * BLOCK_SIZE, 0.0f);
-  cogl_path_fill ();
-  cogl_framebuffer_pop_matrix (fb);
+  cogl_framebuffer_push_matrix (test_fb);
+  cogl_framebuffer_translate (test_fb, x * BLOCK_SIZE, y * BLOCK_SIZE, 0.0f);
+
+  /* FIXME: we need some cogl_framebuffer_fill_path() api */
+  cogl_push_framebuffer (test_fb);
+  cogl_path_fill (path);
+  cogl_pop_framebuffer ();
+
+  cogl_framebuffer_pop_matrix (test_fb);
 }
 
 static void
@@ -33,7 +38,7 @@ check_block (int block_x, int block_y, int block_mask)
      filled. The bits from 0->3 represent the top left, top right,
      bottom left and bottom right respectively */
 
-  cogl_framebuffer_read_pixels (fb,
+  cogl_framebuffer_read_pixels (test_fb,
                                 block_x * BLOCK_SIZE,
                                 block_y * BLOCK_SIZE,
                                 BLOCK_SIZE, BLOCK_SIZE,
@@ -64,110 +69,111 @@ check_block (int block_x, int block_y, int block_mask)
 static void
 paint (TestState *state)
 {
-  CoglHandle path_a, path_b, path_c;
+  CoglPath *path_a, *path_b, *path_c;
+  CoglPipeline *white = cogl_pipeline_new (test_ctx);
 
-  cogl_set_source_color4ub (255, 255, 255, 255);
+  cogl_pipeline_set_color4f (white, 1, 1, 1, 1);
 
   /* Create a path filling just a quarter of a block. It will use two
      rectangles so that we have a sub path in the path */
-  cogl_path_new ();
-  cogl_path_rectangle (BLOCK_SIZE * 3 / 4, BLOCK_SIZE / 2,
+  path_a = cogl_path_new ();
+  cogl_path_rectangle (path_a,
+                       BLOCK_SIZE * 3 / 4, BLOCK_SIZE / 2,
                        BLOCK_SIZE, BLOCK_SIZE);
-  cogl_path_rectangle (BLOCK_SIZE / 2, BLOCK_SIZE / 2,
+  cogl_path_rectangle (path_a,
+                       BLOCK_SIZE / 2, BLOCK_SIZE / 2,
                        BLOCK_SIZE * 3 / 4, BLOCK_SIZE);
-  path_a = cogl_handle_ref (cogl_get_path ());
-  draw_path_at (0, 0);
+  draw_path_at (path_a, 0, 0);
 
   /* Create another path filling the whole block */
-  cogl_path_rectangle (0, 0, BLOCK_SIZE, BLOCK_SIZE);
-  path_b = cogl_handle_ref (cogl_get_path ());
-  draw_path_at (1, 0);
+  path_b = cogl_path_new ();
+  cogl_path_rectangle (path_b, 0, 0, BLOCK_SIZE, BLOCK_SIZE);
+  draw_path_at (path_b, 1, 0);
 
   /* Draw the first path again */
-  cogl_set_path (path_a);
-  draw_path_at (2, 0);
+  draw_path_at (path_a, 2, 0);
 
   /* Draw a copy of path a */
   path_c = cogl_path_copy (path_a);
-  cogl_set_path (path_c);
-  draw_path_at (3, 0);
+  draw_path_at (path_c, 3, 0);
 
   /* Add another rectangle to path a. We'll use line_to's instead of
      cogl_rectangle so that we don't create another sub-path because
      that is more likely to break the copy */
-  cogl_set_path (path_a);
-  cogl_path_line_to (0, BLOCK_SIZE / 2);
-  cogl_path_line_to (0, 0);
-  cogl_path_line_to (BLOCK_SIZE / 2, 0);
-  cogl_path_line_to (BLOCK_SIZE / 2, BLOCK_SIZE / 2);
-  draw_path_at (4, 0);
+  cogl_path_line_to (path_a, 0, BLOCK_SIZE / 2);
+  cogl_path_line_to (path_a, 0, 0);
+  cogl_path_line_to (path_a, BLOCK_SIZE / 2, 0);
+  cogl_path_line_to (path_a, BLOCK_SIZE / 2, BLOCK_SIZE / 2);
+  draw_path_at (path_a, 4, 0);
 
   /* Draw the copy again. It should not have changed */
-  cogl_set_path (path_c);
-  draw_path_at (5, 0);
+  draw_path_at (path_c, 5, 0);
 
   /* Add another rectangle to path c. It will be added in two halves,
      one as an extension of the previous path and the other as a new
      sub path */
-  cogl_set_path (path_c);
-  cogl_path_line_to (BLOCK_SIZE / 2, 0);
-  cogl_path_line_to (BLOCK_SIZE * 3 / 4, 0);
-  cogl_path_line_to (BLOCK_SIZE * 3 / 4, BLOCK_SIZE / 2);
-  cogl_path_line_to (BLOCK_SIZE / 2, BLOCK_SIZE / 2);
-  cogl_path_rectangle (BLOCK_SIZE * 3 / 4, 0, BLOCK_SIZE, BLOCK_SIZE / 2);
-  draw_path_at (6, 0);
+  cogl_path_line_to (path_c, BLOCK_SIZE / 2, 0);
+  cogl_path_line_to (path_c, BLOCK_SIZE * 3 / 4, 0);
+  cogl_path_line_to (path_c, BLOCK_SIZE * 3 / 4, BLOCK_SIZE / 2);
+  cogl_path_line_to (path_c, BLOCK_SIZE / 2, BLOCK_SIZE / 2);
+  cogl_path_rectangle (path_c,
+                       BLOCK_SIZE * 3 / 4, 0, BLOCK_SIZE, BLOCK_SIZE / 2);
+  draw_path_at (path_c, 6, 0);
 
   /* Draw the original path again. It should not have changed */
-  cogl_set_path (path_a);
-  draw_path_at (7, 0);
+  draw_path_at (path_a, 7, 0);
 
-  cogl_handle_unref (path_a);
-  cogl_handle_unref (path_b);
-  cogl_handle_unref (path_c);
+  cogl_object_unref (path_a);
+  cogl_object_unref (path_b);
+  cogl_object_unref (path_c);
 
   /* Draw a self-intersecting path. The part that intersects should be
      inverted */
-  cogl_path_rectangle (0, 0, BLOCK_SIZE, BLOCK_SIZE);
-  cogl_path_line_to (0, BLOCK_SIZE / 2);
-  cogl_path_line_to (BLOCK_SIZE / 2, BLOCK_SIZE / 2);
-  cogl_path_line_to (BLOCK_SIZE / 2, 0);
-  cogl_path_close ();
-  draw_path_at (8, 0);
+  path_a = cogl_path_new ();
+  cogl_path_rectangle (path_a, 0, 0, BLOCK_SIZE, BLOCK_SIZE);
+  cogl_path_line_to (path_a, 0, BLOCK_SIZE / 2);
+  cogl_path_line_to (path_a, BLOCK_SIZE / 2, BLOCK_SIZE / 2);
+  cogl_path_line_to (path_a, BLOCK_SIZE / 2, 0);
+  cogl_path_close (path_a);
+  draw_path_at (path_a, 8, 0);
+  cogl_object_unref (path_a);
 
   /* Draw two sub paths. Where the paths intersect it should be
      inverted */
-  cogl_path_rectangle (0, 0, BLOCK_SIZE, BLOCK_SIZE);
-  cogl_path_rectangle (BLOCK_SIZE / 2, BLOCK_SIZE / 2, BLOCK_SIZE, BLOCK_SIZE);
-  draw_path_at (9, 0);
+  path_a = cogl_path_new ();
+  cogl_path_rectangle (path_a, 0, 0, BLOCK_SIZE, BLOCK_SIZE);
+  cogl_path_rectangle (path_a,
+                       BLOCK_SIZE / 2, BLOCK_SIZE / 2, BLOCK_SIZE, BLOCK_SIZE);
+  draw_path_at (path_a, 9, 0);
+  cogl_object_unref (path_a);
 
   /* Draw a clockwise outer path */
-  cogl_path_move_to (0, 0);
-  cogl_path_line_to (BLOCK_SIZE, 0);
-  cogl_path_line_to (BLOCK_SIZE, BLOCK_SIZE);
-  cogl_path_line_to (0, BLOCK_SIZE);
-  cogl_path_close ();
+  path_a = cogl_path_new ();
+  cogl_path_move_to (path_a, 0, 0);
+  cogl_path_line_to (path_a, BLOCK_SIZE, 0);
+  cogl_path_line_to (path_a, BLOCK_SIZE, BLOCK_SIZE);
+  cogl_path_line_to (path_a, 0, BLOCK_SIZE);
+  cogl_path_close (path_a);
   /* Add a clockwise sub path in the upper left quadrant */
-  cogl_path_move_to (0, 0);
-  cogl_path_line_to (BLOCK_SIZE / 2, 0);
-  cogl_path_line_to (BLOCK_SIZE / 2, BLOCK_SIZE / 2);
-  cogl_path_line_to (0, BLOCK_SIZE / 2);
-  cogl_path_close ();
+  cogl_path_move_to (path_a, 0, 0);
+  cogl_path_line_to (path_a, BLOCK_SIZE / 2, 0);
+  cogl_path_line_to (path_a, BLOCK_SIZE / 2, BLOCK_SIZE / 2);
+  cogl_path_line_to (path_a, 0, BLOCK_SIZE / 2);
+  cogl_path_close (path_a);
   /* Add a counter-clockwise sub path in the upper right quadrant */
-  cogl_path_move_to (BLOCK_SIZE / 2, 0);
-  cogl_path_line_to (BLOCK_SIZE / 2, BLOCK_SIZE / 2);
-  cogl_path_line_to (BLOCK_SIZE, BLOCK_SIZE / 2);
-  cogl_path_line_to (BLOCK_SIZE, 0);
-  cogl_path_close ();
+  cogl_path_move_to (path_a, BLOCK_SIZE / 2, 0);
+  cogl_path_line_to (path_a, BLOCK_SIZE / 2, BLOCK_SIZE / 2);
+  cogl_path_line_to (path_a, BLOCK_SIZE, BLOCK_SIZE / 2);
+  cogl_path_line_to (path_a, BLOCK_SIZE, 0);
+  cogl_path_close (path_a);
   /* Retain the path for the next test */
-  path_a = cogl_handle_ref (cogl_get_path ());
-  draw_path_at (10, 0);
+  draw_path_at (path_a, 10, 0);
 
   /* Draw the same path again with the other fill rule */
-  cogl_set_path (path_a);
-  cogl_path_set_fill_rule (COGL_PATH_FILL_RULE_NON_ZERO);
-  draw_path_at (11, 0);
+  cogl_path_set_fill_rule (path_a, COGL_PATH_FILL_RULE_NON_ZERO);
+  draw_path_at (path_a, 11, 0);
 
-  cogl_handle_unref (path_a);
+  cogl_object_unref (path_a);
 }
 
 static void
@@ -192,18 +198,14 @@ test_path (void)
 {
   TestState state;
 
-  cogl_framebuffer_orthographic (fb,
+  cogl_framebuffer_orthographic (test_fb,
                                  0, 0,
-                                 cogl_framebuffer_get_width (fb),
-                                 cogl_framebuffer_get_height (fb),
+                                 cogl_framebuffer_get_width (test_fb),
+                                 cogl_framebuffer_get_height (test_fb),
                                  -1,
                                  100);
 
-  /* XXX: we have to push/pop a framebuffer since this test currently
-   * uses the legacy cogl_rectangle() api. */
-  cogl_push_framebuffer (fb);
   paint (&state);
-  cogl_pop_framebuffer ();
   validate_result ();
 
   if (cogl_test_verbose ())
diff --git a/tests/conform/test-pipeline-uniforms.c b/tests/conform/test-pipeline-uniforms.c
index da7b86b..1f86569 100644
--- a/tests/conform/test-pipeline-uniforms.c
+++ b/tests/conform/test-pipeline-uniforms.c
@@ -20,88 +20,69 @@ typedef struct _TestState
   int long_uniform_locations[LONG_ARRAY_SIZE];
 } TestState;
 
-static const char
-color_source[] =
-  "uniform float red, green, blue;\n"
-  "\n"
-  "void\n"
-  "main ()\n"
-  "{\n"
-  "  cogl_color_out = vec4 (red, green, blue, 1.0);\n"
-  "}\n";
-
-static const char
-matrix_source[] =
-  "uniform mat4 matrix_array[4];\n"
-  "\n"
-  "void\n"
-  "main ()\n"
-  "{\n"
+static const char *
+color_declarations = "uniform float red, green, blue;\n";
+
+static const char *
+color_fragment_source = "  cogl_color_out = vec4 (red, green, blue, 1.0);\n";
+
+static const char *
+matrix_declarations = "uniform mat4 matrix_array[4];\n";
+
+static const char *
+matrix_fragment_source =
   "  vec4 color = vec4 (0.0, 0.0, 0.0, 1.0);\n"
   "  int i;\n"
   "\n"
   "  for (i = 0; i < 4; i++)\n"
   "    color = matrix_array[i] * color;\n"
   "\n"
-  "  cogl_color_out = color;\n"
-  "}\n";
+  "  cogl_color_out = color;\n";
 
-static const char
-vector_source[] =
+static const char *
+vector_declarations =
   "uniform vec4 vector_array[2];\n"
-  "uniform vec3 short_vector;\n"
-  "\n"
-  "void\n"
-  "main ()\n"
-  "{\n"
+  "uniform vec3 short_vector;\n";
+
+static const char *
+vector_fragment_source =
   "  cogl_color_out = (vector_array[0] +\n"
   "                    vector_array[1] +\n"
-  "                    vec4 (short_vector, 1.0));\n"
-  "}\n";
+  "                    vec4 (short_vector, 1.0));\n";
 
-static const char
-int_source[] =
+static const char *
+int_declarations =
   "uniform ivec4 vector_array[2];\n"
-  "uniform int single_value;\n"
-  "\n"
-  "void\n"
-  "main ()\n"
-  "{\n"
+  "uniform int single_value;\n";
+
+static const char *
+int_fragment_source =
   "  cogl_color_out = (vec4 (vector_array[0]) +\n"
   "                    vec4 (vector_array[1]) +\n"
-  "                    vec4 (float (single_value), 0.0, 0.0, 255.0)) / 255.0;\n"
-  "}\n";
+  "                    vec4 (float (single_value), 0.0, 0.0, 255.0)) / 255.0;\n";
 
-static const char
-long_source[] =
+static const char *
+long_declarations =
   "uniform int long_array[" G_STRINGIFY (LONG_ARRAY_SIZE) "];\n"
-  "const int last_index = " G_STRINGIFY (LONG_ARRAY_SIZE) " - 1;\n"
-  "\n"
-  "void\n"
-  "main ()\n"
-  "{\n"
-  "  cogl_color_out = vec4 (float (long_array[last_index]), 0.0, 0.0, 1.0);\n"
-  "}\n";
+  "const int last_index = " G_STRINGIFY (LONG_ARRAY_SIZE) " - 1;\n";
+
+static const char *
+long_fragment_source =
+  "  cogl_color_out = vec4 (float (long_array[last_index]), 0.0, 0.0, 1.0);\n";
 
 static CoglPipeline *
-create_pipeline_for_shader (TestState *state, const char *shader_source)
+create_pipeline_for_shader (TestState *state,
+                            const char *declarations,
+                            const char *fragment_source)
 {
-  CoglPipeline *pipeline;
-  CoglHandle shader;
-  CoglHandle program;
-
-  pipeline = cogl_pipeline_new (ctx);
-
-  shader = cogl_create_shader (COGL_SHADER_TYPE_FRAGMENT);
-  cogl_shader_source (shader, shader_source);
-
-  program = cogl_create_program ();
-  cogl_program_attach_shader (program, shader);
-
-  cogl_pipeline_set_user_program (pipeline, program);
+  CoglPipeline *pipeline = cogl_pipeline_new (test_ctx);
+  CoglSnippet *snippet = cogl_snippet_new (COGL_SNIPPET_HOOK_FRAGMENT,
+                                           declarations,
+                                           NULL);
+  cogl_snippet_set_replace (snippet, fragment_source);
 
-  cogl_handle_unref (shader);
-  cogl_handle_unref (program);
+  cogl_pipeline_add_snippet (pipeline, snippet);
+  cogl_object_unref (snippet);
 
   return pipeline;
 }
@@ -111,7 +92,9 @@ init_state (TestState *state)
 {
   int uniform_location;
 
-  state->pipeline_red = create_pipeline_for_shader (state, color_source);
+  state->pipeline_red = create_pipeline_for_shader (state,
+                                                    color_declarations,
+                                                    color_fragment_source);
 
   uniform_location =
     cogl_pipeline_get_uniform_location (state->pipeline_red, "red");
@@ -133,9 +116,15 @@ init_state (TestState *state)
     cogl_pipeline_get_uniform_location (state->pipeline_blue, "blue");
   cogl_pipeline_set_uniform_1f (state->pipeline_blue, uniform_location, 1.0f);
 
-  state->matrix_pipeline = create_pipeline_for_shader (state, matrix_source);
-  state->vector_pipeline = create_pipeline_for_shader (state, vector_source);
-  state->int_pipeline = create_pipeline_for_shader (state, int_source);
+  state->matrix_pipeline = create_pipeline_for_shader (state,
+                                                       matrix_declarations,
+                                                       matrix_fragment_source);
+  state->vector_pipeline = create_pipeline_for_shader (state,
+                                                       vector_declarations,
+                                                       vector_fragment_source);
+  state->int_pipeline = create_pipeline_for_shader (state,
+                                                    int_declarations,
+                                                    int_fragment_source);
 
   state->long_pipeline = NULL;
 }
@@ -145,7 +134,9 @@ init_long_pipeline_state (TestState *state)
 {
   int i;
 
-  state->long_pipeline = create_pipeline_for_shader (state, long_source);
+  state->long_pipeline = create_pipeline_for_shader (state,
+                                                     long_declarations,
+                                                     long_fragment_source);
 
   /* This tries to lookup a large number of uniform names to make sure
      that the bitmask of overriden uniforms flows over the size of a
@@ -177,7 +168,7 @@ destroy_state (TestState *state)
 static void
 paint_pipeline (CoglPipeline *pipeline, int pos)
 {
-  cogl_framebuffer_draw_rectangle (fb, pipeline,
+  cogl_framebuffer_draw_rectangle (test_fb, pipeline,
                                    pos * 10, 0, pos * 10 + 10, 10);
 }
 
@@ -340,7 +331,7 @@ paint_long_pipeline (TestState *state)
 static void
 paint (TestState *state)
 {
-  cogl_framebuffer_clear4f (fb, COGL_BUFFER_BIT_COLOR, 0, 0, 0, 1);
+  cogl_framebuffer_clear4f (test_fb, COGL_BUFFER_BIT_COLOR, 0, 0, 0, 1);
 
   paint_color_pipelines (state);
   paint_matrix_pipeline (state->matrix_pipeline);
@@ -351,7 +342,7 @@ paint (TestState *state)
 static void
 check_pos (int pos, guint32 color)
 {
-  test_utils_check_pixel (fb, pos * 10 + 5, 5, color);
+  test_utils_check_pixel (test_fb, pos * 10 + 5, 5, color);
 }
 
 static void
@@ -390,10 +381,10 @@ test_pipeline_uniforms (void)
 
       init_state (&state);
 
-      cogl_framebuffer_orthographic (fb,
+      cogl_framebuffer_orthographic (test_fb,
                                      0, 0,
-                                     cogl_framebuffer_get_width (fb),
-                                     cogl_framebuffer_get_height (fb),
+                                     cogl_framebuffer_get_width (test_fb),
+                                     cogl_framebuffer_get_height (test_fb),
                                      -1,
                                      100);
 
diff --git a/tests/conform/test-pipeline-user-matrix.c b/tests/conform/test-pipeline-user-matrix.c
index 6f1b34a..7b4199a 100644
--- a/tests/conform/test-pipeline-user-matrix.c
+++ b/tests/conform/test-pipeline-user-matrix.c
@@ -22,7 +22,8 @@ validate_result (TestState *state)
      verify this by reading back the entire stage */
   pixels = g_malloc (state->width * state->height * 4);
 
-  cogl_framebuffer_read_pixels (fb, 0, 0, state->width, state->height,
+  cogl_framebuffer_read_pixels (test_fb,
+                                0, 0, state->width, state->height,
                                 COGL_PIXEL_FORMAT_RGBA_8888_PRE,
                                 (guint8 *)pixels);
 
@@ -56,17 +57,17 @@ paint (TestState *state)
   CoglMatrix matrix;
   GError *error = NULL;
 
-  cogl_framebuffer_orthographic (fb,
+  cogl_framebuffer_orthographic (test_fb,
                                  0, 0,
                                  state->width,
                                  state->height,
                                  -1,
                                  100);
 
-  cogl_framebuffer_clear4f (fb, COGL_BUFFER_BIT_COLOR, 0, 0, 0, 1);
+  cogl_framebuffer_clear4f (test_fb, COGL_BUFFER_BIT_COLOR, 0, 0, 0, 1);
 
   cogl_matrix_init_identity (&matrix);
-  cogl_framebuffer_set_modelview_matrix (fb, &matrix);
+  cogl_framebuffer_set_modelview_matrix (test_fb, &matrix);
 
   tex0 = cogl_texture_new_from_data (2, 2,
                                      COGL_TEXTURE_NO_ATLAS,
@@ -81,7 +82,7 @@ paint (TestState *state)
                                      6,
                                      data1);
 
-  pipeline = cogl_pipeline_new (ctx);
+  pipeline = cogl_pipeline_new (test_ctx);
 
   /* Set the two textures as layers */
   cogl_pipeline_set_layer_texture (pipeline, 0, tex0);
@@ -114,7 +115,7 @@ paint (TestState *state)
   cogl_matrix_scale (&matrix, -1.0f, 1.0f, 1.0f);
   cogl_pipeline_set_layer_matrix (pipeline, 1, &matrix);
 
-  cogl_framebuffer_draw_rectangle (fb,
+  cogl_framebuffer_draw_rectangle (test_fb,
                                    pipeline,
                                    0, 0,
                                    state->width, state->height);
@@ -129,8 +130,8 @@ test_pipeline_user_matrix (void)
 {
   TestState state;
 
-  state.width = cogl_framebuffer_get_width (fb);
-  state.height = cogl_framebuffer_get_height (fb);
+  state.width = cogl_framebuffer_get_width (test_fb);
+  state.height = cogl_framebuffer_get_height (test_fb);
 
   paint (&state);
   validate_result (&state);
diff --git a/tests/conform/test-pixel-buffer.c b/tests/conform/test-pixel-buffer.c
index 393f40a..af4baef 100644
--- a/tests/conform/test-pixel-buffer.c
+++ b/tests/conform/test-pixel-buffer.c
@@ -188,9 +188,9 @@ draw_frame (TestState *state)
   /* Paint the textures */
   for (i = 0; i < NB_TILES; i++)
     {
-      CoglPipeline *pipeline = cogl_pipeline_new (ctx);
+      CoglPipeline *pipeline = cogl_pipeline_new (test_ctx);
       cogl_pipeline_set_layer_texture (pipeline, 0, state->tiles[i].texture);
-      cogl_framebuffer_draw_rectangle (fb,
+      cogl_framebuffer_draw_rectangle (test_fb,
                                        pipeline,
                                        state->tiles[i].x,
                                        state->tiles[i].y,
@@ -205,7 +205,7 @@ static void
 validate_tile (TestState *state,
                TestTile  *tile)
 {
-  test_utils_check_region (fb,
+  test_utils_check_region (test_fb,
                            tile->x, tile->y,
                            TILE_SIZE, TILE_SIZE,
                            (tile->color[0] << 24) |
@@ -242,20 +242,20 @@ test_pixel_buffer (void)
         { { 0x7e, 0xff, 0x7e, 0xff }, 0.0f, TILE_SIZE, NULL, NULL }
     };
 
-  state.width = cogl_framebuffer_get_width (fb);
-  state.height = cogl_framebuffer_get_height (fb);
-  cogl_framebuffer_orthographic (fb,
+  state.width = cogl_framebuffer_get_width (test_fb);
+  state.height = cogl_framebuffer_get_height (test_fb);
+  cogl_framebuffer_orthographic (test_fb,
                                  0, 0,
                                  state.width,
                                  state.height,
                                  -1,
                                  100);
 
-  create_map_tile (ctx, &tiles[TILE_MAP]);
+  create_map_tile (test_ctx, &tiles[TILE_MAP]);
 #if 0
-  create_set_region_tile (shared_state->ctx, &tiles[TILE_SET_REGION]);
+  create_set_region_tile (test_ctx, &tiles[TILE_SET_REGION]);
 #endif
-  create_set_data_tile (ctx, &tiles[TILE_SET_DATA]);
+  create_set_data_tile (test_ctx, &tiles[TILE_SET_DATA]);
 
   state.tiles = tiles;
 
diff --git a/tests/conform/test-point-size.c b/tests/conform/test-point-size.c
index 6f114d3..84d5b32 100644
--- a/tests/conform/test-point-size.c
+++ b/tests/conform/test-point-size.c
@@ -1,4 +1,4 @@
-#include <cogl/cogl2-experimental.h>
+#include <cogl/cogl.h>
 
 #include "test-utils.h"
 
@@ -24,7 +24,7 @@ calc_coord_offset (int pos, int pos_index, int point_size)
 }
 
 static void
-verify_point_size (CoglFramebuffer *fb,
+verify_point_size (CoglFramebuffer *test_fb,
                    int x_pos,
                    int y_pos,
                    int point_size)
@@ -37,7 +37,7 @@ verify_point_size (CoglFramebuffer *fb,
         gboolean in_point = x >= 1 && x <= 2 && y >= 1 && y <= 2;
         guint32 expected_pixel = in_point ? 0x00ff00ff : 0xff0000ff;
 
-        test_utils_check_pixel (fb,
+        test_utils_check_pixel (test_fb,
                                 calc_coord_offset (x_pos, x, point_size),
                                 calc_coord_offset (y_pos, y, point_size),
                                 expected_pixel);
@@ -47,18 +47,18 @@ verify_point_size (CoglFramebuffer *fb,
 void
 test_point_size (void)
 {
-  int fb_width = cogl_framebuffer_get_width (fb);
-  int fb_height = cogl_framebuffer_get_height (fb);
+  int fb_width = cogl_framebuffer_get_width (test_fb);
+  int fb_height = cogl_framebuffer_get_height (test_fb);
   int point_size;
   int x_pos;
 
-  cogl_framebuffer_orthographic (fb,
+  cogl_framebuffer_orthographic (test_fb,
                                  0, 0, /* x_1, y_1 */
                                  fb_width, /* x_2 */
                                  fb_height /* y_2 */,
                                  -1, 100 /* near/far */);
 
-  cogl_framebuffer_clear4f (fb,
+  cogl_framebuffer_clear4f (test_fb,
                             COGL_BUFFER_BIT_COLOR,
                             1.0f, 0.0f, 0.0f, 1.0f);
 
@@ -68,18 +68,18 @@ test_point_size (void)
        point_size >= 4;
        x_pos += POINT_BOX_SIZE, point_size /= 2)
     {
-      CoglPipeline *pipeline = cogl_pipeline_new (ctx);
+      CoglPipeline *pipeline = cogl_pipeline_new (test_ctx);
       CoglVertexP2 point = { x_pos + POINT_BOX_SIZE / 2,
                              POINT_BOX_SIZE / 2 };
       CoglPrimitive *prim =
-        cogl_primitive_new_p2 (ctx,
+        cogl_primitive_new_p2 (test_ctx,
                                COGL_VERTICES_MODE_POINTS,
                                1, /* n_vertices */
                                &point);
 
       cogl_pipeline_set_point_size (pipeline, point_size);
       cogl_pipeline_set_color4ub (pipeline, 0, 255, 0, 255);
-      cogl_framebuffer_draw_primitive (fb,
+      cogl_framebuffer_draw_primitive (test_fb,
                                        pipeline,
                                        prim);
 
@@ -91,7 +91,7 @@ test_point_size (void)
   for (x_pos = 0, point_size = MAX_POINT_SIZE;
        point_size >= 4;
        x_pos += POINT_BOX_SIZE, point_size /= 2)
-    verify_point_size (fb,
+    verify_point_size (test_fb,
                        x_pos + POINT_BOX_SIZE / 2,
                        POINT_BOX_SIZE / 2,
                        point_size);
diff --git a/tests/conform/test-point-sprite.c b/tests/conform/test-point-sprite.c
index d8c450e..fd1b698 100644
--- a/tests/conform/test-point-sprite.c
+++ b/tests/conform/test-point-sprite.c
@@ -1,4 +1,4 @@
-#include <cogl/cogl2-experimental.h>
+#include <cogl/cogl.h>
 
 #include "test-utils.h"
 
@@ -21,25 +21,25 @@ tex_data[3 * 2 * 2] =
 void
 test_point_sprite (void)
 {
-  int fb_width = cogl_framebuffer_get_width (fb);
-  int fb_height = cogl_framebuffer_get_height (fb);
+  int fb_width = cogl_framebuffer_get_width (test_fb);
+  int fb_height = cogl_framebuffer_get_height (test_fb);
   CoglPrimitive *prim;
   GError *error = NULL;
   CoglTexture2D *tex_2d;
   CoglPipeline *pipeline, *solid_pipeline;
   gboolean res;
 
-  cogl_framebuffer_orthographic (fb,
+  cogl_framebuffer_orthographic (test_fb,
                                  0, 0, /* x_1, y_1 */
                                  fb_width, /* x_2 */
                                  fb_height /* y_2 */,
                                  -1, 100 /* near/far */);
 
-  cogl_framebuffer_clear4f (fb,
+  cogl_framebuffer_clear4f (test_fb,
                             COGL_BUFFER_BIT_COLOR,
                             1.0f, 1.0f, 1.0f, 1.0f);
 
-  tex_2d = cogl_texture_2d_new_from_data (ctx,
+  tex_2d = cogl_texture_2d_new_from_data (test_ctx,
                                           2, 2, /* width/height */
                                           COGL_PIXEL_FORMAT_RGB_888,
                                           COGL_PIXEL_FORMAT_ANY,
@@ -49,7 +49,7 @@ test_point_sprite (void)
   g_assert (tex_2d != NULL);
   g_assert (error == NULL);
 
-  pipeline = cogl_pipeline_new (ctx);
+  pipeline = cogl_pipeline_new (test_ctx);
   cogl_pipeline_set_layer_texture (pipeline, 0, COGL_TEXTURE (tex_2d));
 
   res = cogl_pipeline_set_layer_point_sprite_coords_enabled (pipeline,
@@ -67,12 +67,12 @@ test_point_sprite (void)
                                    COGL_PIPELINE_FILTER_NEAREST);
   cogl_pipeline_set_point_size (pipeline, POINT_SIZE);
 
-  prim = cogl_primitive_new_p2t2 (ctx,
+  prim = cogl_primitive_new_p2t2 (test_ctx,
                                   COGL_VERTICES_MODE_POINTS,
                                   1, /* n_vertices */
                                   &point);
 
-  cogl_framebuffer_draw_primitive (fb,
+  cogl_framebuffer_draw_primitive (test_fb,
                                    pipeline,
                                    prim);
 
@@ -85,34 +85,34 @@ test_point_sprite (void)
                                                        /* enable */
                                                        FALSE,
                                                        &error);
-  cogl_framebuffer_push_matrix (fb);
-  cogl_framebuffer_translate (fb,
+  cogl_framebuffer_push_matrix (test_fb);
+  cogl_framebuffer_translate (test_fb,
                               POINT_SIZE * 2, /* x */
                               0.0f, /* y */
                               0.0f /* z */);
-  cogl_framebuffer_draw_primitive (fb,
+  cogl_framebuffer_draw_primitive (test_fb,
                                    solid_pipeline,
                                    prim);
-  cogl_framebuffer_pop_matrix (fb);
+  cogl_framebuffer_pop_matrix (test_fb);
 
   cogl_object_unref (prim);
   cogl_object_unref (solid_pipeline);
   cogl_object_unref (pipeline);
   cogl_object_unref (tex_2d);
 
-  test_utils_check_pixel (fb,
+  test_utils_check_pixel (test_fb,
                           POINT_SIZE - POINT_SIZE / 4,
                           POINT_SIZE - POINT_SIZE / 4,
                           0x0000ffff);
-  test_utils_check_pixel (fb,
+  test_utils_check_pixel (test_fb,
                           POINT_SIZE + POINT_SIZE / 4,
                           POINT_SIZE - POINT_SIZE / 4,
                           0x00ff00ff);
-  test_utils_check_pixel (fb,
+  test_utils_check_pixel (test_fb,
                           POINT_SIZE - POINT_SIZE / 4,
                           POINT_SIZE + POINT_SIZE / 4,
                           0x00ffffff);
-  test_utils_check_pixel (fb,
+  test_utils_check_pixel (test_fb,
                           POINT_SIZE + POINT_SIZE / 4,
                           POINT_SIZE + POINT_SIZE / 4,
                           0xff0000ff);
@@ -120,7 +120,7 @@ test_point_sprite (void)
   /* When rendering without the point sprites all of the texture
      coordinates should be 0,0 so it should get the top-left texel
      which is blue */
-  test_utils_check_region (fb,
+  test_utils_check_region (test_fb,
                            POINT_SIZE * 3 - POINT_SIZE / 2 + 1,
                            POINT_SIZE - POINT_SIZE / 2 + 1,
                            POINT_SIZE - 2, POINT_SIZE - 2,
diff --git a/tests/conform/test-premult.c b/tests/conform/test-premult.c
index b8fb6fd..8344cfa 100644
--- a/tests/conform/test-premult.c
+++ b/tests/conform/test-premult.c
@@ -46,7 +46,7 @@ make_texture (guint32 color,
   CoglTexture2D *tex_2d;
   guchar *tex_data = gen_tex_data (color);
 
-  tex_2d = cogl_texture_2d_new_from_data (ctx,
+  tex_2d = cogl_texture_2d_new_from_data (test_ctx,
                                           QUAD_WIDTH,
                                           QUAD_WIDTH,
                                           src_format,
@@ -79,59 +79,40 @@ set_region (CoglTexture *tex,
 
 static void
 check_texture (CoglPipeline *pipeline,
-	       CoglHandle material,
 	       int x,
 	       int y,
 	       CoglTexture *tex,
 	       guint32 expected_result)
 {
-  /* Legacy */
-  cogl_push_framebuffer (fb);
-  cogl_material_set_layer (material, 0, tex);
-  cogl_set_source (material);
-  cogl_rectangle (x * QUAD_WIDTH,
-		  y * QUAD_WIDTH,
-		  x * QUAD_WIDTH + QUAD_WIDTH,
-		  y * QUAD_WIDTH + QUAD_WIDTH);
-  test_utils_check_pixel (fb, x * QUAD_WIDTH + QUAD_WIDTH / 2, y * QUAD_WIDTH + QUAD_WIDTH / 2, expected_result);
-  cogl_pop_framebuffer ();
-
-  /* New API */
   cogl_pipeline_set_layer_texture (pipeline, 0, COGL_TEXTURE (tex));
-  cogl_framebuffer_draw_rectangle (fb, pipeline,
+  cogl_framebuffer_draw_rectangle (test_fb, pipeline,
 				   x * QUAD_WIDTH,
 				   y * QUAD_WIDTH,
 				   x * QUAD_WIDTH + QUAD_WIDTH,
 				   y * QUAD_WIDTH + QUAD_WIDTH);
-  test_utils_check_pixel (fb, x * QUAD_WIDTH + QUAD_WIDTH / 2, y * QUAD_WIDTH + QUAD_WIDTH / 2, expected_result);
+  test_utils_check_pixel (test_fb,
+                          x * QUAD_WIDTH + QUAD_WIDTH / 2,
+                          y * QUAD_WIDTH + QUAD_WIDTH / 2,
+                          expected_result);
 }
 
 void
 test_premult (void)
 {
   CoglPipeline *pipeline;
-  CoglHandle material;
   CoglTexture *tex;
 
-  cogl_framebuffer_orthographic (fb, 0, 0,
-				 cogl_framebuffer_get_width (fb),
-				 cogl_framebuffer_get_height (fb),
+  cogl_framebuffer_orthographic (test_fb, 0, 0,
+				 cogl_framebuffer_get_width (test_fb),
+				 cogl_framebuffer_get_height (test_fb),
 				 -1,
 				 100);
 
-  cogl_framebuffer_clear4f (fb,
+  cogl_framebuffer_clear4f (test_fb,
                             COGL_BUFFER_BIT_COLOR,
                             1.0f, 1.0f, 1.0f, 1.0f);
 
-  /* Legacy */
-  material = cogl_material_new ();
-  cogl_material_set_blend (material,
-                           "RGBA = ADD (SRC_COLOR, 0)", NULL);
-  cogl_material_set_layer_combine (material, 0,
-                                   "RGBA = REPLACE (TEXTURE)", NULL);
-
-  /* New API */
-  pipeline = cogl_pipeline_new (ctx);
+  pipeline = cogl_pipeline_new (test_ctx);
   cogl_pipeline_set_blend (pipeline,
                            "RGBA = ADD (SRC_COLOR, 0)", NULL);
   cogl_pipeline_set_layer_combine (pipeline, 0,
@@ -145,7 +126,7 @@ test_premult (void)
   tex = make_texture (0xff00ff80,
                       COGL_PIXEL_FORMAT_RGBA_8888, /* src format */
                       COGL_PIXEL_FORMAT_RGBA_8888); /* internal format */
-  check_texture (pipeline, material, 0, 0, /* position */
+  check_texture (pipeline, 0, 0, /* position */
 		 tex,
 		 0xff00ff80); /* expected */
 
@@ -158,7 +139,7 @@ test_premult (void)
   tex = make_texture (0xff00ff80,
                       COGL_PIXEL_FORMAT_RGBA_8888, /* src format */
                       COGL_PIXEL_FORMAT_RGBA_8888_PRE); /* internal format */
-  check_texture (pipeline, material, 1, 0, /* position */
+  check_texture (pipeline, 1, 0, /* position */
 		 tex,
 		 0x80008080); /* expected */
 
@@ -172,7 +153,7 @@ test_premult (void)
   tex = make_texture (0xff00ff80,
                       COGL_PIXEL_FORMAT_RGBA_8888, /* src format */
                       COGL_PIXEL_FORMAT_ANY); /* internal format */
-  check_texture (pipeline, material, 2, 0, /* position */
+  check_texture (pipeline, 2, 0, /* position */
 		 tex,
 		 0x80008080); /* expected */
 
@@ -186,7 +167,7 @@ test_premult (void)
   tex = make_texture (0x80008080,
                       COGL_PIXEL_FORMAT_RGBA_8888_PRE, /* src format */
                       COGL_PIXEL_FORMAT_RGBA_8888_PRE); /* internal format */
-  check_texture (pipeline, material, 3, 0, /* position */
+  check_texture (pipeline, 3, 0, /* position */
 		 tex,
 		 0x80008080); /* expected */
 
@@ -199,7 +180,7 @@ test_premult (void)
   tex = make_texture (0x80008080,
                       COGL_PIXEL_FORMAT_RGBA_8888_PRE, /* src format */
                       COGL_PIXEL_FORMAT_RGBA_8888); /* internal format */
-  check_texture (pipeline, material, 4, 0, /* position */
+  check_texture (pipeline, 4, 0, /* position */
 		 tex,
 		 0xff00ff80); /* expected */
 
@@ -213,7 +194,7 @@ test_premult (void)
   tex = make_texture (0x80008080,
                       COGL_PIXEL_FORMAT_RGBA_8888_PRE, /* src format */
                       COGL_PIXEL_FORMAT_ANY); /* internal format */
-  check_texture (pipeline, material, 5, 0, /* position */
+  check_texture (pipeline, 5, 0, /* position */
 		 tex,
 		 0x80008080); /* expected */
 
@@ -230,7 +211,7 @@ test_premult (void)
   if (cogl_test_verbose ())
     g_print ("set_region (0xff00ff80, RGBA_8888)\n");
   set_region (tex, 0xff00ff80, COGL_PIXEL_FORMAT_RGBA_8888);
-  check_texture (pipeline, material, 6, 0, /* position */
+  check_texture (pipeline, 6, 0, /* position */
 		 tex,
 		 0xff00ff80); /* expected */
 
@@ -246,7 +227,7 @@ test_premult (void)
   if (cogl_test_verbose ())
     g_print ("set_region (0x80008080, RGBA_8888_PRE)\n");
   set_region (tex, 0x80008080, COGL_PIXEL_FORMAT_RGBA_8888_PRE);
-  check_texture (pipeline, material, 7, 0, /* position */
+  check_texture (pipeline, 7, 0, /* position */
 		 tex,
 		 0xff00ff80); /* expected */
 
@@ -261,7 +242,7 @@ test_premult (void)
   if (cogl_test_verbose ())
     g_print ("set_region (0x80008080, RGBA_8888_PRE)\n");
   set_region (tex, 0x80008080, COGL_PIXEL_FORMAT_RGBA_8888_PRE);
-  check_texture (pipeline, material, 8, 0, /* position */
+  check_texture (pipeline, 8, 0, /* position */
 		 tex,
 		 0x80008080); /* expected */
 
@@ -279,7 +260,7 @@ test_premult (void)
   if (cogl_test_verbose ())
     g_print ("set_region (0xff00ff80, RGBA_8888)\n");
   set_region (tex, 0xff00ff80, COGL_PIXEL_FORMAT_RGBA_8888);
-  check_texture (pipeline, material, 9, 0, /* position */
+  check_texture (pipeline, 9, 0, /* position */
 		 tex,
 		 0x80008080); /* expected */
 
diff --git a/tests/conform/test-primitive.c b/tests/conform/test-primitive.c
index 3dc5820..9b6eb2a 100644
--- a/tests/conform/test-primitive.c
+++ b/tests/conform/test-primitive.c
@@ -176,7 +176,7 @@ test_paint (TestState *state)
                                     COGL_PIXEL_FORMAT_ANY,
                                     6, /* rowstride */
                                     tex_data);
-  pipeline = cogl_pipeline_new (ctx);
+  pipeline = cogl_pipeline_new (test_ctx);
   cogl_pipeline_set_color4ub (pipeline,
                               (PRIM_COLOR >> 24) & 0xff,
                               (PRIM_COLOR >> 16) & 0xff,
@@ -190,14 +190,14 @@ test_paint (TestState *state)
       CoglPrimitive *prim;
       guint32 expected_color = PRIM_COLOR;
 
-      prim = test_prim_funcs[i] (ctx, &expected_color);
+      prim = test_prim_funcs[i] (test_ctx, &expected_color);
 
-      cogl_framebuffer_push_matrix (fb);
-      cogl_framebuffer_translate (fb, i * 10, 0, 0);
-      cogl_framebuffer_draw_primitive (fb, pipeline, prim);
-      cogl_framebuffer_pop_matrix (fb);
+      cogl_framebuffer_push_matrix (test_fb);
+      cogl_framebuffer_translate (test_fb, i * 10, 0, 0);
+      cogl_framebuffer_draw_primitive (test_fb, pipeline, prim);
+      cogl_framebuffer_pop_matrix (test_fb);
 
-      test_utils_check_pixel (fb, i * 10 + 2, 2, expected_color);
+      test_utils_check_pixel (test_fb, i * 10 + 2, 2, expected_color);
 
       cogl_object_unref (prim);
     }
@@ -234,7 +234,7 @@ test_copy (TestState *state)
 {
   static const guint16 indices_data[2] = { 1, 2 };
   CoglAttributeBuffer *buffer =
-    cogl_attribute_buffer_new (ctx, 100, NULL);
+    cogl_attribute_buffer_new (test_ctx, 100, NULL);
   CoglAttribute *attributes[N_ATTRIBS];
   CoglAttribute *attributes_a[N_ATTRIBS], *attributes_b[N_ATTRIBS];
   CoglAttribute **p;
@@ -259,7 +259,7 @@ test_copy (TestState *state)
                                                attributes,
                                                N_ATTRIBS);
 
-  indices = cogl_indices_new (ctx,
+  indices = cogl_indices_new (test_ctx,
                               COGL_INDICES_TYPE_UNSIGNED_SHORT,
                               indices_data,
                               2 /* n_indices */);
@@ -316,10 +316,10 @@ test_primitive (void)
 {
   TestState state;
 
-  state.fb_width = cogl_framebuffer_get_width (fb);
-  state.fb_height = cogl_framebuffer_get_height (fb);
+  state.fb_width = cogl_framebuffer_get_width (test_fb);
+  state.fb_height = cogl_framebuffer_get_height (test_fb);
 
-  cogl_framebuffer_orthographic (fb,
+  cogl_framebuffer_orthographic (test_fb,
                                  0, 0,
                                  state.fb_width,
                                  state.fb_height,
diff --git a/tests/conform/test-read-texture-formats.c b/tests/conform/test-read-texture-formats.c
index 7161d0f..92aa6d3 100644
--- a/tests/conform/test-read-texture-formats.c
+++ b/tests/conform/test-read-texture-formats.c
@@ -1,4 +1,4 @@
-#include <cogl/cogl2-experimental.h>
+#include <cogl/cogl.h>
 #include <stdarg.h>
 
 #include "test-utils.h"
@@ -146,7 +146,7 @@ test_read_texture_formats (void)
 {
   CoglTexture2D *tex_2d;
 
-  tex_2d = cogl_texture_2d_new_from_data (ctx,
+  tex_2d = cogl_texture_2d_new_from_data (test_ctx,
                                           1, 1, /* width / height */
                                           COGL_PIXEL_FORMAT_RGBA_8888_PRE,
                                           COGL_PIXEL_FORMAT_RGBA_8888_PRE,
diff --git a/tests/conform/test-snippets.c b/tests/conform/test-snippets.c
index cf6d778..ca80063 100644
--- a/tests/conform/test-snippets.c
+++ b/tests/conform/test-snippets.c
@@ -29,7 +29,7 @@ create_texture_pipeline (TestState *state)
                                     8, /* rowstride */
                                     tex_data);
 
-  pipeline = cogl_pipeline_new (ctx);
+  pipeline = cogl_pipeline_new (test_ctx);
 
   cogl_pipeline_set_layer_texture (pipeline, 0, tex);
 
@@ -49,7 +49,7 @@ simple_fragment_snippet (TestState *state)
   CoglSnippet *snippet;
 
   /* Simple fragment snippet */
-  pipeline = cogl_pipeline_new (ctx);
+  pipeline = cogl_pipeline_new (test_ctx);
 
   cogl_pipeline_set_color4ub (pipeline, 255, 0, 0, 255);
 
@@ -59,11 +59,11 @@ simple_fragment_snippet (TestState *state)
   cogl_pipeline_add_snippet (pipeline, snippet);
   cogl_object_unref (snippet);
 
-  cogl_framebuffer_draw_rectangle (fb, pipeline, 0, 0, 10, 10);
+  cogl_framebuffer_draw_rectangle (test_fb, pipeline, 0, 0, 10, 10);
 
   cogl_object_unref (pipeline);
 
-  test_utils_check_pixel (fb, 5, 5, 0xffff00ff);
+  test_utils_check_pixel (test_fb, 5, 5, 0xffff00ff);
 }
 
 static void
@@ -73,7 +73,7 @@ simple_vertex_snippet (TestState *state)
   CoglSnippet *snippet;
 
   /* Simple vertex snippet */
-  pipeline = cogl_pipeline_new (ctx);
+  pipeline = cogl_pipeline_new (test_ctx);
 
   cogl_pipeline_set_color4ub (pipeline, 255, 0, 0, 255);
 
@@ -83,11 +83,11 @@ simple_vertex_snippet (TestState *state)
   cogl_pipeline_add_snippet (pipeline, snippet);
   cogl_object_unref (snippet);
 
-  cogl_framebuffer_draw_rectangle (fb, pipeline, 10, 0, 20, 10);
+  cogl_framebuffer_draw_rectangle (test_fb, pipeline, 10, 0, 20, 10);
 
   cogl_object_unref (pipeline);
 
-  test_utils_check_pixel (fb, 15, 5, 0xff00ffff);
+  test_utils_check_pixel (test_fb, 15, 5, 0xff00ffff);
 }
 
 static void
@@ -99,7 +99,7 @@ shared_uniform (TestState *state)
 
   /* Snippets sharing a uniform across the vertex and fragment
      hooks */
-  pipeline = cogl_pipeline_new (ctx);
+  pipeline = cogl_pipeline_new (test_ctx);
 
   location = cogl_pipeline_get_uniform_location (pipeline, "a_value");
   cogl_pipeline_set_uniform_1f (pipeline, location, 0.25f);
@@ -117,13 +117,13 @@ shared_uniform (TestState *state)
   cogl_pipeline_add_snippet (pipeline, snippet);
   cogl_object_unref (snippet);
 
-  cogl_framebuffer_draw_rectangle (fb,
+  cogl_framebuffer_draw_rectangle (test_fb,
                                    pipeline,
                                    20, 0, 30, 10);
 
   cogl_object_unref (pipeline);
 
-  test_utils_check_pixel (fb, 25, 5, 0xff0080ff);
+  test_utils_check_pixel (test_fb, 25, 5, 0xff0080ff);
 }
 
 static void
@@ -135,7 +135,7 @@ lots_snippets (TestState *state)
   int i;
 
   /* Lots of snippets on one pipeline */
-  pipeline = cogl_pipeline_new (ctx);
+  pipeline = cogl_pipeline_new (test_ctx);
 
   cogl_pipeline_set_color4ub (pipeline, 0, 0, 0, 255);
 
@@ -163,11 +163,11 @@ lots_snippets (TestState *state)
       g_free (declarations);
     }
 
-  cogl_framebuffer_draw_rectangle (fb, pipeline, 30, 0, 40, 10);
+  cogl_framebuffer_draw_rectangle (test_fb, pipeline, 30, 0, 40, 10);
 
   cogl_object_unref (pipeline);
 
-  test_utils_check_pixel (fb, 35, 5, 0x19334cff);
+  test_utils_check_pixel (test_fb, 35, 5, 0x19334cff);
 }
 
 static void
@@ -178,7 +178,7 @@ shared_variable_pre_post (TestState *state)
 
   /* Test that the pre string can declare variables used by the post
      string */
-  pipeline = cogl_pipeline_new (ctx);
+  pipeline = cogl_pipeline_new (test_ctx);
 
   cogl_pipeline_set_color4ub (pipeline, 255, 255, 255, 255);
 
@@ -189,11 +189,11 @@ shared_variable_pre_post (TestState *state)
   cogl_pipeline_add_snippet (pipeline, snippet);
   cogl_object_unref (snippet);
 
-  cogl_framebuffer_draw_rectangle (fb, pipeline, 40, 0, 50, 10);
+  cogl_framebuffer_draw_rectangle (test_fb, pipeline, 40, 0, 50, 10);
 
   cogl_object_unref (pipeline);
 
-  test_utils_check_pixel (fb, 45, 5, 0xff0000ff);
+  test_utils_check_pixel (test_fb, 45, 5, 0xff0000ff);
 }
 
 static void
@@ -214,20 +214,20 @@ test_pipeline_caching (TestState *state)
                               "   unrelated pipelines */",
                               "cogl_color_out = vec4 (0.0, 1.0, 0.0, 1.0);\n");
 
-  pipeline = cogl_pipeline_new (ctx);
+  pipeline = cogl_pipeline_new (test_ctx);
   cogl_pipeline_add_snippet (pipeline, snippet);
-  cogl_framebuffer_draw_rectangle (fb, pipeline, 50, 0, 60, 10);
+  cogl_framebuffer_draw_rectangle (test_fb, pipeline, 50, 0, 60, 10);
   cogl_object_unref (pipeline);
 
-  pipeline = cogl_pipeline_new (ctx);
+  pipeline = cogl_pipeline_new (test_ctx);
   cogl_pipeline_add_snippet (pipeline, snippet);
-  cogl_framebuffer_draw_rectangle (fb, pipeline, 60, 0, 70, 10);
+  cogl_framebuffer_draw_rectangle (test_fb, pipeline, 60, 0, 70, 10);
   cogl_object_unref (pipeline);
 
   cogl_object_unref (snippet);
 
-  test_utils_check_pixel (fb, 55, 5, 0x00ff00ff);
-  test_utils_check_pixel (fb, 65, 5, 0x00ff00ff);
+  test_utils_check_pixel (test_fb, 55, 5, 0x00ff00ff);
+  test_utils_check_pixel (test_fb, 65, 5, 0x00ff00ff);
 }
 
 static void
@@ -247,14 +247,14 @@ test_replace_string (TestState *state)
   cogl_snippet_set_post (snippet,
                          "cogl_color_out += vec4 (0.5, 0.0, 0.0, 1.0);");
 
-  pipeline = cogl_pipeline_new (ctx);
+  pipeline = cogl_pipeline_new (test_ctx);
   cogl_pipeline_add_snippet (pipeline, snippet);
-  cogl_framebuffer_draw_rectangle (fb, pipeline, 70, 0, 80, 10);
+  cogl_framebuffer_draw_rectangle (test_fb, pipeline, 70, 0, 80, 10);
   cogl_object_unref (pipeline);
 
   cogl_object_unref (snippet);
 
-  test_utils_check_pixel (fb, 75, 5, 0x808000ff);
+  test_utils_check_pixel (test_fb, 75, 5, 0x808000ff);
 }
 
 static void
@@ -273,7 +273,7 @@ test_texture_lookup_hook (TestState *state)
 
   pipeline = create_texture_pipeline (state);
   cogl_pipeline_add_layer_snippet (pipeline, 0, snippet);
-  cogl_framebuffer_draw_textured_rectangle (fb,
+  cogl_framebuffer_draw_textured_rectangle (test_fb,
                                             pipeline,
                                             80, 0, 90, 10,
                                             0, 0, 0, 0);
@@ -281,7 +281,7 @@ test_texture_lookup_hook (TestState *state)
 
   cogl_object_unref (snippet);
 
-  test_utils_check_pixel (fb, 85, 5, 0x00ffffff);
+  test_utils_check_pixel (test_fb, 85, 5, 0x00ffffff);
 }
 
 static void
@@ -302,12 +302,12 @@ test_multiple_samples (TestState *state)
 
   pipeline = create_texture_pipeline (state);
   cogl_pipeline_add_layer_snippet (pipeline, 0, snippet);
-  cogl_framebuffer_draw_rectangle (fb, pipeline, 0, 0, 10, 10);
+  cogl_framebuffer_draw_rectangle (test_fb, pipeline, 0, 0, 10, 10);
   cogl_object_unref (pipeline);
 
   cogl_object_unref (snippet);
 
-  test_utils_check_pixel (fb, 5, 5, 0xffff00ff);
+  test_utils_check_pixel (test_fb, 5, 5, 0xffff00ff);
 }
 
 static void
@@ -322,7 +322,7 @@ test_replace_lookup_hook (TestState *state)
 
   pipeline = create_texture_pipeline (state);
   cogl_pipeline_add_layer_snippet (pipeline, 0, snippet);
-  cogl_framebuffer_draw_textured_rectangle (fb,
+  cogl_framebuffer_draw_textured_rectangle (test_fb,
                                             pipeline,
                                             90, 0, 100, 10,
                                             0, 0, 0, 0);
@@ -330,7 +330,7 @@ test_replace_lookup_hook (TestState *state)
 
   cogl_object_unref (snippet);
 
-  test_utils_check_pixel (fb, 95, 5, 0x0000ffff);
+  test_utils_check_pixel (test_fb, 95, 5, 0x0000ffff);
 }
 
 static void
@@ -355,13 +355,13 @@ test_replace_snippet (TestState *state)
   cogl_pipeline_add_snippet (pipeline, snippet);
   cogl_object_unref (snippet);
 
-  cogl_framebuffer_draw_textured_rectangle (fb,
+  cogl_framebuffer_draw_textured_rectangle (test_fb,
                                             pipeline,
                                             100, 0, 110, 10,
                                             0, 0, 0, 0);
   cogl_object_unref (pipeline);
 
-  test_utils_check_pixel (fb, 105, 5, 0xff0000ff);
+  test_utils_check_pixel (test_fb, 105, 5, 0xff0000ff);
 }
 
 static void
@@ -387,13 +387,13 @@ test_replace_fragment_layer (TestState *state)
                                    "A = REPLACE(PREVIOUS)",
                                    NULL);
 
-  cogl_framebuffer_draw_textured_rectangle (fb,
+  cogl_framebuffer_draw_textured_rectangle (test_fb,
                                             pipeline,
                                             110, 0, 120, 10,
                                             0, 0, 0, 0);
   cogl_object_unref (pipeline);
 
-  test_utils_check_pixel (fb, 115, 5, 0xff00ffff);
+  test_utils_check_pixel (test_fb, 115, 5, 0xff00ffff);
 }
 
 static void
@@ -403,7 +403,7 @@ test_modify_fragment_layer (TestState *state)
   CoglSnippet *snippet;
 
   /* Test modifying the fragment layer code */
-  pipeline = cogl_pipeline_new (ctx);
+  pipeline = cogl_pipeline_new (test_ctx);
 
   cogl_pipeline_set_uniform_1f (pipeline,
                                 cogl_pipeline_get_uniform_location (pipeline,
@@ -416,13 +416,13 @@ test_modify_fragment_layer (TestState *state)
   cogl_pipeline_add_layer_snippet (pipeline, 0, snippet);
   cogl_object_unref (snippet);
 
-  cogl_framebuffer_draw_textured_rectangle (fb,
+  cogl_framebuffer_draw_textured_rectangle (test_fb,
                                             pipeline,
                                             120, 0, 130, 10,
                                             0, 0, 0, 0);
   cogl_object_unref (pipeline);
 
-  test_utils_check_pixel (fb, 125, 5, 0xff80ffff);
+  test_utils_check_pixel (test_fb, 125, 5, 0xff80ffff);
 }
 
 static void
@@ -445,13 +445,13 @@ test_modify_vertex_layer (TestState *state)
   cogl_pipeline_add_layer_snippet (pipeline, 0, snippet);
   cogl_object_unref (snippet);
 
-  cogl_framebuffer_draw_textured_rectangle (fb,
+  cogl_framebuffer_draw_textured_rectangle (test_fb,
                                             pipeline,
                                             130, 0, 140, 10,
                                             0, 0, 0, 0);
   cogl_object_unref (pipeline);
 
-  test_utils_check_pixel (fb, 135, 5, 0xffff00ff);
+  test_utils_check_pixel (test_fb, 135, 5, 0xffff00ff);
 }
 
 static void
@@ -475,13 +475,13 @@ test_replace_vertex_layer (TestState *state)
   cogl_pipeline_add_layer_snippet (pipeline, 0, snippet);
   cogl_object_unref (snippet);
 
-  cogl_framebuffer_draw_textured_rectangle (fb,
+  cogl_framebuffer_draw_textured_rectangle (test_fb,
                                             pipeline,
                                             140, 0, 150, 10,
                                             0, 0, 0, 0);
   cogl_object_unref (pipeline);
 
-  test_utils_check_pixel (fb, 145, 5, 0x00ff00ff);
+  test_utils_check_pixel (test_fb, 145, 5, 0x00ff00ff);
 }
 
 static void
@@ -497,7 +497,7 @@ test_vertex_transform_hook (TestState *state)
 
   cogl_matrix_init_identity (&identity_matrix);
 
-  pipeline = cogl_pipeline_new (ctx);
+  pipeline = cogl_pipeline_new (test_ctx);
 
   cogl_pipeline_set_color4ub (pipeline, 255, 0, 255, 255);
 
@@ -510,7 +510,7 @@ test_vertex_transform_hook (TestState *state)
   cogl_object_unref (snippet);
 
   /* Copy the current projection matrix to a uniform */
-  cogl_framebuffer_get_projection_matrix (fb, &matrix);
+  cogl_framebuffer_get_projection_matrix (test_fb, &matrix);
   location = cogl_pipeline_get_uniform_location (pipeline, "pmat");
   cogl_pipeline_set_uniform_matrix (pipeline,
                                     location,
@@ -521,15 +521,15 @@ test_vertex_transform_hook (TestState *state)
 
   /* Replace the real projection matrix with the identity. This should
      mess up the drawing unless the snippet replacement is working */
-  cogl_framebuffer_set_projection_matrix (fb, &identity_matrix);
+  cogl_framebuffer_set_projection_matrix (test_fb, &identity_matrix);
 
-  cogl_framebuffer_draw_rectangle (fb, pipeline, 150, 0, 160, 10);
+  cogl_framebuffer_draw_rectangle (test_fb, pipeline, 150, 0, 160, 10);
   cogl_object_unref (pipeline);
 
   /* Restore the projection matrix */
-  cogl_framebuffer_set_projection_matrix (fb, &matrix);
+  cogl_framebuffer_set_projection_matrix (test_fb, &matrix);
 
-  test_utils_check_pixel (fb, 155, 5, 0xff00ffff);
+  test_utils_check_pixel (test_fb, 155, 5, 0xff00ffff);
 }
 
 static void
@@ -545,7 +545,7 @@ test_snippet_order (TestState *state)
      sections in the same order as they were added. Therefore the r
      component should be taken from the the second snippet and the g
      component from the first */
-  pipeline = cogl_pipeline_new (ctx);
+  pipeline = cogl_pipeline_new (test_ctx);
 
   cogl_pipeline_set_color4ub (pipeline, 0, 0, 0, 255);
 
@@ -564,10 +564,10 @@ test_snippet_order (TestState *state)
   cogl_pipeline_add_snippet (pipeline, snippet);
   cogl_object_unref (snippet);
 
-  cogl_framebuffer_draw_rectangle (fb, pipeline, 160, 0, 170, 10);
+  cogl_framebuffer_draw_rectangle (test_fb, pipeline, 160, 0, 170, 10);
   cogl_object_unref (pipeline);
 
-  test_utils_check_pixel (fb, 165, 5, 0x80ff00ff);
+  test_utils_check_pixel (test_fb, 165, 5, 0x80ff00ff);
 }
 
 static void
@@ -588,24 +588,24 @@ test_naming_texture_units (TestState *state)
                             "texture2D (cogl_sampler100, vec2 (0.0, 0.0)) + "
                             "texture2D (cogl_sampler200, vec2 (0.0, 0.0));");
 
-  tex1 = test_utils_create_color_texture (ctx, 0xff0000ff);
-  tex2 = test_utils_create_color_texture (ctx, 0x00ff00ff);
+  tex1 = test_utils_create_color_texture (test_ctx, 0xff0000ff);
+  tex2 = test_utils_create_color_texture (test_ctx, 0x00ff00ff);
 
-  pipeline = cogl_pipeline_new (ctx);
+  pipeline = cogl_pipeline_new (test_ctx);
 
   cogl_pipeline_set_layer_texture (pipeline, 100, tex1);
   cogl_pipeline_set_layer_texture (pipeline, 200, tex2);
 
   cogl_pipeline_add_snippet (pipeline, snippet);
 
-  cogl_framebuffer_draw_rectangle (fb, pipeline, 0, 0, 10, 10);
+  cogl_framebuffer_draw_rectangle (test_fb, pipeline, 0, 0, 10, 10);
 
   cogl_object_unref (pipeline);
   cogl_object_unref (snippet);
   cogl_object_unref (tex1);
   cogl_object_unref (tex2);
 
-  test_utils_check_pixel (fb, 5, 5, 0xffff00ff);
+  test_utils_check_pixel (test_fb, 5, 5, 0xffff00ff);
 }
 
 static void
@@ -680,7 +680,7 @@ run_tests (TestState *state)
 
   for (i = 0; i < G_N_ELEMENTS (tests); i++)
     {
-      cogl_framebuffer_clear4f (fb,
+      cogl_framebuffer_clear4f (test_fb,
                                 COGL_BUFFER_BIT_COLOR,
                                 0, 0, 0, 1);
 
@@ -696,10 +696,10 @@ test_snippets (void)
     {
       TestState state;
 
-      cogl_framebuffer_orthographic (fb,
+      cogl_framebuffer_orthographic (test_fb,
                                      0, 0,
-                                     cogl_framebuffer_get_width (fb),
-                                     cogl_framebuffer_get_height (fb),
+                                     cogl_framebuffer_get_width (test_fb),
+                                     cogl_framebuffer_get_height (test_fb),
                                      -1,
                                      100);
 
diff --git a/tests/conform/test-sparse-pipeline.c b/tests/conform/test-sparse-pipeline.c
index a88f50b..2b618dc 100644
--- a/tests/conform/test-sparse-pipeline.c
+++ b/tests/conform/test-sparse-pipeline.c
@@ -1,4 +1,4 @@
-#include <cogl/cogl2-experimental.h>
+#include <cogl/cogl.h>
 #include <string.h>
 
 #include "test-utils.h"
@@ -15,17 +15,17 @@ test_sparse_layer_combine (TestState *state)
   CoglPipeline *pipeline;
   CoglTexture *tex1, *tex2;
 
-  cogl_framebuffer_clear4f (fb, COGL_BUFFER_BIT_COLOR, 0, 0, 0, 1);
+  cogl_framebuffer_clear4f (test_fb, COGL_BUFFER_BIT_COLOR, 0, 0, 0, 1);
 
   /* This tests that the TEXTURE_* numbers used in the layer combine
      string refer to the layer number rather than the unit numbers by
      creating a pipeline with very large layer numbers. This should
      end up being mapped to much smaller unit numbers */
 
-  tex1 = test_utils_create_color_texture (ctx, 0xff0000ff);
-  tex2 = test_utils_create_color_texture (ctx, 0x00ff00ff);
+  tex1 = test_utils_create_color_texture (test_ctx, 0xff0000ff);
+  tex2 = test_utils_create_color_texture (test_ctx, 0x00ff00ff);
 
-  pipeline = cogl_pipeline_new (ctx);
+  pipeline = cogl_pipeline_new (test_ctx);
 
   cogl_pipeline_set_layer_texture (pipeline, 50, tex1);
   cogl_pipeline_set_layer_texture (pipeline, 100, tex2);
@@ -33,9 +33,9 @@ test_sparse_layer_combine (TestState *state)
                                    "RGBA = ADD(TEXTURE_50, TEXTURE_100)",
                                    NULL);
 
-  cogl_framebuffer_draw_rectangle (fb, pipeline, -1, -1, 1, 1);
+  cogl_framebuffer_draw_rectangle (test_fb, pipeline, -1, -1, 1, 1);
 
-  test_utils_check_pixel (fb, 2, 2, 0xffff00ff);
+  test_utils_check_pixel (test_fb, 2, 2, 0xffff00ff);
 
   cogl_object_unref (pipeline);
   cogl_object_unref (tex1);
@@ -47,8 +47,8 @@ test_sparse_pipeline (void)
 {
   TestState state;
 
-  state.fb_width = cogl_framebuffer_get_width (fb);
-  state.fb_height = cogl_framebuffer_get_height (fb);
+  state.fb_width = cogl_framebuffer_get_width (test_fb);
+  state.fb_height = cogl_framebuffer_get_height (test_fb);
 
   test_sparse_layer_combine (&state);
 
diff --git a/tests/conform/test-sub-texture.c b/tests/conform/test-sub-texture.c
index 261f4d7..ca2cca4 100644
--- a/tests/conform/test-sub-texture.c
+++ b/tests/conform/test-sub-texture.c
@@ -55,7 +55,7 @@ create_source (TestState *state)
           }
       }
 
-  tex = cogl_texture_2d_new_from_data (ctx,
+  tex = cogl_texture_2d_new_from_data (test_ctx,
                                        SOURCE_SIZE, SOURCE_SIZE,
                                        COGL_PIXEL_FORMAT_RGBA_8888,
                                        COGL_PIXEL_FORMAT_ANY,
@@ -87,7 +87,7 @@ create_test_texture (TestState *state)
         *(p++) = 255;
       }
 
-  tex = cogl_texture_2d_new_from_data (ctx,
+  tex = cogl_texture_2d_new_from_data (test_ctx,
                                        256, 256,
                                        COGL_PIXEL_FORMAT_RGBA_8888_PRE,
                                        COGL_PIXEL_FORMAT_ANY,
@@ -106,10 +106,10 @@ paint (TestState *state)
 {
   CoglTexture2D *full_texture;
   CoglSubTexture *sub_texture, *sub_sub_texture;
-  CoglPipeline *pipeline = cogl_pipeline_new (ctx);
+  CoglPipeline *pipeline = cogl_pipeline_new (test_ctx);
 
   /* Create a sub texture of the bottom right quarter of the texture */
-  sub_texture = cogl_sub_texture_new (ctx,
+  sub_texture = cogl_sub_texture_new (test_ctx,
                                       COGL_TEXTURE (state->tex),
                                       DIVISION_WIDTH,
                                       DIVISION_HEIGHT,
@@ -119,21 +119,21 @@ paint (TestState *state)
   /* Paint it */
   cogl_pipeline_set_layer_texture (pipeline, 0, COGL_TEXTURE (sub_texture));
   cogl_object_unref (sub_texture);
-  cogl_framebuffer_draw_rectangle (fb, pipeline,
+  cogl_framebuffer_draw_rectangle (test_fb, pipeline,
                                    0.0f, 0.0f, DIVISION_WIDTH, DIVISION_HEIGHT);
 
 
   /* Repeat a sub texture of the top half of the full texture. This is
      documented to be undefined so it doesn't technically have to work
      but it will with the current implementation */
-  sub_texture = cogl_sub_texture_new (ctx,
+  sub_texture = cogl_sub_texture_new (test_ctx,
                                       COGL_TEXTURE (state->tex),
                                       0, 0,
                                       SOURCE_SIZE,
                                       DIVISION_HEIGHT);
   cogl_pipeline_set_layer_texture (pipeline, 0, COGL_TEXTURE (sub_texture));
   cogl_object_unref (sub_texture);
-  cogl_framebuffer_draw_textured_rectangle (fb, pipeline,
+  cogl_framebuffer_draw_textured_rectangle (test_fb, pipeline,
                                             0.0f,
                                             SOURCE_SIZE,
                                             SOURCE_SIZE * 2.0f,
@@ -143,17 +143,17 @@ paint (TestState *state)
 
   /* Create a sub texture of a sub texture */
   full_texture = create_test_texture (state);
-  sub_texture = cogl_sub_texture_new (ctx,
+  sub_texture = cogl_sub_texture_new (test_ctx,
                                       COGL_TEXTURE (full_texture),
                                       20, 10, 30, 20);
   cogl_object_unref (full_texture);
-  sub_sub_texture = cogl_sub_texture_new (ctx,
+  sub_sub_texture = cogl_sub_texture_new (test_ctx,
                                           COGL_TEXTURE (sub_texture),
                                           20, 10, 10, 10);
   cogl_object_unref (sub_texture);
   cogl_pipeline_set_layer_texture (pipeline, 0, COGL_TEXTURE (sub_sub_texture));
   cogl_object_unref (sub_sub_texture);
-  cogl_framebuffer_draw_rectangle (fb, pipeline,
+  cogl_framebuffer_draw_rectangle (test_fb, pipeline,
                                    0.0f, SOURCE_SIZE * 2.0f,
                                    10.0f, SOURCE_SIZE * 2.0f + 10.0f);
 
@@ -165,7 +165,7 @@ validate_part (int xpos, int ypos,
                int width, int height,
                guint32 color)
 {
-  test_utils_check_region (fb,
+  test_utils_check_region (test_fb,
                            xpos + TEST_INSET,
                            ypos + TEST_INSET,
                            width - TEST_INSET - 2,
@@ -221,7 +221,7 @@ validate_result (TestState *state)
   /* Sub sub texture */
   p = texture_data = g_malloc (10 * 10 * 4);
   cogl_flush ();
-  cogl_framebuffer_read_pixels (fb,
+  cogl_framebuffer_read_pixels (test_fb,
                                 0, SOURCE_SIZE * 2, 10, 10,
                                 COGL_PIXEL_FORMAT_RGBA_8888,
                                 p);
@@ -235,7 +235,7 @@ validate_result (TestState *state)
   g_free (texture_data);
 
   /* Try reading back the texture data */
-  sub_texture = cogl_sub_texture_new (ctx,
+  sub_texture = cogl_sub_texture_new (test_ctx,
                                       COGL_TEXTURE (state->tex),
                                       SOURCE_SIZE / 4,
                                       SOURCE_SIZE / 4,
@@ -266,7 +266,7 @@ validate_result (TestState *state)
   /* Create a 256x256 test texture */
   test_tex = create_test_texture (state);
   /* Create a sub texture the views the center half of the texture */
-  sub_texture = cogl_sub_texture_new (ctx,
+  sub_texture = cogl_sub_texture_new (test_ctx,
                                       COGL_TEXTURE (test_tex),
                                       64, 64, 128, 128);
   /* Update the center half of the sub texture */
@@ -314,10 +314,10 @@ test_sub_texture (void)
 
   state.tex = create_source (&state);
 
-  cogl_framebuffer_orthographic (fb,
+  cogl_framebuffer_orthographic (test_fb,
                                  0, 0,
-                                 cogl_framebuffer_get_width (fb),
-                                 cogl_framebuffer_get_height (fb),
+                                 cogl_framebuffer_get_width (test_fb),
+                                 cogl_framebuffer_get_height (test_fb),
                                  -1,
                                  100);
 
diff --git a/tests/conform/test-texture-3d.c b/tests/conform/test-texture-3d.c
index 777d023..fb9d3f5 100644
--- a/tests/conform/test-texture-3d.c
+++ b/tests/conform/test-texture-3d.c
@@ -1,4 +1,4 @@
-#include <cogl/cogl2-experimental.h>
+#include <cogl/cogl.h>
 #include <string.h>
 
 #include "test-utils.h"
@@ -73,8 +73,8 @@ create_texture_3d (CoglContext *context)
 static void
 draw_frame (TestState *state)
 {
-  CoglTexture *tex = COGL_TEXTURE (create_texture_3d (ctx));
-  CoglPipeline *pipeline = cogl_pipeline_new (ctx);
+  CoglTexture *tex = COGL_TEXTURE (create_texture_3d (test_ctx));
+  CoglPipeline *pipeline = cogl_pipeline_new (test_ctx);
   typedef struct { float x, y, s, t, r; } Vert;
   CoglPrimitive *primitive;
   CoglAttributeBuffer *attribute_buffer;
@@ -91,7 +91,7 @@ draw_frame (TestState *state)
   /* Render the texture repeated horizontally twice using a regular
      cogl rectangle. This should end up with the r texture coordinates
      as zero */
-  cogl_framebuffer_draw_textured_rectangle (fb, pipeline,
+  cogl_framebuffer_draw_textured_rectangle (test_fb, pipeline,
                                             0.0f, 0.0f, TEX_WIDTH * 2, TEX_HEIGHT,
                                             0.0f, 0.0f, 2.0f, 1.0f);
 
@@ -131,7 +131,7 @@ draw_frame (TestState *state)
       v++;
     }
 
-  attribute_buffer = cogl_attribute_buffer_new (ctx,
+  attribute_buffer = cogl_attribute_buffer_new (test_ctx,
                                                 4 * TEX_DEPTH * sizeof (Vert),
                                                 verts);
   attributes[0] = cogl_attribute_new (attribute_buffer,
@@ -152,11 +152,11 @@ draw_frame (TestState *state)
                                                   2 /* n_attributes */);
 
   cogl_primitive_set_indices (primitive,
-                              cogl_get_rectangle_indices (ctx,
+                              cogl_get_rectangle_indices (test_ctx,
                                                           TEX_DEPTH),
                               6 * TEX_DEPTH);
 
-  cogl_framebuffer_draw_primitive (fb, pipeline, primitive);
+  cogl_framebuffer_draw_primitive (test_fb, pipeline, primitive);
 
   g_free (verts);
 
@@ -174,7 +174,7 @@ validate_block (int block_x, int block_y, int z)
 
   for (y = 0; y < TEX_HEIGHT; y++)
     for (x = 0; x < TEX_WIDTH; x++)
-      test_utils_check_pixel_rgb (fb,
+      test_utils_check_pixel_rgb (test_fb,
                                   block_x * TEX_WIDTH + x,
                                   block_y * TEX_HEIGHT + y,
                                   255 - x * 8,
@@ -201,20 +201,20 @@ test_multi_texture (TestState *state)
   CoglTexture2D *tex_2d;
   guint8 tex_data[4];
 
-  cogl_framebuffer_clear4f (fb, COGL_BUFFER_BIT_COLOR, 0, 0, 0, 1);
+  cogl_framebuffer_clear4f (test_fb, COGL_BUFFER_BIT_COLOR, 0, 0, 0, 1);
 
   /* Tests a pipeline that is using multi-texturing to combine a 3D
      texture with a 2D texture. The texture from another layer is
      sampled with TEXTURE_? just to pick up a specific bug that was
      happening with the ARBfp fragend */
 
-  pipeline = cogl_pipeline_new (ctx);
+  pipeline = cogl_pipeline_new (test_ctx);
 
   tex_data[0] = 0xff;
   tex_data[1] = 0x00;
   tex_data[2] = 0x00;
   tex_data[3] = 0xff;
-  tex_2d = cogl_texture_2d_new_from_data (ctx,
+  tex_2d = cogl_texture_2d_new_from_data (test_ctx,
                                           1, 1, /* width/height */
                                           COGL_PIXEL_FORMAT_RGBA_8888_PRE,
                                           COGL_PIXEL_FORMAT_RGBA_8888_PRE,
@@ -227,7 +227,7 @@ test_multi_texture (TestState *state)
   tex_data[1] = 0xff;
   tex_data[2] = 0x00;
   tex_data[3] = 0xff;
-  tex_3d = cogl_texture_3d_new_from_data (ctx,
+  tex_3d = cogl_texture_3d_new_from_data (test_ctx,
                                           1, 1, 1, /* width/height/depth */
                                           COGL_PIXEL_FORMAT_RGBA_8888_PRE,
                                           COGL_PIXEL_FORMAT_RGBA_8888_PRE,
@@ -244,9 +244,9 @@ test_multi_texture (TestState *state)
                                    "RGBA = ADD(TEXTURE_0, TEXTURE_1)",
                                    NULL);
 
-  cogl_framebuffer_draw_rectangle (fb, pipeline, 0, 0, 10, 10);
+  cogl_framebuffer_draw_rectangle (test_fb, pipeline, 0, 0, 10, 10);
 
-  test_utils_check_pixel (fb, 5, 5, 0xffff00ff);
+  test_utils_check_pixel (test_fb, 5, 5, 0xffff00ff);
 
   cogl_object_unref (tex_2d);
   cogl_object_unref (tex_3d);
@@ -258,14 +258,14 @@ test_texture_3d (void)
 {
   /* Check whether GL supports the rectangle extension. If not we'll
      just assume the test passes */
-  if (cogl_has_feature (ctx, COGL_FEATURE_ID_TEXTURE_3D))
+  if (cogl_has_feature (test_ctx, COGL_FEATURE_ID_TEXTURE_3D))
     {
       TestState state;
 
-      state.fb_width = cogl_framebuffer_get_width (fb);
-      state.fb_height = cogl_framebuffer_get_height (fb);
+      state.fb_width = cogl_framebuffer_get_width (test_fb);
+      state.fb_height = cogl_framebuffer_get_height (test_fb);
 
-      cogl_framebuffer_orthographic (fb,
+      cogl_framebuffer_orthographic (test_fb,
                                      0, 0, /* x_1, y_1 */
                                      state.fb_width, /* x_2 */
                                      state.fb_height /* y_2 */,
diff --git a/tests/conform/test-utils.c b/tests/conform/test-utils.c
index 2259173..97f06fa 100644
--- a/tests/conform/test-utils.c
+++ b/tests/conform/test-utils.c
@@ -1,4 +1,3 @@
-#define COGL_ENABLE_EXPERIMENTAL_2_0_API
 #include <cogl/cogl.h>
 #include <stdlib.h>
 
@@ -9,8 +8,8 @@
 
 static gboolean cogl_test_is_verbose;
 
-CoglContext *ctx;
-CoglFramebuffer *fb;
+CoglContext *test_ctx;
+CoglFramebuffer *test_fb;
 
 void
 test_utils_init (TestFlags flags)
@@ -45,11 +44,11 @@ test_utils_init (TestFlags flags)
 
   g_setenv ("COGL_X11_SYNC", "1", 0);
 
-  ctx = cogl_context_new (NULL, &error);
-  if (!ctx)
+  test_ctx = cogl_context_new (NULL, &error);
+  if (!test_ctx)
     g_critical ("Failed to create a CoglContext: %s", error->message);
 
-  display = cogl_context_get_display (ctx);
+  display = cogl_context_get_display (test_ctx);
   renderer = cogl_display_get_renderer (display);
 
   if (flags & TEST_REQUIREMENT_GL &&
@@ -59,19 +58,19 @@ test_utils_init (TestFlags flags)
     }
 
   if (flags & TEST_REQUIREMENT_NPOT &&
-      !cogl_has_feature (ctx, COGL_FEATURE_ID_TEXTURE_NPOT))
+      !cogl_has_feature (test_ctx, COGL_FEATURE_ID_TEXTURE_NPOT))
     {
       missing_requirement = TRUE;
     }
 
   if (flags & TEST_REQUIREMENT_TEXTURE_3D &&
-      !cogl_has_feature (ctx, COGL_FEATURE_ID_TEXTURE_3D))
+      !cogl_has_feature (test_ctx, COGL_FEATURE_ID_TEXTURE_3D))
     {
       missing_requirement = TRUE;
     }
 
   if (flags & TEST_REQUIREMENT_POINT_SPRITE &&
-      !cogl_has_feature (ctx, COGL_FEATURE_ID_POINT_SPRITE))
+      !cogl_has_feature (test_ctx, COGL_FEATURE_ID_POINT_SPRITE))
     {
       missing_requirement = TRUE;
     }
@@ -83,13 +82,13 @@ test_utils_init (TestFlags flags)
 
   if (getenv  ("COGL_TEST_ONSCREEN"))
     {
-      onscreen = cogl_onscreen_new (ctx, 640, 480);
-      fb = COGL_FRAMEBUFFER (onscreen);
+      onscreen = cogl_onscreen_new (test_ctx, 640, 480);
+      test_fb = COGL_FRAMEBUFFER (onscreen);
     }
   else
     {
       CoglHandle offscreen;
-      CoglHandle tex = cogl_texture_2d_new_with_size (ctx,
+      CoglHandle tex = cogl_texture_2d_new_with_size (test_ctx,
                                                       FB_WIDTH, FB_HEIGHT,
                                                       COGL_PIXEL_FORMAT_ANY,
                                                       &error);
@@ -97,16 +96,16 @@ test_utils_init (TestFlags flags)
         g_critical ("Failed to allocate texture: %s", error->message);
 
       offscreen = cogl_offscreen_new_to_texture (tex);
-      fb = COGL_FRAMEBUFFER (offscreen);
+      test_fb = COGL_FRAMEBUFFER (offscreen);
     }
 
-  if (!cogl_framebuffer_allocate (fb, &error))
+  if (!cogl_framebuffer_allocate (test_fb, &error))
     g_critical ("Failed to allocate framebuffer: %s", error->message);
 
   if (onscreen)
     cogl_onscreen_show (onscreen);
 
-  cogl_framebuffer_clear4f (fb,
+  cogl_framebuffer_clear4f (test_fb,
                             COGL_BUFFER_BIT_COLOR |
                             COGL_BUFFER_BIT_DEPTH |
                             COGL_BUFFER_BIT_STENCIL,
@@ -119,11 +118,11 @@ test_utils_init (TestFlags flags)
 void
 test_utils_fini (void)
 {
-  if (fb)
-    cogl_object_unref (fb);
+  if (test_fb)
+    cogl_object_unref (test_fb);
 
-  if (ctx)
-    cogl_object_unref (ctx);
+  if (test_ctx)
+    cogl_object_unref (test_ctx);
 }
 
 static gboolean
diff --git a/tests/conform/test-utils.h b/tests/conform/test-utils.h
index 727aea8..c6909d7 100644
--- a/tests/conform/test-utils.h
+++ b/tests/conform/test-utils.h
@@ -16,8 +16,8 @@ typedef enum _TestFlags
   TEST_REQUIREMENT_POINT_SPRITE = 1<<4
 } TestFlags;
 
-extern CoglContext *ctx;
-extern CoglFramebuffer *fb;
+extern CoglContext *test_ctx;
+extern CoglFramebuffer *test_fb;
 
 void
 test_utils_init (TestFlags flags);
diff --git a/tests/conform/test-wrap-modes.c b/tests/conform/test-wrap-modes.c
index cb75705..b26a3ec 100644
--- a/tests/conform/test-wrap-modes.c
+++ b/tests/conform/test-wrap-modes.c
@@ -45,7 +45,7 @@ create_pipeline (TestState *state,
 {
   CoglPipeline *pipeline;
 
-  pipeline = cogl_pipeline_new (ctx);
+  pipeline = cogl_pipeline_new (test_ctx);
   cogl_pipeline_set_layer_texture (pipeline, 0, state->texture);
   cogl_pipeline_set_layer_filters (pipeline, 0,
                                    COGL_PIPELINE_FILTER_NEAREST,
@@ -94,7 +94,7 @@ draw_tests (TestState *state)
       wrap_mode_t = wrap_modes[i + 1];
       pipeline = create_pipeline (state, wrap_mode_s, wrap_mode_t);
       /* Render the pipeline at four times the size of the texture */
-      cogl_framebuffer_draw_textured_rectangle (fb,
+      cogl_framebuffer_draw_textured_rectangle (test_fb,
                                                 pipeline,
                                                 i * TEX_SIZE,
                                                 0,
@@ -114,66 +114,6 @@ static const CoglTextureVertex vertices[4] =
   };
 
 static void
-draw_tests_polygon (TestState *state)
-{
-  int i;
-
-  for (i = 0; i < G_N_ELEMENTS (wrap_modes); i += 2)
-    {
-      CoglPipelineWrapMode wrap_mode_s, wrap_mode_t;
-      CoglPipeline *pipeline;
-
-      wrap_mode_s = wrap_modes[i];
-      wrap_mode_t = wrap_modes[i + 1];
-      pipeline = create_pipeline (state, wrap_mode_s, wrap_mode_t);
-      cogl_set_source (pipeline);
-      cogl_object_unref (pipeline);
-      cogl_push_matrix ();
-      cogl_translate (TEX_SIZE * i, 0.0f, 0.0f);
-      /* Render the pipeline at four times the size of the texture */
-      cogl_polygon (vertices, G_N_ELEMENTS (vertices), FALSE);
-      cogl_pop_matrix ();
-    }
-}
-
-static void
-draw_tests_vbo (TestState *state)
-{
-  CoglHandle vbo;
-  int i;
-
-  vbo = cogl_vertex_buffer_new (4);
-  cogl_vertex_buffer_add (vbo, "gl_Vertex", 3,
-                          COGL_ATTRIBUTE_TYPE_FLOAT, FALSE,
-                          sizeof (vertices[0]),
-                          &vertices[0].x);
-  cogl_vertex_buffer_add (vbo, "gl_MultiTexCoord0", 2,
-                          COGL_ATTRIBUTE_TYPE_FLOAT, FALSE,
-                          sizeof (vertices[0]),
-                          &vertices[0].tx);
-  cogl_vertex_buffer_submit (vbo);
-
-  for (i = 0; i < G_N_ELEMENTS (wrap_modes); i += 2)
-    {
-      CoglPipelineWrapMode wrap_mode_s, wrap_mode_t;
-      CoglPipeline *pipeline;
-
-      wrap_mode_s = wrap_modes[i];
-      wrap_mode_t = wrap_modes[i + 1];
-      pipeline = create_pipeline (state, wrap_mode_s, wrap_mode_t);
-      cogl_set_source (pipeline);
-      cogl_object_unref (pipeline);
-      cogl_push_matrix ();
-      cogl_translate (TEX_SIZE * i, 0.0f, 0.0f);
-      /* Render the pipeline at four times the size of the texture */
-      cogl_vertex_buffer_draw (vbo, COGL_VERTICES_MODE_TRIANGLE_FAN, 0, 4);
-      cogl_pop_matrix ();
-    }
-
-  cogl_handle_unref (vbo);
-}
-
-static void
 validate_set (TestState *state, int offset)
 {
   guint8 data[TEX_SIZE * 2 * TEX_SIZE * 2 * 4], *p;
@@ -186,7 +126,7 @@ validate_set (TestState *state, int offset)
       wrap_mode_s = wrap_modes[i];
       wrap_mode_t = wrap_modes[i + 1];
 
-      cogl_framebuffer_read_pixels (fb, i * TEX_SIZE, offset * TEX_SIZE * 2,
+      cogl_framebuffer_read_pixels (test_fb, i * TEX_SIZE, offset * TEX_SIZE * 2,
                                     TEX_SIZE * 2, TEX_SIZE * 2,
                                     COGL_PIXEL_FORMAT_RGBA_8888,
                                     data);
@@ -228,8 +168,6 @@ validate_result (TestState *state)
 #if 0 /* this doesn't currently work */
   validate_set (state, 1); /* atlased rectangle */
 #endif
-  validate_set (state, 2); /* cogl_polygon */
-  validate_set (state, 3); /* vertex buffer */
 }
 
 static void
@@ -243,26 +181,10 @@ paint (TestState *state)
   /* Draw the tests again with a possible atlased texture. This should
      end up testing software repeats */
   state->texture = create_texture (COGL_TEXTURE_NONE);
-  cogl_push_matrix ();
-  cogl_translate (0.0f, TEX_SIZE * 2.0f, 0.0f);
+  cogl_framebuffer_push_matrix (test_fb);
+  cogl_framebuffer_translate (test_fb, 0.0f, TEX_SIZE * 2.0f, 0.0f);
   draw_tests (state);
-  cogl_pop_matrix ();
-  cogl_object_unref (state->texture);
-
-  /* Draw the tests using cogl_polygon */
-  state->texture = create_texture (COGL_TEXTURE_NO_ATLAS);
-  cogl_push_matrix ();
-  cogl_translate (0.0f, TEX_SIZE * 4.0f, 0.0f);
-  draw_tests_polygon (state);
-  cogl_pop_matrix ();
-  cogl_object_unref (state->texture);
-
-  /* Draw the tests using a vertex buffer */
-  state->texture = create_texture (COGL_TEXTURE_NO_ATLAS);
-  cogl_push_matrix ();
-  cogl_translate (0.0f, TEX_SIZE * 6.0f, 0.0f);
-  draw_tests_vbo (state);
-  cogl_pop_matrix ();
+  cogl_framebuffer_pop_matrix (test_fb);
   cogl_object_unref (state->texture);
 
   validate_result (state);
@@ -273,21 +195,17 @@ test_wrap_modes (void)
 {
   TestState state;
 
-  state.width = cogl_framebuffer_get_width (fb);
-  state.height = cogl_framebuffer_get_height (fb);
+  state.width = cogl_framebuffer_get_width (test_fb);
+  state.height = cogl_framebuffer_get_height (test_fb);
 
-  cogl_framebuffer_orthographic (fb,
+  cogl_framebuffer_orthographic (test_fb,
                                  0, 0,
                                  state.width,
                                  state.height,
                                  -1,
                                  100);
 
-  /* XXX: we have to push/pop a framebuffer since this test currently
-   * uses the legacy cogl_vertex_buffer_draw() api. */
-  cogl_push_framebuffer (fb);
   paint (&state);
-  cogl_pop_framebuffer ();
 
   if (cogl_test_verbose ())
     g_print ("OK\n");
diff --git a/tests/conform/test-write-texture-formats.c b/tests/conform/test-write-texture-formats.c
index 3081182..de40af9 100644
--- a/tests/conform/test-write-texture-formats.c
+++ b/tests/conform/test-write-texture-formats.c
@@ -1,4 +1,4 @@
-#include <cogl/cogl2-experimental.h>
+#include <cogl/cogl.h>
 #include <stdarg.h>
 
 #include "test-utils.h"
@@ -31,12 +31,11 @@ test_color (CoglTexture *texture,
 }
 
 static void
-test_write_byte (CoglContext *context,
-                 CoglPixelFormat format,
+test_write_byte (CoglPixelFormat format,
                  guint8 byte,
                  guint32 expected_pixel)
 {
-  CoglTexture *texture = test_utils_create_color_texture (context, 0);
+  CoglTexture *texture = test_utils_create_color_texture (test_ctx, 0);
 
   cogl_texture_set_region (texture,
                            0, 0, /* src_x / src_y */
@@ -53,12 +52,11 @@ test_write_byte (CoglContext *context,
 }
 
 static void
-test_write_short (CoglContext *context,
-                  CoglPixelFormat format,
+test_write_short (CoglPixelFormat format,
                   guint16 value,
                   guint32 expected_pixel)
 {
-  CoglTexture *texture = test_utils_create_color_texture (context, 0);
+  CoglTexture *texture = test_utils_create_color_texture (test_ctx, 0);
 
   cogl_texture_set_region (texture,
                            0, 0, /* src_x / src_y */
@@ -75,12 +73,11 @@ test_write_short (CoglContext *context,
 }
 
 static void
-test_write_bytes (CoglContext *context,
-                  CoglPixelFormat format,
+test_write_bytes (CoglPixelFormat format,
                   guint32 value,
                   guint32 expected_pixel)
 {
-  CoglTexture *texture = test_utils_create_color_texture (context, 0);
+  CoglTexture *texture = test_utils_create_color_texture (test_ctx, 0);
 
   value = GUINT32_TO_BE (value);
 
@@ -99,8 +96,7 @@ test_write_bytes (CoglContext *context,
 }
 
 static void
-test_write_int (CoglContext *context,
-                CoglPixelFormat format,
+test_write_int (CoglPixelFormat format,
                 guint32 expected_pixel,
                 ...)
 {
@@ -108,7 +104,7 @@ test_write_int (CoglContext *context,
   int bits;
   guint32 tex_data = 0;
   int bits_sum = 0;
-  CoglTexture *texture = test_utils_create_color_texture (context, 0);
+  CoglTexture *texture = test_utils_create_color_texture (test_ctx, 0);
 
   va_start (ap, expected_pixel);
 
@@ -141,43 +137,39 @@ test_write_int (CoglContext *context,
 void
 test_write_texture_formats (void)
 {
-  test_write_byte (ctx, COGL_PIXEL_FORMAT_A_8, 0x34, 0x00000034);
+  test_write_byte (COGL_PIXEL_FORMAT_A_8, 0x34, 0x00000034);
 #if 0
   /* I'm not sure what's the right value to put here because Nvidia
      and Mesa seem to behave differently so one of them must be
      wrong. */
-  test_write_byte (ctx, COGL_PIXEL_FORMAT_G_8, 0x34, 0x340000ff);
+  test_write_byte (test_ctx, COGL_PIXEL_FORMAT_G_8, 0x34, 0x340000ff);
 #endif
 
-  test_write_short (ctx, COGL_PIXEL_FORMAT_RGB_565, 0x0843, 0x080819ff);
-  test_write_short (ctx, COGL_PIXEL_FORMAT_RGBA_4444_PRE, 0x1234, 0x11223344);
-  test_write_short (ctx, COGL_PIXEL_FORMAT_RGBA_5551_PRE, 0x0887, 0x081019ff);
+  test_write_short (COGL_PIXEL_FORMAT_RGB_565, 0x0843, 0x080819ff);
+  test_write_short (COGL_PIXEL_FORMAT_RGBA_4444_PRE, 0x1234, 0x11223344);
+  test_write_short (COGL_PIXEL_FORMAT_RGBA_5551_PRE, 0x0887, 0x081019ff);
 
-  test_write_bytes (ctx, COGL_PIXEL_FORMAT_RGB_888, 0x123456ff, 0x123456ff);
-  test_write_bytes (ctx, COGL_PIXEL_FORMAT_BGR_888, 0x563412ff, 0x123456ff);
+  test_write_bytes (COGL_PIXEL_FORMAT_RGB_888, 0x123456ff, 0x123456ff);
+  test_write_bytes (COGL_PIXEL_FORMAT_BGR_888, 0x563412ff, 0x123456ff);
 
-  test_write_bytes (ctx, COGL_PIXEL_FORMAT_RGBA_8888_PRE,
-                    0x12345678, 0x12345678);
-  test_write_bytes (ctx, COGL_PIXEL_FORMAT_BGRA_8888_PRE,
-                    0x56341278, 0x12345678);
-  test_write_bytes (ctx, COGL_PIXEL_FORMAT_ARGB_8888_PRE,
-                    0x78123456, 0x12345678);
-  test_write_bytes (ctx, COGL_PIXEL_FORMAT_ABGR_8888_PRE,
-                    0x78563412, 0x12345678);
+  test_write_bytes (COGL_PIXEL_FORMAT_RGBA_8888_PRE, 0x12345678, 0x12345678);
+  test_write_bytes (COGL_PIXEL_FORMAT_BGRA_8888_PRE, 0x56341278, 0x12345678);
+  test_write_bytes (COGL_PIXEL_FORMAT_ARGB_8888_PRE, 0x78123456, 0x12345678);
+  test_write_bytes (COGL_PIXEL_FORMAT_ABGR_8888_PRE, 0x78563412, 0x12345678);
 
-  test_write_int (ctx, COGL_PIXEL_FORMAT_RGBA_1010102_PRE,
+  test_write_int (COGL_PIXEL_FORMAT_RGBA_1010102_PRE,
                   0x123456ff,
                   10, 0x12, 10, 0x34, 10, 0x56, 2, 0xff,
                   -1);
-  test_write_int (ctx, COGL_PIXEL_FORMAT_BGRA_1010102_PRE,
+  test_write_int (COGL_PIXEL_FORMAT_BGRA_1010102_PRE,
                   0x123456ff,
                   10, 0x56, 10, 0x34, 10, 0x12, 2, 0xff,
                   -1);
-  test_write_int (ctx, COGL_PIXEL_FORMAT_ARGB_2101010_PRE,
+  test_write_int (COGL_PIXEL_FORMAT_ARGB_2101010_PRE,
                   0x123456ff,
                   2, 0xff, 10, 0x12, 10, 0x34, 10, 0x56,
                   -1);
-  test_write_int (ctx, COGL_PIXEL_FORMAT_ABGR_2101010_PRE,
+  test_write_int (COGL_PIXEL_FORMAT_ABGR_2101010_PRE,
                   0x123456ff,
                   2, 0xff, 10, 0x56, 10, 0x34, 10, 0x12,
                   -1);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]