gzz-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz-commits] gzz Documentation/Manuscripts/Irregu/irregu.tex...


From: Tuomas J. Lukka
Subject: [Gzz-commits] gzz Documentation/Manuscripts/Irregu/irregu.tex...
Date: Sun, 10 Nov 2002 04:40:24 -0500

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Tuomas J. Lukka <address@hidden>        02/11/10 04:40:22

Modified files:
        Documentation/Manuscripts/Irregu: irregu.tex 
        gfx/demo/opengl: imaging.py 
        gfx/libcallgl  : callgl.cxx 

Log message:
        Make irregu borders using readpixels, convolution and drawpixels

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/Documentation/Manuscripts/Irregu/irregu.tex.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/opengl/imaging.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/libcallgl/callgl.cxx.diff?tr1=1.35&tr2=1.36&r1=text&r2=text

Patches:
Index: gzz/Documentation/Manuscripts/Irregu/irregu.tex
diff -u gzz/Documentation/Manuscripts/Irregu/irregu.tex:1.4 
gzz/Documentation/Manuscripts/Irregu/irregu.tex:1.5
--- gzz/Documentation/Manuscripts/Irregu/irregu.tex:1.4 Fri Nov  8 05:45:50 2002
+++ gzz/Documentation/Manuscripts/Irregu/irregu.tex     Sun Nov 10 04:40:21 2002
@@ -139,6 +139,8 @@
 
 \section{OpenGL implementation}
 
+Image-space algorithm: ... slow on NV10
+
 GL\_EXT\_texture\_env\_add \& alpha ``mesh'' texture.
 
 Content drawn using stencil.
Index: gzz/gfx/demo/opengl/imaging.py
diff -u gzz/gfx/demo/opengl/imaging.py:1.1 gzz/gfx/demo/opengl/imaging.py:1.2
--- gzz/gfx/demo/opengl/imaging.py:1.1  Sat Nov  9 15:19:25 2002
+++ gzz/gfx/demo/opengl/imaging.py      Sun Nov 10 04:40:22 2002
@@ -1,9 +1,11 @@
+from gfx.libutil import effects
 
 c = java.util.Random()
 
 class BlurScene:
     def __init__(self):
        self.bv = GL.createByteVector(1024 * 768 * 4)
+       self.f = effects.IrreguFrame(0, 0, 1000, 1000, 20, 200)
     def key(self, key):
        pass
     def scene(self, vs):
@@ -12,29 +14,59 @@
        sx = 600
        sy = 600
 
