[cairo-commit] papers/opengl_freenix04 opengl_freenix04.tex, 1.50,
1.51
Peter Nilsson
commit at pdx.freedesktop.org
Fri Apr 23 08:16:57 PDT 2004
- Previous message: [cairo-commit]
cairo/src cairo_gl_surface.c, 1.1, 1.2 cairo_gstate.c,
1.45, 1.46 cairo_pattern.c, 1.3, 1.4 cairo_surface.c, 1.26,
1.27 cairoint.h, 1.56, 1.57
- Next message: [cairo-commit] cairo ChangeLog,1.179,1.180
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Committed by: peter
Update of /cvs/cairo/papers/opengl_freenix04
In directory pdx:/tmp/cvs-serv29951
Modified Files:
opengl_freenix04.tex
Log Message:
Final touch
Index: opengl_freenix04.tex
===================================================================
RCS file: /cvs/cairo/papers/opengl_freenix04/opengl_freenix04.tex,v
retrieving revision 1.50
retrieving revision 1.51
diff -C2 -d -r1.50 -r1.51
*** a/opengl_freenix04.tex 8 Apr 2004 15:35:05 -0000 1.50
--- b/opengl_freenix04.tex 23 Apr 2004 15:16:49 -0000 1.51
***************
*** 8,12 ****
\usepackage{amsmath}
! \def\libname{glitz}
\def\Libname{Glitz}
\def\libnamespace{glitz}
--- 8,12 ----
\usepackage{amsmath}
! \def\libname{Glitz}
\def\Libname{Glitz}
\def\libnamespace{glitz}
***************
*** 58,70 ****
\section{Introduction}
! There is an obvious trend visible in the appearance of modern window systems
and 2D graphics in general these days.
They all become more and more loaded with graphical features and visual
effects for each available product generation.
! Unfortunately, these features demand a lot of computation time from the CPU.
! In the past this has meant a slowdown throughout the entire system as
! well as a significant limitation in the kind of visual effects that could be
! used.
In the field of 3D graphics, similar problems have been solved by
--- 58,70 ----
\section{Introduction}
! There is a trend visible in the appearance of modern window systems
and 2D graphics in general these days.
They all become more and more loaded with graphical features and visual
effects for each available product generation.
! Unfortunately, these features means heavy computations that takes a lot
! of time when carried out by the general CPU. In the past this has meant a
! slowdown throughout the entire system as well as a significant limitation
! in the kind of visual effects that could be used.
In the field of 3D graphics, similar problems have been solved by
***************
*** 84,92 ****
This paper presents \libname, an open source implementation of a 2D graphics
! library that uses OpenGL~\cite{gl:1.2.1} to realize a hardware
accelerated high performance rendering environment.
Furthermore, these ideas have been applied to the X Window System
! (X)~\cite{x}, to see if they could improve hardware acceleration of
graphical applications and thereby making way for more advanced graphics.
--- 84,92 ----
This paper presents \libname, an open source implementation of a 2D graphics
! library that uses OpenGL\cite{gl:1.2.1} to realize a hardware
accelerated high performance rendering environment.
Furthermore, these ideas have been applied to the X Window System
! (X)\cite{x}, to see if they could improve hardware acceleration of
graphical applications and thereby making way for more advanced graphics.
***************
*** 104,108 ****
One major improvement was made with the introduction of the X Render
! Extension (Render)~\cite{render:2000}. Render has widely been accepted
as the new rendering model for X. It brought the desired graphics
operations to the applications and thereby filled in the gaps of the
--- 104,108 ----
One major improvement was made with the introduction of the X Render
! Extension (Render)\cite{render:2000}. Render has widely been accepted
as the new rendering model for X. It brought the desired graphics
operations to the applications and thereby filled in the gaps of the
***************
*** 111,116 ****
polygon rendering, text rendering and image transformations. The core
of Render is its image compositing model, which borrows fundamental notions
! from the Plan 9 window system~\cite{pike:draw}. Render provides a unified
! rendering operation, which supports the Porter-Duff~\cite{porterduff:1984}
style compositing operators. All pixel manipulations are carried out
through this operation. This provides for a simple and consistent model
--- 111,116 ----
polygon rendering, text rendering and image transformations. The core
of Render is its image compositing model, which borrows fundamental notions
! from the Plan 9 window system\cite{pike:draw}. Render provides a unified
! rendering operation, which supports the Porter-Duff\cite{porterduff:1984}
style compositing operators. All pixel manipulations are carried out
through this operation. This provides for a simple and consistent model
***************
*** 120,124 ****
server-side. Graphics operations that are performed on server-side
can be accelerated by graphics hardware. XFree86's\cite{xfree86} Render
! implementation uses XFree86 Acceleration Architecture (XAA)~\cite{xaa} to
achieve hardware accelerated rendering. XAA breaks down complex Render
operations into simpler ones and accelerates them if support is provided
--- 120,124 ----
server-side. Graphics operations that are performed on server-side
can be accelerated by graphics hardware. XFree86's\cite{xfree86} Render
! implementation uses XFree86 Acceleration Architecture (XAA)\cite{xaa} to
achieve hardware accelerated rendering. XAA breaks down complex Render
operations into simpler ones and accelerates them if support is provided
***************
*** 151,157 ****
operations, not always suitable for direct use by application developers.
A higher level graphics API is needed on top of the Render model to make
! it useful for this purpose. The cairo (formerly known as Xr~\cite{xr})
! library is a modern, open source, cross-platform 2D graphics API designed
! for multiple output devices. With its PDF~\cite{pdf14}-like 2D graphics API,
it provides an attractive and powerful vector based drawing environment.
Cairo uses a backend system to realize its multiple output formats.
--- 151,157 ----
operations, not always suitable for direct use by application developers.
A higher level graphics API is needed on top of the Render model to make
! it useful for this purpose. The cairo library (formerly known as Xr\cite{xr})
! is a modern, open source, cross-platform 2D graphics API designed
! for multiple output devices. With its PDF\cite{pdf14}-like 2D graphics API,
it provides an attractive and powerful vector based drawing environment.
Cairo uses a backend system to realize its multiple output formats.
***************
*** 178,184 ****
\end{centering}
\end{figure}
!
! OpenGL is the obvious way to accelerate graphics output, in 2D as well as
! 3D. Most people think of OpenGL as a 3D graphics API, which is
understandable because it was used primarily for 3D applications like
visualizations and games in the past. However, it is just as well suited for
--- 178,184 ----
\end{centering}
\end{figure}
!
! OpenGL can be used to accelerate 2D graphics output, just as with 3D.
! Most people think of OpenGL as a 3D graphics API, which is
understandable because it was used primarily for 3D applications like
visualizations and games in the past. However, it is just as well suited for
***************
*** 236,241 ****
graphics engines that can perform hardware accelerated rendering in a
similar manner to the model discussed here. The one, that has probably
! attracted most attention is Apple's Quartz Extreme~\cite{quartzextreme}
! compositing engine used in Mac OS X~\cite{macosx}. The user interface in
Mac OS X is loaded with advanced graphics effects of the nature discussed
in this paper. They all seem to run smoothly without bringing too much
--- 236,241 ----
graphics engines that can perform hardware accelerated rendering in a
similar manner to the model discussed here. The one, that has probably
! attracted most attention is Apple's Quartz Extreme\cite{quartzextreme}
! compositing engine used in Mac OS X\cite{macosx}. The user interface in
Mac OS X is loaded with advanced graphics effects of the nature discussed
in this paper. They all seem to run smoothly without bringing too much
***************
*** 243,252 ****
Microsoft is also developing something similar in their
! Avalon~\cite{avalon} graphics engine. It will be a fundamental part for
hardware accelerated 2D graphics in the next windows version, currently
! being developed under the name Windows Longhorn~\cite{longhorn}.
\Libname{} is not the first Open Source graphics library that
! has been layered on top of OpenGL. An example, Evas~\cite{evas};
a hardware accelerated canvas API, which is part of the Enlightenment
Foundation Libraries. \Libname{} is unique compared to these libraries
--- 243,252 ----
Microsoft is also developing something similar in their
! Avalon\cite{avalon} graphics engine. It will be a fundamental part for
hardware accelerated 2D graphics in the next windows version, currently
! being developed under the name Windows Longhorn\cite{longhorn}.
\Libname{} is not the first Open Source graphics library that
! has been layered on top of OpenGL. An example, Evas\cite{evas};
a hardware accelerated canvas API, which is part of the Enlightenment
Foundation Libraries. \Libname{} is unique compared to these libraries
***************
*** 282,290 ****
for the core of the library to be compiled for multiple backends.
! As of now \libname{} has two backends, for GLX~\cite{glx} and
! AGL~\cite{agl}. GLX is the OpenGL layer used on Unix~\cite{unix:1977} like
systems to provide a glue layer between OpenGL and X. AGL is an OpenGL
! layer available in Mac OS. Backends for other OpenGL layers will be
! added later on.
\subsection{Rendering Model}
--- 282,290 ----
for the core of the library to be compiled for multiple backends.
! As of now \libname{} has two backends, for GLX\cite{glx} and
! AGL\cite{agl}. GLX is the OpenGL layer used on Unix\cite{unix:1977} like
systems to provide a glue layer between OpenGL and X. AGL is an OpenGL
! layer available in Mac OS. Backends for other OpenGL layers can be added
! in the future.
\subsection{Rendering Model}
***************
*** 314,318 ****
Off-screen drawing is an essential part of an immediate mode 2D graphics
API. Support for off-screen drawing in OpenGL has been around
! for a long time on IRIX~\cite{irix} systems and other workstations, but
it is not until recently that it has become a standard feature on the
regular home desktop computer.
--- 314,318 ----
Off-screen drawing is an essential part of an immediate mode 2D graphics
API. Support for off-screen drawing in OpenGL has been around
! for a long time on IRIX\cite{irix} systems and other workstations, but
it is not until recently that it has become a standard feature on the
regular home desktop computer.
***************
*** 581,585 ****
Built in text handling is planned for future versions of the library and
! tests have proven that this will increase glyph rendering speed to
around 200000 glyphs per second.
--- 581,585 ----
Built in text handling is planned for future versions of the library and
! tests have indicated that this should increase glyph rendering speed to
around 200000 glyphs per second.
***************
*** 664,721 ****
of performance.
! \subsubsection{Useful Convolution Kernels}
!
! Table~\ref{table:conv} presents three useful convolution kernels and
! figure ~\ref{fig:conv_original} and ~\ref{fig:conv_gaussian} show the
! results of filtering an image using a Gaussian convolution kernel.
!
! \begin{table}[htbp]
! \begin{tabular}{l l}
! Gaussian Blur Filter: &
! \begin{math}
! \begin{bmatrix}
! 0& 1& 0\\
! 1& 4& 1\\
! 0& 1& 0
! \end{bmatrix}
! \end{math}
! \\\vspace{5pt} & \vspace{5pt}\\
! High Pass (HP) Filter: &
! \begin{math}
! \begin{bmatrix}
! 0& -1& 0\\
! -1& 5& -1\\
! 0& -1& 0
! \end{bmatrix}
! \end{math}
! \\\vspace{5pt} & \vspace{5pt}\\
! Emboss Filter: &
! \begin{math}
! \begin{bmatrix}
! 1& 0& 0\\
! 0& 0& 0\\
! 0& 0& -1
! \end{bmatrix}
! \end{math}
! \end{tabular}
! \caption{\small\itshape Useful convolution kernels}
! \label{table:conv}
! \end{table}
\begin{figure}[h!tbp]
\begin{centering}
\epsfig{file=conv-original.eps}
! \small\itshape
! \caption{\small\itshape Original image}
! \label{fig:conv_original}
! \end{centering}
! \end{figure}
!
! \begin{figure}[h!tbp]
! \begin{centering}
\epsfig{file=conv-gaussian.eps}
! \small\itshape
! \caption{\small\itshape Image after Gaussian convolution filtering}
! \label{fig:conv_gaussian}
\end{centering}
\end{figure}
--- 664,690 ----
of performance.
! This is an example of a convolution kernel representing a
! gaussian blur filter.
!
! \vspace{10pt}
! \begin{math}
! \begin{bmatrix}
! 0& 1& 0\\
! 1& 4& 1\\
! 0& 1& 0
! \end{bmatrix}
! \end{math}
! \vspace{10pt}
+ Figure~\ref{gauss} shows an image before and after applying a gaussian
+ filter using the convolution kernel above.
+
\begin{figure}[h!tbp]
\begin{centering}
\epsfig{file=conv-original.eps}
! \\~\\
\epsfig{file=conv-gaussian.eps}
! \caption{\small\itshape An image before and after applying a Gaussian convolution filter}
! \label{gauss}
\end{centering}
\end{figure}
***************
*** 729,734 ****
In addition to the 2D drawing functions, \libname{} also
provides a set of functions that make it possible to use
! \libname{} as a cross-platform OpenGL layer. The following three
! functions allow the application to use ordinary OpenGL calls
to draw on any \libname{} surface.
--- 698,706 ----
In addition to the 2D drawing functions, \libname{} also
provides a set of functions that make it possible to use
! \libname{} as a cross-platform OpenGL layer.
!
! \newpage
!
! The following three functions allow the application to use ordinary OpenGL calls
to draw on any \libname{} surface.
***************
*** 893,897 ****
This section presents results from a benchmark utility named rendermark.
Rendermark compares the rendering performance of \libname{}, Xrender and
! Imlib2~\cite{imlib2} by doing a set of basic operations a repeated number
of times. Comparison with Imlib2 is interesting as it is promoted as
the fastest image compositing, rendering and manipulation library for X.
--- 865,869 ----
This section presents results from a benchmark utility named rendermark.
Rendermark compares the rendering performance of \libname{}, Xrender and
! Imlib2\cite{imlib2} by doing a set of basic operations a repeated number
of times. Comparison with Imlib2 is interesting as it is promoted as
the fastest image compositing, rendering and manipulation library for X.
***************
*** 1058,1062 ****
\subsubsection{Hardware Accelerated Xrender}
! Nvidias's~\cite{nvidia} binary XFree86 drivers contains an experimental
feature that allows the driver to hardware accelerate the Render extension
on XFree86's X server. Some Render operations are known to perform
--- 1030,1034 ----
\subsubsection{Hardware Accelerated Xrender}
! Nvidias's\cite{nvidia} binary XFree86 drivers contains an experimental
feature that allows the driver to hardware accelerate the Render extension
on XFree86's X server. Some Render operations are known to perform
- Previous message: [cairo-commit]
cairo/src cairo_gl_surface.c, 1.1, 1.2 cairo_gstate.c,
1.45, 1.46 cairo_pattern.c, 1.3, 1.4 cairo_surface.c, 1.26,
1.27 cairoint.h, 1.56, 1.57
- Next message: [cairo-commit] cairo ChangeLog,1.179,1.180
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the cairo-commit
mailing list