[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] gzz/gfx/demo irregu3.py
From: |
Janne V. Kujala |
Subject: |
[Gzz-commits] gzz/gfx/demo irregu3.py |
Date: |
Mon, 28 Oct 2002 13:55:14 -0500 |
CVSROOT: /cvsroot/gzz
Module name: gzz
Changes by: Janne V. Kujala <address@hidden> 02/10/28 13:55:14
Modified files:
gfx/demo : irregu3.py
Log message:
cleanup
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/irregu3.py.diff?tr1=1.25&tr2=1.26&r1=text&r2=text
Patches:
Index: gzz/gfx/demo/irregu3.py
diff -u gzz/gfx/demo/irregu3.py:1.25 gzz/gfx/demo/irregu3.py:1.26
--- gzz/gfx/demo/irregu3.py:1.25 Mon Oct 28 09:19:46 2002
+++ gzz/gfx/demo/irregu3.py Mon Oct 28 13:55:14 2002
@@ -41,8 +41,6 @@
print "Using 2-vector HILO displacement texture with
GL_NV_texture_shader"
using_shader = 1
- global use_stencil
- #use_stencil = 0
edgetex_inner = getCachedTexture(
[1, edgetexsize, 0, 1, "ALPHA", "ALPHA", "irreguedge",
["line_width", "2",
@@ -173,8 +171,6 @@
texenv = """
TexEnv TEXTURE_ENV TEXTURE_ENV_MODE ADD
- Enable ALPHA_TEST
- AlphaFunc LESS 1
"""
texenv_inner = texenv
texenv_outer = texenv
@@ -201,11 +197,16 @@
["irregu", args + ["invert", "1"]],
shade_all_levels = 1)
+ global reinit
+ reinit = 1
+
init(profiles[0])
def globalkey(k):
+ global reinit
+
if "F1" <= k <= "F4":
global profiles
init(profiles[int(k[1]) - 1])
@@ -215,18 +216,16 @@
elif k == "t":
global use_texture
use_texture = not use_texture
- elif k == "i":
- global use_stencil
- use_stencil = not use_stencil
+ reinit = 1
global lodbias
- if k == "b": lodbias += .25; print "lodbias", lodbias
- elif k == "B": lodbias -= .25; print "lodbias", lodbias
+ if k == "b": lodbias += .25; print "lodbias", lodbias; reinit = 1
+ elif k == "B": lodbias -= .25; print "lodbias", lodbias; reinit = 1
global edgelodbias
- if k == "e": edgelodbias += .25; print "edgelodbias", edgelodbias
- elif k == "E": edgelodbias -= .25; print "edgelodbias", edgelodbias
+ if k == "e": edgelodbias += .25; print "edgelodbias", edgelodbias; reinit
= 1
+ elif k == "E": edgelodbias -= .25; print "edgelodbias", edgelodbias;
reinit = 1
global texscale
- if k == "s": texscale *= 1.2; print "texscale", texscale
- elif k == "S": texscale /= 1.2; print "texscale", texscale
+ if k == "s": texscale *= 1.2; print "texscale", texscale; reinit = 1
+ elif k == "S": texscale /= 1.2; print "texscale", texscale; reinit = 1
# alpha(y) = e / y * f >= e
@@ -267,10 +266,10 @@
angle = atan2(y1 - y0, x1 - x0) - texangle
- dx = -cos(angle)
- dy = -sin(angle)
-
if using_shader:
+ dx = -cos(angle)
+ dy = -sin(angle)
+
texcoords += [ [ (0, 0, 0),
(0, 0, 0),
(0, 0, striplen / texscale * edgetexsize),
@@ -299,7 +298,7 @@
cols = [ colmap0(vec),
colmap1(vec),
colmap0(vec),
- colmap1(vec)
+ colmap1(vec),
]
code = """
@@ -323,16 +322,6 @@
ActiveTexture TEXTURE0
""" % edgelodbias
- if use_stencil:
- code += """
- # Create edge stencil
- ColorMask 0 0 0 0
- StencilMask 255
- Enable STENCIL_TEST
- StencilFunc ALWAYS 0 255
- StencilOp INCR INCR INCR
- """
-
if alphalevel:
code += """
Enable ALPHA_TEST
@@ -344,13 +333,6 @@
else:
code += texenv_inner % locals()
- if outer and texenv_inner == texenv_outer:
- code += """
- PushMatrix
- Translate %s
- """ % js(vecmul(nvec[:3], 24. / scale))
-
-
code += """
Begin QUAD_STRIP
""" % locals()
@@ -373,15 +355,9 @@
code += """
End
- ColorMask 1 1 1 1
PopAttrib
"""
- if outer and texenv_inner == texenv_outer:
- code += """
- PopMatrix
- """
-
#print code
return code
@@ -392,23 +368,96 @@
self.angle = 0
self.tx, self.ty = 0, 0
self.bg = background((0.7,0.7,1.0))
-
- def scene(self, vs):
- putnoc(vs, self.bg)
- global scale
- scale = self.scale
+ self.use_stencil = 1
- cs3 = vs.coords.affineCoordsys(0, 0, 512, 384, self.scale, 0, 0,
self.scale)
- vs.matcher.add(cs3, "3")
+ self.stencil_init = getDListNocoords("""
+ # Create stencil
+ StencilMask 255
+ Enable STENCIL_TEST
+ StencilFunc ALWAYS 0 255
+ StencilOp INCR INCR INCR
+ ColorMask 0 0 0 0
+ """)
+
+ self.stencil_use = getDListNocoords("""
+ Enable STENCIL_TEST
+ StencilFunc EQUAL 0 255
+ StencilOp ZERO ZERO ZERO
+ ColorMask 1 1 1 1
+ """)
+
+ self.stencil_teardown = getDListNocoords("""
+ Disable STENCIL_TEST
+ """)
+
+
+ def initIrregu(self):
+ global reinit
+ if not reinit: return
+ reinit = 0
- #texscale = 1
+ print "Creating new irregu"
x0 = -1 - 0.5 * ripple_scale * texscale
x1 = 1 + 0.5 * ripple_scale * texscale
y0 = x0
y1 = x1
+ texid = getCachedTexture([4, 4, 0, 3, "RGB", "RGB", "geometric",
+ ["type", "1", "scale", ".25", "bias",
".75"]]).getTexId()
+
+ if use_texture:
+ tex2d = "Enable"
+ else:
+ tex2d = "Disable"
+
+
+ paint = """
+ PushAttrib ENABLE_BIT
+ Disable ALPHA_TEST
+ %(tex2d)s TEXTURE_2D
+ BindTexture TEXTURE_2D %(texid)s
+ TexParameter TEXTURE_2D TEXTURE_MIN_FILTER NEAREST
+ TexParameter TEXTURE_2D TEXTURE_MAG_FILTER NEAREST
+ #TexEnv TEXTURE_ENV TEXTURE_ENV_MODE MODULATE
+ Begin QUAD_STRIP
+ TexCoord 0 0
+ Vertex %(x0)s %(y0)s
+ TexCoord 2.25 0
+ Vertex %(x1)s %(y0)s
+ TexCoord 0 2.25
+ Vertex %(x0)s %(y1)s
+ TexCoord 2.25 2.25
+ Vertex %(x1)s %(y1)s
+ End
+ PopAttrib
+ """ % locals()
+
+ self.outer_paint = getDList("Color 0 0 0" + paint)
+
+ self.inner_paint = getDList("Color 1 1 1" + paint)
+
+ self.outer_edge = getDList(
+ getIrregu(0,x0,-1,x1,-1,1, texscale, self.angle) +
+ getIrregu(0,+1,y0,+1,y1,1, texscale, self.angle) +
+ getIrregu(1,x1,+1,x0,+1,1, texscale, self.angle) +
+ getIrregu(1,-1,y1,-1,y0,1, texscale, self.angle))
+
+ self.inner_edge = getDList(
+ getIrregu(0,x0,-1,x1,-1,0, texscale, self.angle) +
+ getIrregu(0,+1,y0,+1,y1,0, texscale, self.angle) +
+ getIrregu(1,x1,+1,x0,+1,0, texscale, self.angle) +
+ getIrregu(1,-1,y1,-1,y0,0, texscale, self.angle))
+
+ def scene(self, vs):
+ putnoc(vs, self.bg)
+
+ global scale
+ scale = self.scale
+
+ cs3 = vs.coords.affineCoordsys(0, 0, 512, 384, self.scale, 0, 0,
self.scale)
+ vs.matcher.add(cs3, "3")
cs4 = vs.coords.affineCoordsys(0, 0,
self.tx * cos(self.angle) +
@@ -420,73 +469,80 @@
vs.matcher.add(cs4, "4")
vs.map.put(GLRen.createTextureMatrix(), cs4)
- texid = getCachedTexture([4, 4, 0, 3, "RGB", "RGB", "geometric",
- ["type", "1", "scale", ".25", "bias",
".75"]]).getTexId()
-
- if use_texture:
- tex2d = "Enable"
- else:
- tex2d = "Disable"
-
- if use_stencil:
- paint = """
- PushAttrib ENABLE_BIT
- Enable STENCIL_TEST
- Disable ALPHA_TEST
- StencilFunc EQUAL 0 255
- StencilOp ZERO ZERO ZERO
- %(tex2d)s TEXTURE_2D
- BindTexture TEXTURE_2D %(texid)s
- TexParameter TEXTURE_2D TEXTURE_MIN_FILTER NEAREST
- TexParameter TEXTURE_2D TEXTURE_MAG_FILTER NEAREST
- #TexEnv TEXTURE_ENV TEXTURE_ENV_MODE MODULATE
- Begin QUAD_STRIP
- TexCoord 0 0
- Vertex %(x0)s %(y0)s
- TexCoord 2.25 0
- Vertex %(x1)s %(y0)s
- TexCoord 0 2.25
- Vertex %(x0)s %(y1)s
- TexCoord 2.25 2.25
- Vertex %(x1)s %(y1)s
- End
- PopAttrib
- """ % locals()
- else:
- paint = """
- """
-
vs.map.put(getDListNocoords("""
PushMatrix
-
MultMatrix %s
""" % matrices[0]))
- if use_stencil:
- vs.map.put(getDList(getIrregu(0,x0,-1,x1,-1,1, texscale,
self.angle) +
- getIrregu(0,+1,y0,+1,y1,1, texscale,
self.angle) +
- getIrregu(1,x1,+1,x0,+1,1, texscale,
self.angle) +
- getIrregu(1,-1,y1,-1,y0,1, texscale,
self.angle) +
- "Color 0 0 0" + paint), cs3)
-
- vs.map.put(getDList(getIrregu(0,x0,-1,x1,-1,0, texscale, self.angle) +
- getIrregu(0,+1,y0,+1,y1,0, texscale, self.angle) +
- getIrregu(1,x1,+1,x0,+1,0, texscale, self.angle) +
- getIrregu(1,-1,y1,-1,y0,0, texscale, self.angle) +
- "Color 1 1 1" + paint), cs3)
+ self.initIrregu()
+
+ if self.use_stencil:
+ if texenv_inner == texenv_outer:
+ vs.map.put(getDListNocoords("PushMatrix\n"
+ "Translate -2 0 0"))
+ vs.map.put(self.stencil_init)
+ vs.map.put(self.outer_edge, cs3)
+ vs.map.put(self.stencil_use)
+ vs.map.put(self.outer_paint, cs3)
+ vs.map.put(self.stencil_teardown)
+
+ vs.map.put(getDListNocoords("Translate 4 0 0"))
+ vs.map.put(self.stencil_init)
+ vs.map.put(self.outer_edge, cs3)
+ vs.map.put(self.stencil_use)
+ vs.map.put(self.outer_paint, cs3)
+ vs.map.put(self.stencil_teardown)
+
+ vs.map.put(getDListNocoords("Translate -2 -2 0"))
+ vs.map.put(self.stencil_init)
+ vs.map.put(self.outer_edge, cs3)
+ vs.map.put(self.stencil_use)
+ vs.map.put(self.outer_paint, cs3)
+ vs.map.put(self.stencil_teardown)
+
+ vs.map.put(getDListNocoords("Translate 0 4 0"))
+ vs.map.put(self.stencil_init)
+ vs.map.put(self.outer_edge, cs3)
+ vs.map.put(self.stencil_use)
+ vs.map.put(self.outer_paint, cs3)
+ vs.map.put(self.stencil_teardown)
+
+ vs.map.put(getDListNocoords("PopMatrix"))
+ else:
+ vs.map.put(self.stencil_init)
+ vs.map.put(self.outer_edge, cs3)
+ vs.map.put(self.stencil_use)
+ vs.map.put(self.outer_paint, cs3)
+ vs.map.put(self.stencil_teardown)
+
+ vs.map.put(self.stencil_init)
+ if 1:
+ vs.map.put(self.inner_edge, cs3)
+ if self.use_stencil:
+ vs.map.put(self.stencil_use)
+ vs.map.put(self.inner_paint, cs3)
+ vs.map.put(self.stencil_teardown)
+
+
vs.map.put(getDListNocoords("""
PopMatrix
"""))
def key(self, k):
+ global reinit
+
if k == "+": self.scale *= 1.4142135623731; print round(self.scale)
if k == "-": self.scale /= 1.4142135623731; print round(self.scale)
if k == "Prior":
self.angle -= pi/180; print "angle",round(self.angle / pi * 180)
+ reinit = 1
if k == "Next":
self.angle += pi/180; print "angle",round(self.angle / pi * 180)
+ reinit = 1
+
+ if k == "i": self.use_stencil = not self.use_stencil
if k == "Up": self.ty -= .1
if k == "Down": self.ty += .1
- [Gzz-commits] gzz/gfx/demo irregu3.py, Janne V. Kujala, 2002/10/18
- [Gzz-commits] gzz/gfx/demo irregu3.py, Janne V. Kujala, 2002/10/19
- [Gzz-commits] gzz/gfx/demo irregu3.py, Janne V. Kujala, 2002/10/19
- [Gzz-commits] gzz/gfx/demo irregu3.py, Janne V. Kujala, 2002/10/22
- [Gzz-commits] gzz/gfx/demo irregu3.py, Janne V. Kujala, 2002/10/22
- [Gzz-commits] gzz/gfx/demo irregu3.py, Janne V. Kujala, 2002/10/23
- [Gzz-commits] gzz/gfx/demo irregu3.py, Janne V. Kujala, 2002/10/24
- [Gzz-commits] gzz/gfx/demo irregu3.py, Janne V. Kujala, 2002/10/25
- [Gzz-commits] gzz/gfx/demo irregu3.py, Janne V. Kujala, 2002/10/25
- [Gzz-commits] gzz/gfx/demo irregu3.py,
Janne V. Kujala <=
- [Gzz-commits] gzz/gfx/demo irregu3.py, Janne V. Kujala, 2002/10/29
- [Gzz-commits] gzz/gfx/demo irregu3.py, Janne V. Kujala, 2002/10/29
- [Gzz-commits] gzz/gfx/demo irregu3.py, Janne V. Kujala, 2002/10/29
- [Gzz-commits] gzz/gfx/demo irregu3.py, Janne V. Kujala, 2002/10/29
- [Gzz-commits] gzz/gfx/demo irregu3.py, Janne V. Kujala, 2002/10/29
- [Gzz-commits] gzz/gfx/demo irregu3.py, Janne V. Kujala, 2002/10/30
- [Gzz-commits] gzz/gfx/demo irregu3.py, Janne V. Kujala, 2002/10/31