-       vs.put(coloredQuad((1,1,1)), "A", 10, 100*c.nextDouble(), 
100*c.nextDouble(), 200, 100)
-       vs.put(coloredQuad((1,1,1)), "B", 100, 150*c.nextDouble(), 
150*c.nextDouble(), 200, 100)
+
+       f1cs = vs.orthoCS(0, "X", 50, 100*c.nextDouble(), 100*c.nextDouble(), 
200, 100)
+       vs.map.put(self.f.getContent(), 0, f1cs)
+
+       f1cs = vs.orthoCS(0, "Y", 70, 100*c.nextDouble(), 100*c.nextDouble(), 
200, 100)
+       vs.map.put(self.f.getContent(), 0, f1cs)
+
+       # vs.put(coloredQuad((1,1,1)), "A", 10, 100*c.nextDouble(), 
100*c.nextDouble(), 200, 100)
+       # vs.put(coloredQuad((1,1,1)), "B", 100, 150*c.nextDouble(), 
150*c.nextDouble(), 200, 100)
        vs.put(coloredQuad((1,1,1)), "C", 1000, 180*c.nextDouble(), 
180*c.nextDouble(), 200, 100)
+
        vs.map.put(getDListNocoords("""
+       PushAttrib CURRENT_BIT COLOR_BUFFER_BIT DEPTH_BUFFER_BIT ENABLE_BIT 
PIXEL_MODE_BIT
            Disable ALPHA_TEST
            Disable BLEND
            ReadBuffer BACK
-           SeparableFilter2D SEPARABLE_2D LUMINANCE 2 2 LUMINANCE 1 -1 1 -1
+           SeparableFilter2D SEPARABLE_2D LUMINANCE 3 3 LUMINANCE 1 -2 1 .5 -1 
.5
            ConvolutionParameter SEPARABLE_2D CONVOLUTION_BORDER_MODE 
REPLICATE_BORDER
-           ConvolutionFilter2D CONVOLUTION_2D LUMINANCE 2 1 LUMINANCE .5 -.5
+           ConvolutionFilter2D CONVOLUTION_2D LUMINANCE 2 2 LUMINANCE .5 -.6 
-.3 .4
            ConvolutionParameter CONVOLUTION_2D CONVOLUTION_BORDER_MODE 
REPLICATE_BORDER
 
+           ConvolutionFilter2D CONVOLUTION_2D LUMINANCE 3 3 LUMINANCE \
+                   .5 -.6 .4 \
+                   -.2 .9 -.5 \
+                   -.4 -.4 .3
+
            Enable SEPARABLE_2D
            Enable CONVOLUTION_2D
+           PixelTransfer POST_CONVOLUTION_RED_BIAS .5
+           PixelTransfer POST_CONVOLUTION_RED_SCALE 3000
+           PixelTransfer POST_CONVOLUTION_GREEN_BIAS .5
+           PixelTransfer POST_CONVOLUTION_GREEN_SCALE 3000
+           PixelTransfer POST_CONVOLUTION_BLUE_BIAS .5
+           PixelTransfer POST_CONVOLUTION_BLUE_SCALE 3000
+
+           ColorTableEXT POST_CONVOLUTION_COLOR_TABLE LUMINANCE 4 LUMINANCE \
+               1 0 0 1
+           Disable POST_CONVOLUTION_COLOR_TABLE
+           Enable POST_CONVOLUTION_COLOR_TABLE
        """))
 
        getp = GLRen.createReadPixels(sx, sy,
-                   "DEPTH_COMPONENT", "UNSIGNED_BYTE", self.bv)
+                   "DEPTH_COMPONENT", "UNSIGNED_INT", self.bv)
        putp = GLRen.createDrawPixels(sx, sy,
-                   "LUMINANCE", "UNSIGNED_BYTE", self.bv)
+                   "LUMINANCE", "UNSIGNED_INT", self.bv)
+
        cs = vs.orthoCS(0, "dp", 0, 20, sy-20, 1, 1)
        vs.map.put(getp, cs)
        vs.map.put(putp, cs)
+
+       vs.map.put(getDListNocoords("""
+           PopAttrib
+       """))
 
        
 
Index: gzz/gfx/libcallgl/callgl.cxx
diff -u gzz/gfx/libcallgl/callgl.cxx:1.35 gzz/gfx/libcallgl/callgl.cxx:1.36
--- gzz/gfx/libcallgl/callgl.cxx:1.35   Sat Nov  9 15:19:25 2002
+++ gzz/gfx/libcallgl/callgl.cxx        Sun Nov 10 04:40:22 2002
@@ -230,7 +230,9 @@
          glTexImage2D(getToken(v[1]), atoi(v[2].c_str()), getToken(v[3]),
                       w, h, atoi(v[6].c_str()), getToken(v[7]),
                       GL_UNSIGNED_SHORT, &pixels[0]);
-       } else if (checkfunc(v, "ColorTableEXT", 5, true)) {
+       } else if (checkfunc(v, "ColorTable", 5, true) ||
+                   checkfunc(v, "ColorTableEXT", 5, true) ||
+                ) {
          vector<GLfloat> pixels = getfv(v, 5);
          glColorTableEXT(
                    getToken(v[1]), getToken(v[2]),
@@ -271,6 +273,9 @@
          } else {
            glConvolutionParameterf(getToken(v[1]), getToken(v[2]), 
getTokenf(v[3]));
          }
+
+       } else if (checkfunc(v, "PixelTransfer", 2)) {
+           glPixelTransferf(getToken(v[1]), getTokenf(v[2]));
 
        } else if (checkfunc(v, "TexEnv", 3, true)) {
          if (v.size() > 4) {




reply via email to

[Prev in Thread] Current Thread [Next in Thread]