[cairo-commit] papers/opengl_freenix04 flow.png,NONE,1.1 Makefile,1.5,1.6 opengl_freenix04.tex,1.23,1.24

Peter Nilsson commit at pdx.freedesktop.org
Mon Aug 15 11:12:59 PDT 2005


Committed by: peter

Update of /cvs/cairo/papers/opengl_freenix04
In directory pdx:/tmp/cvs-serv7649

Modified Files:
	Makefile opengl_freenix04.tex 
Added Files:
	flow.png 
Log Message:
OpenGL summary in intro + Section about Exposing the OpenGL API

--- NEW FILE: flow.png ---
(This appears to be a binary file; contents omitted.)

Index: Makefile
===================================================================
RCS file: /cvs/cairo/papers/opengl_freenix04/Makefile,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** a/Makefile	22 Feb 2004 15:48:43 -0000	1.5
--- b/Makefile	23 Feb 2004 13:49:09 -0000	1.6
***************
*** 7,11 ****
  	layers.eps \
  	sinus.eps \
! 	jaggies.eps
  
  all: ${MASTER}.ps ${MASTER}.ps.gz ${MASTER}.pdf
--- 7,12 ----
  	layers.eps \
  	sinus.eps \
! 	jaggies.eps \
! 	flow.eps
  
  all: ${MASTER}.ps ${MASTER}.ps.gz ${MASTER}.pdf

Index: opengl_freenix04.tex
===================================================================
RCS file: /cvs/cairo/papers/opengl_freenix04/opengl_freenix04.tex,v
retrieving revision 1.23
retrieving revision 1.24
diff -C2 -d -r1.23 -r1.24
*** a/opengl_freenix04.tex	23 Feb 2004 11:55:24 -0000	1.23
--- b/opengl_freenix04.tex	23 Feb 2004 13:49:09 -0000	1.24
***************
*** 1,3 ****
! \documentclass[finalversion]{usetex-v1}
  
  \usepackage{url}        
--- 1,3 ----
! \documentclass[workingdraft]{usetex-v1}
  
  \usepackage{url}        
***************
*** 13,17 ****
    \title{\libname{}: Hardware Accelerated Image Compositing using OpenGL}
  
!   \docstatus{Preparing for submission to USENIX Conference 2004}
  
    \author{
--- 13,17 ----
    \title{\libname{}: Hardware Accelerated Image Compositing using OpenGL}
  
!   \docstatus{Preparing for presentation at USENIX Conference 2004}
  
    \author{
***************
*** 84,88 ****
    in that context. 
  
!   \subsection{Traditional Graphics Rendering in X}
  
    X wasn't originally designed for the advanced graphics
--- 84,88 ----
    in that context. 
  
!   \subsection{Traditional X Graphics}
  
    X wasn't originally designed for the advanced graphics
***************
*** 129,137 ****
    and more consistent hardware acceleration of the rendering process.
  
    Still the question remains about how to actually render all the graphics
    with hardware support. OpenGL~\cite{gl:1.2.1} is the most widely used and
!   supported graphics API available today, it has great support for hardware
!   acceleration and is very portable. For these reasons the choice has been
!   made to use OpenGL to realize the rendering in the library.
  
    The Render model provides only low level fundamental graphics 
--- 129,155 ----
    and more consistent hardware acceleration of the rendering process.
  
+ 
    Still the question remains about how to actually render all the graphics
    with hardware support. OpenGL~\cite{gl:1.2.1} is the most widely used and
!   supported graphics API available today, it is widely supported in hardware
!   and is very portable. OpenGL operates on image data as well as geometric 
!   primitives and offers the necessary operations needed for the creation of 
!   \libname{}.For these reasons the choice has been made to use OpenGL to 
!   realize the rendering in the library.
! 
!   \begin{figure}[htbp]
!     \begin{centering}
!       \epsfig{file=flow.eps}
!       \small\itshape
!       \caption{\small\itshape The OpenGL Visualization Programming Pipeline}
!       \label{layers}
!     \end{centering}
!   \end{figure}
! 
!   In addition to OpenGL's fixed rendering pipeline there are methods for 
!   adding new functionallity to the API if needed. An example of this is
!   fragment programs, which are a way to write new fragment manipulating 
!   operations in an assembler-like fashion. Fragment programs are frequently
!   used in the implementation of \libname{}, more details in later sections.
  
    The Render model provides only low level fundamental graphics 
***************
*** 382,386 ****
  
        \subsubsection{Anti-aliasing}
! 
        Aliasing is a general term used to describe the problems that may
        occur whenever an analog signal is point sampled to convert it into
--- 400,404 ----
  
        \subsubsection{Anti-aliasing}
!       
        Aliasing is a general term used to describe the problems that may
        occur whenever an analog signal is point sampled to convert it into
***************
*** 510,513 ****
--- 528,532 ----
        surfaces when rendering indirect polygons.
  
+ 
      \subsection{Text Rendering}
  
***************
*** 613,616 ****
--- 632,666 ----
                probably implement it soon.}
  
+     \subsection{Exposing the OpenGL API}
+ 
+     \libname{} provides three functions that allows for the application to 
+     use the complete OpenGL API for rendering on some \libname{} surface. 
+     These functions are:
+ 
+     \begin {itemize}
+       \item glc\_surface\_gl\_begin 
+       \item glc\_surface\_gl\_end
+       \item glc\_surface\_get\_gl\_texture
+     \end {itemize}
+ 
+     The first two functions together make out a block in the \libname{} 
+     application in which ordinary OpenGL calls can be safely executed.
+     No \libname{} calls are allowed within this block.
+     The last function returns the texture for a corresponding surface, which 
+     is handy if you want to execute some OpenGL command on that surface.
+     You need the texture to operate on.
+ 
+     Allowing for the applications to perform ordinary OpenGL calls in this 
+     way enables \libname to also act as an easy to use toolkit on top of 
+     OpenGL. The initialization process then becomes much simplified and it takes
+     only a few lines of code to set up a powerful OpenGL drawing environment
+     for on- and offscreeen rendering.
+ 
+     An example of usage is application that implements a visual effect 
+     like a 3D transformation on a 2D surface created with \libname{}. 
+     Something like the well known cube effect in Mac OS X's user switching 
+     procedure could easily be implemented with a \libname{} application in this 
+     fashion.
+ 
      \subsection{Still Under Construction}
  





More information about the cairo-commit mailing list