mutter/cogl
Neil Roberts fecaaea132 cogl-path: Use the GLU tesselator to draw paths
Instead of drawing paths using the stencil buffer trick, it now
tesselates the path into triangles using the GLU tesselator and
renders them directly. A vbo is created with one vertex for each node
on the path. The tesselator is used to generate a series of indices
into the vbo as triangles. The tesselator's output of strips and fans
is converted into GL_TRIANGLES so that it can be rendered with a
single draw call (but the vertices are still shared via the
indices). The vbo is stored with the path so that if the application
uses retained paths then Cogl won't have to tessellate again.

The vertices also have texture coordinates associated with them so
that it can replicate the old behaviour of drawing a material with a
texture by fitting the texture to the bounding box of the path and
then clipping it. However if the texture contains waste or is sliced
then the vertex buffer code will refuse to draw it. In this case it
will revert back to drawing the path into the stencil buffer and then
drawing the material as a clipped quad.

The VBO is used even when setting up the stencil buffer for clipping
to a path because the tessellated geometry may cover less area.

The old scanline rasterizer has been removed because the tesselator
should work equally well on drivers with no stencil buffer.
2010-06-29 20:37:13 +01:00
..
driver cogl: Remove cogl-defines.h.in from the driver make files 2010-06-23 17:44:09 +01:00
tesselator cogl: Pull in the code for GLU tesselator from Mesa/SGI 2010-06-29 20:37:13 +01:00
winsys texture-pixmap-x11: don't assume anything about the GLXFBConfig type 2010-06-22 16:53:59 +01:00
cogl-atlas-texture-private.h
cogl-atlas-texture.c cogl-texture: Replace the ensure_mipmaps virtual with pre_paint 2010-06-22 11:47:33 +01:00
cogl-atlas.c
cogl-atlas.h
cogl-bitmap-fallback.c
cogl-bitmap-pixbuf.c
cogl-bitmap-private.h bitmap: Remove use of CoglHandle in the CoglBitmap API 2010-06-01 12:20:59 +01:00
cogl-bitmap.c bitmap: Remove use of CoglHandle in the CoglBitmap API 2010-06-01 12:20:59 +01:00
cogl-bitmap.h bitmap: Remove use of CoglHandle in the CoglBitmap API 2010-06-01 12:20:59 +01:00
cogl-bitmask.c
cogl-bitmask.h
cogl-blend-string.c blend-strings: removes the AUTO_COMPOSITE function enum 2010-06-15 15:26:27 +01:00
cogl-blend-string.h blend-strings: removes the AUTO_COMPOSITE function enum 2010-06-15 15:26:27 +01:00
cogl-buffer-private.h buffer: Remove use of CoglHandle in the CoglBuffer API 2010-05-28 18:42:33 +01:00
cogl-buffer.c material: Adds backend abstraction for fragment processing 2010-06-09 17:15:59 +01:00
cogl-buffer.h buffer: Remove use of CoglHandle in the CoglBuffer API 2010-05-28 18:42:33 +01:00
cogl-clip-stack.c gles2: don't disable clip planes for GLES2 2010-06-22 11:35:22 +01:00
cogl-clip-stack.h clip_stack: Remove use of CoglHandle in the CoglClipStack API 2010-06-01 12:20:59 +01:00
cogl-clip-state.c cogl-clip-state: Export transform_point internally to Cogl 2010-06-10 21:52:49 +01:00
cogl-clip-state.h
cogl-color-private.h cogl-color: add private _cogl_color_get_rgba_4ubv API 2010-06-15 15:26:27 +01:00
cogl-color.c cogl-color: add cogl_color_init_from_xyz funcs 2010-06-15 15:26:27 +01:00
cogl-color.h cogl-color: add cogl_color_init_from_xyz funcs 2010-06-15 15:26:27 +01:00
cogl-context.c cogl: Add a struct for winsys-specific data to CoglContext 2010-06-22 11:47:33 +01:00
cogl-context.h cogl: Add a struct for winsys-specific data to CoglContext 2010-06-22 11:47:33 +01:00
cogl-debug.c Add a CoglTexturePixmapX11 texture backend 2010-06-22 12:22:48 +01:00
cogl-debug.h Add a CoglTexturePixmapX11 texture backend 2010-06-22 12:22:48 +01:00
cogl-defines.h.in cogl-defines.h: Add a COGL_HAS_X11 define 2010-06-22 12:22:47 +01:00
cogl-deprecated.h
cogl-enum-types.c.in
cogl-enum-types.h.in
cogl-feature-private.c cogl: Add the infrastructure for checking for winsys extensions 2010-06-22 12:22:43 +01:00
cogl-feature-private.h cogl: Add the infrastructure for checking for winsys extensions 2010-06-22 12:22:43 +01:00
cogl-fixed.c
cogl-fixed.h analysis: Fix some CoglFixed API 2010-06-01 12:08:18 +01:00
cogl-framebuffer-private.h
cogl-framebuffer.c cogl: Initialize the framebuffer bits on state flush 2010-06-10 19:55:18 +01:00
cogl-handle.h CoglObject: Adds cogl_object_{get,set}_user_data 2010-06-04 14:44:15 +01:00
cogl-internal.h Pass all Xlib events through Cogl 2010-06-22 12:20:59 +01:00
cogl-journal-private.h cogl: remove _cogl_material_flush_gl_state flush options 2010-06-15 15:26:27 +01:00
cogl-journal.c material: remove override options from _cogl_material_equal 2010-06-15 15:26:27 +01:00
cogl-material-private.h cogl-texture: Replace the ensure_mipmaps virtual with pre_paint 2010-06-22 11:47:33 +01:00
cogl-material.c cogl: Add const to some pointer arguments 2010-06-28 15:25:19 +01:00
cogl-material.h cogl: Add const to some pointer arguments 2010-06-28 15:25:19 +01:00
cogl-matrix-mesa.c
cogl-matrix-mesa.h
cogl-matrix-private.h
cogl-matrix-stack.c
cogl-matrix-stack.h
cogl-matrix.c matrix: add cogl_matrix_equal API 2010-06-09 15:19:31 +01:00
cogl-matrix.h matrix: add cogl_matrix_equal API 2010-06-09 15:19:31 +01:00
cogl-object-private.h Add COGL_{OBJECT,HANDLE}_DEFINE_WITH_CODE 2010-06-22 11:47:33 +01:00
cogl-object.c CoglObject: Adds cogl_object_{get,set}_user_data 2010-06-04 14:44:15 +01:00
cogl-object.h CoglObject: Adds a COGL_OBJECT macro for casting 2010-06-04 14:44:15 +01:00
cogl-offscreen.h
cogl-path-private.h cogl-path: Use the GLU tesselator to draw paths 2010-06-29 20:37:13 +01:00
cogl-path.c cogl-path: Use the GLU tesselator to draw paths 2010-06-29 20:37:13 +01:00
cogl-path.h cogl: Add const to some pointer arguments 2010-06-28 15:25:19 +01:00
cogl-pixel-buffer-private.h
cogl-pixel-buffer.c material: Adds backend abstraction for fragment processing 2010-06-09 17:15:59 +01:00
cogl-pixel-buffer.h
cogl-primitives.c cogl-texture: Replace the ensure_mipmaps virtual with pre_paint 2010-06-22 11:47:33 +01:00
cogl-primitives.h
cogl-profile.c
cogl-profile.h
cogl-shader.h
cogl-spans.c
cogl-spans.h
cogl-sub-texture-private.h
cogl-sub-texture.c cogl-texture: Replace the ensure_mipmaps virtual with pre_paint 2010-06-22 11:47:33 +01:00
cogl-texture-2d-private.h Add _cogl_texture_2d_externally_modified 2010-06-22 11:47:32 +01:00
cogl-texture-2d-sliced-private.h
cogl-texture-2d-sliced.c cogl-texture: Replace the ensure_mipmaps virtual with pre_paint 2010-06-22 11:47:33 +01:00
cogl-texture-2d.c cogl-texture: Replace the ensure_mipmaps virtual with pre_paint 2010-06-22 11:47:33 +01:00
cogl-texture-driver.h material: Avoid redundant glBindTexture calls 2010-06-09 17:26:15 +01:00
cogl-texture-private.h cogl-texture: Replace the ensure_mipmaps virtual with pre_paint 2010-06-22 11:47:33 +01:00
cogl-texture-rectangle-private.h cogl: Add an internal CoglTextureRectangle backend 2010-06-22 11:47:33 +01:00
cogl-texture-rectangle.c cogl: Add an internal CoglTextureRectangle backend 2010-06-22 11:47:33 +01:00
cogl-texture.c cogl-texture: Avoid premult conversion if the dst format has no alpha 2010-06-22 12:22:47 +01:00
cogl-texture.h
cogl-types.h material: Make CoglMaterial responsible for depth state 2010-06-15 15:26:28 +01:00
cogl-util.c CoglObject: Adds cogl_object_{get,set}_user_data 2010-06-04 14:44:15 +01:00
cogl-util.h
cogl-vector.c
cogl-vector.h
cogl-vertex-buffer-private.h
cogl-vertex-buffer.c cogl-texture: Replace the ensure_mipmaps virtual with pre_paint 2010-06-22 11:47:33 +01:00
cogl-vertex-buffer.h
cogl.c material: Make CoglMaterial responsible for depth state 2010-06-15 15:26:28 +01:00
cogl.h material: Make CoglMaterial responsible for depth state 2010-06-15 15:26:28 +01:00
cogl.pc.in
Makefile.am cogl: Pull in the code for GLU tesselator from Mesa/SGI 2010-06-29 20:37:13 +01:00
stb_image.c