stipple_alpha.cc

00001 /*===========================================================================*\
00002  *                                                                           *
00003  *                              OpenFlipper                                  *
00004  *      Copyright (C) 2001-2009 by Computer Graphics Group, RWTH Aachen      *
00005  *                           www.openflipper.org                             *
00006  *                                                                           *
00007  *---------------------------------------------------------------------------*
00008  *  This file is part of OpenFlipper.                                        *
00009  *                                                                           *
00010  *  OpenFlipper is free software: you can redistribute it and/or modify      *
00011  *  it under the terms of the GNU Lesser General Public License as           *
00012  *  published by the Free Software Foundation, either version 3 of           *
00013  *  the License, or (at your option) any later version with the              *
00014  *  following exceptions:                                                    *
00015  *                                                                           *
00016  *  If other files instantiate templates or use macros                       *
00017  *  or inline functions from this file, or you compile this file and         *
00018  *  link it with other files to produce an executable, this file does        *
00019  *  not by itself cause the resulting executable to be covered by the        *
00020  *  GNU Lesser General Public License. This exception does not however       *
00021  *  invalidate any other reasons why the executable file might be            *
00022  *  covered by the GNU Lesser General Public License.                        *
00023  *                                                                           *
00024  *  OpenFlipper is distributed in the hope that it will be useful,           *
00025  *  but WITHOUT ANY WARRANTY; without even the implied warranty of           *
00026  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            *
00027  *  GNU Lesser General Public License for more details.                      *
00028  *                                                                           *
00029  *  You should have received a copy of the GNU LesserGeneral Public          *
00030  *  License along with OpenFlipper. If not,                                  *
00031  *  see <http://www.gnu.org/licenses/>.                                      *
00032  *                                                                           *
00033 \*===========================================================================*/
00034 
00035 /*===========================================================================*\
00036  *                                                                           *
00037  *   $Revision: 6743 $                                                       *
00038  *   $Author: moebius $                                                      *
00039  *   $Date: 2009-08-05 11:03:10 +0200 (Mi, 05. Aug 2009) $                   *
00040  *                                                                           *
00041 \*===========================================================================*/
00042 
00043 
00044 //=============================================================================
00045 //
00046 //  Stipple Polygon Transparency - IMPLEMENTATION
00047 //
00048 //=============================================================================
00049 
00050 //== INCLUDES =================================================================
00051 
00052 
00053 #include "stipple_alpha.hh"
00054 #include "gl.hh"
00055 
00056 
00057 //== NAMESPACES ===============================================================
00058 namespace ACG {
00059 //== IMPLEMENTATION ========================================================== 
00060 
00061 
00062 const GLubyte stippleMask[17][128] =
00063 {
00064   /* NOTE: 0% opaqueness is faster to set and probably faster to render with:
00065         glDisable(GL_POLYGON_STIPPLE);
00066         glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE); */
00067   {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
00068    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
00069    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
00070    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
00071    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
00072    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
00073    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
00074    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
00075    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
00076    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
00077    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
00078    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
00079    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
00080    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
00081    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
00082    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
00083 
00084   {0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 
00085    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
00086    0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 
00087    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
00088    0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 
00089    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
00090    0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 
00091    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
00092    0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 
00093    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
00094    0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 
00095    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
00096    0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00,
00097    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
00098    0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 
00099    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
00100 
00101   {0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 
00102    0x22, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00,
00103    0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 
00104    0x22, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00,
00105    0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 
00106    0x22, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00,
00107    0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 
00108    0x22, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00,
00109    0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 
00110    0x22, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00,
00111    0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 
00112    0x22, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00,
00113    0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 
00114    0x22, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00,
00115    0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00, 
00116    0x22, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00},
00117 
00118   {0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 
00119    0x22, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00,
00120    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 
00121    0x22, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00,
00122    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 
00123    0x22, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00,
00124    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 
00125    0x22, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00,
00126    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 
00127    0x22, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00,
00128    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 
00129    0x22, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00,
00130    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 
00131    0x22, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00,
00132    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 
00133    0x22, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00},
00134 
00135   {0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 
00136    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
00137    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 
00138    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
00139    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 
00140    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
00141    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 
00142    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
00143    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 
00144    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
00145    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 
00146    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
00147    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 
00148    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
00149    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00, 
00150    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00},
00151 
00152   {0xaa, 0xaa, 0xaa, 0xaa, 0x44, 0x44, 0x44, 0x44, 
00153    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
00154    0xaa, 0xaa, 0xaa, 0xaa, 0x44, 0x44, 0x44, 0x44, 
00155    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
00156    0xaa, 0xaa, 0xaa, 0xaa, 0x44, 0x44, 0x44, 0x44, 
00157    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
00158    0xaa, 0xaa, 0xaa, 0xaa, 0x44, 0x44, 0x44, 0x44, 
00159    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
00160    0xaa, 0xaa, 0xaa, 0xaa, 0x44, 0x44, 0x44, 0x44, 
00161    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
00162    0xaa, 0xaa, 0xaa, 0xaa, 0x44, 0x44, 0x44, 0x44, 
00163    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
00164    0xaa, 0xaa, 0xaa, 0xaa, 0x44, 0x44, 0x44, 0x44, 
00165    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00,
00166    0xaa, 0xaa, 0xaa, 0xaa, 0x44, 0x44, 0x44, 0x44, 
00167    0xaa, 0xaa, 0xaa, 0xaa, 0x00, 0x00, 0x00, 0x00},
00168 
00169   {0xaa, 0xaa, 0xaa, 0xaa, 0x44, 0x44, 0x44, 0x44, 
00170    0xaa, 0xaa, 0xaa, 0xaa, 0x11, 0x11, 0x11, 0x11,
00171    0xaa, 0xaa, 0xaa, 0xaa, 0x44, 0x44, 0x44, 0x44, 
00172    0xaa, 0xaa, 0xaa, 0xaa, 0x11, 0x11, 0x11, 0x11,
00173    0xaa, 0xaa, 0xaa, 0xaa, 0x44, 0x44, 0x44, 0x44, 
00174    0xaa, 0xaa, 0xaa, 0xaa, 0x11, 0x11, 0x11, 0x11,
00175    0xaa, 0xaa, 0xaa, 0xaa, 0x44, 0x44, 0x44, 0x44, 
00176    0xaa, 0xaa, 0xaa, 0xaa, 0x11, 0x11, 0x11, 0x11,
00177    0xaa, 0xaa, 0xaa, 0xaa, 0x44, 0x44, 0x44, 0x44, 
00178    0xaa, 0xaa, 0xaa, 0xaa, 0x11, 0x11, 0x11, 0x11,
00179    0xaa, 0xaa, 0xaa, 0xaa, 0x44, 0x44, 0x44, 0x44, 
00180    0xaa, 0xaa, 0xaa, 0xaa, 0x11, 0x11, 0x11, 0x11,
00181    0xaa, 0xaa, 0xaa, 0xaa, 0x44, 0x44, 0x44, 0x44, 
00182    0xaa, 0xaa, 0xaa, 0xaa, 0x11, 0x11, 0x11, 0x11,
00183    0xaa, 0xaa, 0xaa, 0xaa, 0x44, 0x44, 0x44, 0x44, 
00184    0xaa, 0xaa, 0xaa, 0xaa, 0x11, 0x11, 0x11, 0x11},
00185 
00186   {0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 
00187    0xaa, 0xaa, 0xaa, 0xaa, 0x11, 0x11, 0x11, 0x11,
00188    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 
00189    0xaa, 0xaa, 0xaa, 0xaa, 0x11, 0x11, 0x11, 0x11,
00190    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 
00191    0xaa, 0xaa, 0xaa, 0xaa, 0x11, 0x11, 0x11, 0x11,
00192    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 
00193    0xaa, 0xaa, 0xaa, 0xaa, 0x11, 0x11, 0x11, 0x11,
00194    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 
00195    0xaa, 0xaa, 0xaa, 0xaa, 0x11, 0x11, 0x11, 0x11,
00196    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 
00197    0xaa, 0xaa, 0xaa, 0xaa, 0x11, 0x11, 0x11, 0x11,
00198    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 
00199    0xaa, 0xaa, 0xaa, 0xaa, 0x11, 0x11, 0x11, 0x11,
00200    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 
00201    0xaa, 0xaa, 0xaa, 0xaa, 0x11, 0x11, 0x11, 0x11},
00202 
00203   {0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 
00204    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
00205    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
00206    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
00207    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 
00208    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
00209    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 
00210    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
00211    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
00212    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
00213    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 
00214    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
00215    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 
00216    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
00217    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55, 
00218    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55},
00219 
00220   {0xee, 0xee, 0xee, 0xee, 0x55, 0x55, 0x55, 0x55, 
00221    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
00222    0xee, 0xee, 0xee, 0xee, 0x55, 0x55, 0x55, 0x55, 
00223    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
00224    0xee, 0xee, 0xee, 0xee, 0x55, 0x55, 0x55, 0x55, 
00225    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
00226    0xee, 0xee, 0xee, 0xee, 0x55, 0x55, 0x55, 0x55, 
00227    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
00228    0xee, 0xee, 0xee, 0xee, 0x55, 0x55, 0x55, 0x55, 
00229    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
00230    0xee, 0xee, 0xee, 0xee, 0x55, 0x55, 0x55, 0x55, 
00231    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
00232    0xee, 0xee, 0xee, 0xee, 0x55, 0x55, 0x55, 0x55, 
00233    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55,
00234    0xee, 0xee, 0xee, 0xee, 0x55, 0x55, 0x55, 0x55, 
00235    0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x55, 0x55, 0x55},
00236 
00237   {0xee, 0xee, 0xee, 0xee, 0x55, 0x55, 0x55, 0x55, 
00238    0xbb, 0xbb, 0xbb, 0xbb, 0x55, 0x55, 0x55, 0x55,
00239    0xee, 0xee, 0xee, 0xee, 0x55, 0x55, 0x55, 0x55, 
00240    0xbb, 0xbb, 0xbb, 0xbb, 0x55, 0x55, 0x55, 0x55,
00241    0xee, 0xee, 0xee, 0xee, 0x55, 0x55, 0x55, 0x55, 
00242    0xbb, 0xbb, 0xbb, 0xbb, 0x55, 0x55, 0x55, 0x55,
00243    0xee, 0xee, 0xee, 0xee, 0x55, 0x55, 0x55, 0x55, 
00244    0xbb, 0xbb, 0xbb, 0xbb, 0x55, 0x55, 0x55, 0x55,
00245    0xee, 0xee, 0xee, 0xee, 0x55, 0x55, 0x55, 0x55, 
00246    0xbb, 0xbb, 0xbb, 0xbb, 0x55, 0x55, 0x55, 0x55,
00247    0xee, 0xee, 0xee, 0xee, 0x55, 0x55, 0x55, 0x55, 
00248    0xbb, 0xbb, 0xbb, 0xbb, 0x55, 0x55, 0x55, 0x55,
00249    0xee, 0xee, 0xee, 0xee, 0x55, 0x55, 0x55, 0x55, 
00250    0xbb, 0xbb, 0xbb, 0xbb, 0x55, 0x55, 0x55, 0x55,
00251    0xee, 0xee, 0xee, 0xee, 0x55, 0x55, 0x55, 0x55, 
00252    0xbb, 0xbb, 0xbb, 0xbb, 0x55, 0x55, 0x55, 0x55},
00253 
00254   {0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 
00255    0xbb, 0xbb, 0xbb, 0xbb, 0x55, 0x55, 0x55, 0x55,
00256    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 
00257    0xbb, 0xbb, 0xbb, 0xbb, 0x55, 0x55, 0x55, 0x55,
00258    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 
00259    0xbb, 0xbb, 0xbb, 0xbb, 0x55, 0x55, 0x55, 0x55,
00260    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 
00261    0xbb, 0xbb, 0xbb, 0xbb, 0x55, 0x55, 0x55, 0x55,
00262    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 
00263    0xbb, 0xbb, 0xbb, 0xbb, 0x55, 0x55, 0x55, 0x55,
00264    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 
00265    0xbb, 0xbb, 0xbb, 0xbb, 0x55, 0x55, 0x55, 0x55,
00266    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
00267    0xbb, 0xbb, 0xbb, 0xbb, 0x55, 0x55, 0x55, 0x55,
00268    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 
00269    0xbb, 0xbb, 0xbb, 0xbb, 0x55, 0x55, 0x55, 0x55},
00270 
00271   {0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 
00272    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
00273    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 
00274    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
00275    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 
00276    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
00277    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 
00278    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
00279    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 
00280    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
00281    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 
00282    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
00283    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 
00284    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
00285    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55, 
00286    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55},
00287 
00288   {0xff, 0xff, 0xff, 0xff, 0xdd, 0xdd, 0xdd, 0xdd, 
00289    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
00290    0xff, 0xff, 0xff, 0xff, 0xdd, 0xdd, 0xdd, 0xdd, 
00291    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
00292    0xff, 0xff, 0xff, 0xff, 0xdd, 0xdd, 0xdd, 0xdd, 
00293    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
00294    0xff, 0xff, 0xff, 0xff, 0xdd, 0xdd, 0xdd, 0xdd, 
00295    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
00296    0xff, 0xff, 0xff, 0xff, 0xdd, 0xdd, 0xdd, 0xdd, 
00297    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
00298    0xff, 0xff, 0xff, 0xff, 0xdd, 0xdd, 0xdd, 0xdd, 
00299    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
00300    0xff, 0xff, 0xff, 0xff, 0xdd, 0xdd, 0xdd, 0xdd, 
00301    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55,
00302    0xff, 0xff, 0xff, 0xff, 0xdd, 0xdd, 0xdd, 0xdd, 
00303    0xff, 0xff, 0xff, 0xff, 0x55, 0x55, 0x55, 0x55},
00304 
00305   {0xff, 0xff, 0xff, 0xff, 0xdd, 0xdd, 0xdd, 0xdd, 
00306    0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x77, 0x77,
00307    0xff, 0xff, 0xff, 0xff, 0xdd, 0xdd, 0xdd, 0xdd, 
00308    0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x77, 0x77,
00309    0xff, 0xff, 0xff, 0xff, 0xdd, 0xdd, 0xdd, 0xdd, 
00310    0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x77, 0x77,
00311    0xff, 0xff, 0xff, 0xff, 0xdd, 0xdd, 0xdd, 0xdd, 
00312    0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x77, 0x77,
00313    0xff, 0xff, 0xff, 0xff, 0xdd, 0xdd, 0xdd, 0xdd, 
00314    0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x77, 0x77,
00315    0xff, 0xff, 0xff, 0xff, 0xdd, 0xdd, 0xdd, 0xdd, 
00316    0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x77, 0x77,
00317    0xff, 0xff, 0xff, 0xff, 0xdd, 0xdd, 0xdd, 0xdd, 
00318    0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x77, 0x77,
00319    0xff, 0xff, 0xff, 0xff, 0xdd, 0xdd, 0xdd, 0xdd, 
00320    0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x77, 0x77},
00321 
00322   {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
00323    0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x77, 0x77,
00324    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
00325    0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x77, 0x77,
00326    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
00327    0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x77, 0x77,
00328    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
00329    0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x77, 0x77,
00330    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
00331    0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x77, 0x77,
00332    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
00333    0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x77, 0x77,
00334    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
00335    0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x77, 0x77,
00336    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
00337    0xff, 0xff, 0xff, 0xff, 0x77, 0x77, 0x77, 0x77},
00338 
00339   /* NOTE: 100% opaqueness is faster to set and probably faster to render with:
00340         glDisable(GL_POLYGON_STIPPLE); */
00341   {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
00342    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
00343    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
00344    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
00345    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
00346    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
00347    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
00348    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
00349    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
00350    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
00351    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
00352    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
00353    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
00354    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
00355    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
00356    0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff},
00357 };
00358 
00359 
00360 //-----------------------------------------------------------------------------
00361 
00362 
00363 void stipple_alpha(float _alpha)
00364 {
00365   // transparent
00366   if (_alpha < 1.0)
00367   {
00368     if (_alpha < 0.0) _alpha = 0.0;
00369 
00370     glEnable(GL_POLYGON_STIPPLE);
00371     glPolygonStipple(stippleMask[ (unsigned int)(_alpha * 16.0 + 0.5)]);
00372   }
00373 
00374   // opaque
00375   else
00376   {
00377     glDisable(GL_POLYGON_STIPPLE);
00378   }
00379 }
00380 
00381 
00382 //=============================================================================
00383 } // namespace ACG
00384 //=============================================================================

acg pic Project OpenFlipper, ©  Computer Graphics Group, RWTH Aachen. Documentation generated using doxygen .