[cairo-commit] papers/opengl_freenix04 opengl_freenix04.tex, 1.35,
1.36
David Reveman
commit at pdx.freedesktop.org
Wed Mar 31 06:58:20 PST 2004
Committed by: davidr
Update of /cvs/cairo/papers/opengl_freenix04
In directory pdx:/tmp/cvs-serv18202
Modified Files:
opengl_freenix04.tex
Log Message:
text
Index: opengl_freenix04.tex
===================================================================
RCS file: /cvs/cairo/papers/opengl_freenix04/opengl_freenix04.tex,v
retrieving revision 1.35
retrieving revision 1.36
diff -C2 -d -r1.35 -r1.36
*** a/opengl_freenix04.tex 27 Mar 2004 13:12:43 -0000 1.35
--- b/opengl_freenix04.tex 31 Mar 2004 14:58:18 -0000 1.36
***************
*** 8,14 ****
\usepackage{amsmath}
! \def\libname{libglc}
! \def\libnamespace{glc}
! \def\libnamespaceU{GLC}
\begin{document}
--- 8,14 ----
\usepackage{amsmath}
! \def\libname{glitz}
! \def\libnamespace{glitz}
! \def\libnamespaceU{GLITZ}
\begin{document}
***************
*** 258,271 ****
As OpenGL layers are available for various platforms and systems, the
library is designed to be usable with any of various OpenGL
! implementations. Different OpenGL implementations can be used by
! plugging them in to the core of the library through a virtualized
! backend. Each backend only needs to provide a few functions which
! will allow for the core of the library to perform its rendering
! operations unaware of the structure of the underlying OpenGL layer.
! Having a virtualized backend instead of just choosing code to compile
! using preprocessor macros has the advantage of making the link between the
! OpenGL implementation and the core of the library more flexible and
! allows for the library to be compiled for multiple backends.
As of now \libname{} has two backends, for GLX and AGL. GLX is the OpenGL
--- 258,277 ----
As OpenGL layers are available for various platforms and systems, the
library is designed to be usable with any of various OpenGL
! layers. Different OpenGL layers can be used by plugging them in to
! the core of \libname{} through a virtualized backend. Each backend
! needs to provide a table of OpenGL function pointers and few additional
! functions which will allow for the core to perform its rendering
! operations unaware of the structure of the underlying OpenGL layer.
! The core of \libname{} is built as a separate library with a minimum
! set of dependencies. Each backend is built into its own library and
! different applications can use different backend libraries with the same
! core library.
!
! Having a virtualized backend and different backend libraries instead of
! just choosing code to compile using preprocessor macros has the
! advantage of making the link between the OpenGL implementation and the
! core of the library more flexible and allows for the core of the library
! to be compiled for multiple backends.
As of now \libname{} has two backends, for GLX and AGL. GLX is the OpenGL
***************
*** 425,463 ****
\end{itemize}
- \subsubsection{Direct Polygons}
-
- \libname{} is able to render polygons directly onto a destination
- surface. Each polygon vertex has a specific color associated with it.
- If the color differ between any of the vertices in a polygon, colors
- will be blended between them. Direct polygons have the advantages
- of not requiring an intermediate offscreen buffer and are therefor
- faster and supported on hardware without offscreen drawing support.
- Direct polygons might not produce the same results as indirect polygons
- when alpha component differ from one and should as a result not be
- used for complex objects with these properties. The more general
- indirect polygons should be used in these cases instead.
-
- \subsubsection{Indirect Polygons}
-
- \libname{} has two different methods for rendering indirect polygons.
- Using an intermediate offscreen surface or using a stencil buffer.
-
- The first method creates an offscreen surface containing only an alpha
- channel. The polygons are then rendered into this surface and this
- intermediate surface is then used as mask when compositing the
- supplied source surface onto the destination surface. This method
- requires offscreen drawing support and anti-aliased polygon edges can
- only be rendered if offscreen multi-sample support is available.
-
- Whenever a stencil buffer is available, it will be used for drawing
- indirect polygons. The polygons are then rendered into the stencil
- buffer and the stencil buffer is then used for clipping when
- compositing the supplied source surface onto the destination surface.
- This method for drawing indirect polygons is faster and doesn't require
- offscreen drawing support. When rendering to onscreen surfaces only
- onscreen mutli-sample support is needed for anti-aliased polygons.
-
- Indirect polygons can be used for pattern filling of complex objects.
-
\subsubsection{Anti-aliasing}
--- 431,434 ----
***************
*** 553,556 ****
--- 524,562 ----
support, high memory consumption, bad performance or poor results.
+ \subsubsection{Direct Polygons}
+
+ \libname{} is able to render polygons directly onto a destination
+ surface. Each polygon vertex has a specific color associated with it.
+ If the color differ between any of the vertices in a polygon, colors
+ will be blended between them. Direct polygons have the advantages
+ of not requiring an intermediate offscreen buffer and are therefor
+ faster and supported on hardware without offscreen drawing support.
+ Direct polygons might not produce the same results as indirect polygons
+ when alpha component differ from one and should as a result not be
+ used for complex objects with these properties. The more general
+ indirect polygons should be used in these cases instead.
+
+ \subsubsection{Indirect Polygons}
+
+ \libname{} has two different methods for rendering indirect polygons.
+ Using an intermediate offscreen surface or using a stencil buffer.
+
+ The first method creates an offscreen surface containing only an alpha
+ channel. The polygons are then rendered into this surface and this
+ intermediate surface is then used as mask when compositing the
+ supplied source surface onto the destination surface. This method
+ requires offscreen drawing support and anti-aliased polygon edges can
+ only be rendered if offscreen multi-sample support is available.
+
+ Whenever a stencil buffer is available, it will be used for drawing
+ indirect polygons. The polygons are then rendered into the stencil
+ buffer and the stencil buffer is then used for clipping when
+ compositing the supplied source surface onto the destination surface.
+ This method for drawing indirect polygons is faster and doesn't require
+ offscreen drawing support. When rendering to onscreen surfaces only
+ onscreen mutli-sample support is needed for anti-aliased polygons.
+
+ Indirect polygons can be used for pattern filling of complex objects.
+
\subsection{Text Rendering}
***************
*** 568,575 ****
\subsection{Clipping}
! Just as Render, \libname{} supports non-rectangular clipping. There is
! one big difference, though. In \libname{} clipping only restricts
! writing to a surface. \libname{}'s clipping interface cannot restrict
! reading of a surface.
\subsection{Convolution Filters}
--- 574,584 ----
\subsection{Clipping}
! Render can restrict read and writes to a drawable using a clip-mask.
! Clients can create this clip-mask on its own or implicitly generate it
! using a set of rectangles. \libname{} has a similar clipping interface
! but the clip-mask cannot be created by the application, it must always
! be implicitly generated from a set of rectangles, triangles and trapezoids.
! With \libname{} clipping only restricts writing to a surface.
! \libname{}'s clipping interface cannot restrict reading of a surface.
\subsection{Convolution Filters}
More information about the cairo-commit
mailing list