[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] gzz ./TODO gfx/demo/softshadow.py gzz/gfx/gl/GL...
From: |
Tuomas J. Lukka |
Subject: |
[Gzz-commits] gzz ./TODO gfx/demo/softshadow.py gzz/gfx/gl/GL... |
Date: |
Sun, 26 Jan 2003 10:07:14 -0500 |
CVSROOT: /cvsroot/gzz
Module name: gzz
Changes by: Tuomas J. Lukka <address@hidden> 03/01/26 10:06:54
Modified files:
. : TODO
gfx/demo : softshadow.py
gzz/gfx/gl : GL.java
test/tools : gfx.py
Log message:
Make graphical tests pass on R300 by not using pbuffers.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/TODO.diff?tr1=1.534&tr2=1.535&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/softshadow.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/gfx/gl/GL.java.diff?tr1=1.44&tr2=1.45&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/test/tools/gfx.py.diff?tr1=1.16&tr2=1.17&r1=text&r2=text
Patches:
Index: gzz/TODO
diff -u gzz/TODO:1.534 gzz/TODO:1.535
--- gzz/TODO:1.534 Sat Jan 25 09:45:13 2003
+++ gzz/TODO Sun Jan 26 10:06:53 2003
@@ -63,13 +63,17 @@
0.8alpha5: saving, loading etc. with mediaserver useful; tests
jvk:
- - fix libpaper on R300:
- the problem is that GENERATE_MIPMAP_SGIS does not work.
+ - fix libpaper optimized papers on R300:
+ the problem is that GENERATE_MIPMAP_SGIS does not work
+ for copyteximage.
See the texture dump.
When I set max_level to 0, it started working but read the
texture from the wrong point on screen.
+ (that seems to be because glGet of raster position
+ is giving out garbage?? (test, report))
Use the "workaroundStupidBuggyAtiDrivers" if for the fix,
and send a bug report.
+ - work around xupdf compressed tex image bug on R300
benja:
- Papers
- P2P article and diff thesis
Index: gzz/gfx/demo/softshadow.py
diff -u gzz/gfx/demo/softshadow.py:1.4 gzz/gfx/demo/softshadow.py:1.5
--- gzz/gfx/demo/softshadow.py:1.4 Sun Nov 24 16:12:40 2002
+++ gzz/gfx/demo/softshadow.py Sun Jan 26 10:06:53 2003
@@ -3,14 +3,35 @@
from gfx.libpaper.texcache import getCachedTexture
noise = getCachedTexture(
- [ 512, 512, 0, 2, "DSDT_NV", "DSDT_NV", "geometric",
+ [ 128, 128, 0, 4, "RGBA", "RGBA", "geometric",
["type","7","scale","2", "bias", "-1","seed","42"]],
shade_all_levels = 1)
-w.setLocation(0,0,1024,1024)
+# w.setLocation(0,0,1024,1024)
from java.awt import Color
+if globals().has_key("compfp"):
+ for f in (compfp,):
+ f.deleteObject()
+
+compfp = GL.createProgram(
+"""!!ARBfp1.0
+
+TEMP x;
+TEMP y;
+TEMP z;
+TEX x, fragment.texcoord[0], texture[0], 2D;
+TEX y, fragment.texcoord[1], texture[1], 2D;
+MUL z.xyz, x, y.wwww;
+SLT y, y.w, fragment.position.z;
+MOV z.xyz, y;
+SWZ z.w, fragment.color, y, x, y, 1;
+MOV result.color, z;
+END
+"""
+)
+
class Rects :
def drawScene(self, vs, seed):
vs.map.put(background((.3, .6, .7)))
@@ -20,11 +41,11 @@
def r(s=1):
return s * gen.nextDouble()
- vs.put(coloredQuad((.3,.7,.8), texcoord1=10), "BG", depths[3], 0, 0,
1200, 1200)
+ vs.put(coloredQuad((.3,.7,.8), texcoord1=10), "BG", depths[3], 0, 0,
600, 600)
# self.draw(vs, (.3,.7,.8), depths, depths[3], 0, 0, 1200, 1200)
- self.draw(vs, (0,1,0.5), depths, depths[2], r(440), r(450), r(300)+100,
r(400)+100)
- self.draw(vs, (1,0.5,0), depths, depths[1], r(450), r(450), r(300)+100,
r(400)+100)
- self.draw(vs, (0.5,0,1), depths, depths[0], r(400), r(400), r(400)+100,
r(300)+100)
+ self.draw(vs, (0,1,0.5), depths, depths[2], r(640), r(650), r(400)+100,
r(500)+100)
+ self.draw(vs, (1,0.5,0), depths, depths[1], r(650), r(650), r(400)+100,
r(600)+100)
+ self.draw(vs, (0.5,0,1), depths, depths[0], r(600), r(600), r(500)+100,
r(400)+100)
def key(self, key):
pass
@@ -86,20 +107,20 @@
def scene(self,*args):
self.drawScene(*args)
-ts = 1024
+ts = 512
class SBScene(Rects):
def __init__(self):
self.tex = GL.createTexture()
self.dtex = GL.createTexture()
- for l in range(0,5):
- self.tex.loadNull2D(l, "RGB", ts/2**l, ts/2**l, 0, "RGB",
"UNSIGNED_SHORT")
- self.dtex.loadNull2D(l, "DEPTH_COMPONENT16_SGIX", ts/2**l, ts/2**l,
0, "DEPTH_COMPONENT", "UNSIGNED_SHORT")
+ for l in range(0,3):
+ self.tex.loadNull2D(l, "RGB", ts/2**l, ts/2**l, 0, "RGB", "FLOAT")
+ self.dtex.loadNull2D(l, "DEPTH_COMPONENT", ts/2**l, ts/2**l, 0,
"DEPTH_COMPONENT", "BYTE")
self.texoffs = GL.createTexture()
self.drawshad = 1
self.seed = 0
self.usedepth = 0
- self.shift = (-.005, .01)
+ self.shift = (-.0005, .001)
self.vob = getDList("""
ActiveTexture TEXTURE0
Begin TRIANGLES
@@ -132,6 +153,8 @@
# Shadow matrix
fact = .5**level
shif = self.shift[0] * fact
+ shif = 0
+ print fact, shif
vs.map.put(getDListNocoords("""
PushMatrix
MultMatrix %(fact)s 0 0 0 \
@@ -143,18 +166,17 @@
vs.map.put(getDListNocoords("""
PopMatrix
"""))
- print "WH: ", int(ts*fact)
+ # print "WH: ", int(ts*fact)
texim = GLRen.createCopyTexSubImage2D(
"TEXTURE_2D", level, 0, 0, int(ts * fact), int(ts *
fact))
- vs.map.put(texim, vs.orthoCS(0, str(("dept_",level)), 0, 0, ts * fact,
1, 1))
+ # vs.map.put(texim, vs.orthoCS(0, str(("dept_",level)), 0, 0, ts *
fact, 1, 1))
+ vs.map.put(texim, vs.orthoCS(0, str(("dept_",level)), 0, 0, ts*fact, 1,
1))
def scene(self, vs):
- if self.usedepth:
- texid = self.dtex.getTexId()
- else:
- texid = self.tex.getTexId()
+ self.drawScene(vs, self.seed)
+ texid = self.dtex.getTexId()
# texidoffs = self.texoffs.getTexId()
texidoffs = noise.getTexId()
@@ -163,109 +185,93 @@
BindTexture TEXTURE_2D %(texid)s
""" % locals()))
- if 1:
- self.drawShadowLevel(vs, 0)
- self.drawShadowLevel(vs, 1)
- self.drawShadowLevel(vs, 2)
- self.drawShadowLevel(vs, 3)
- self.drawShadowLevel(vs, 4)
+ for i in range(0,3):
+ self.drawShadowLevel(vs, i)
shif = -self.shift[0]
offssize = .01
vs.map.put(getDListNocoords("""
PushAttrib TEXTURE_BIT ENABLE_BIT
- Enable TEXTURE_SHADER_NV
ActiveTexture TEXTURE0
BindTexture TEXTURE_2D %(texidoffs)s
- TexParameter TEXTURE_2D TEXTURE_MAX_LEVEL 12
- TexParameter TEXTURE_2D TEXTURE_BASE_LEVEL 1
+ # TexParameter TEXTURE_2D TEXTURE_MAX_LEVEL 12
+ # TexParameter TEXTURE_2D TEXTURE_BASE_LEVEL 1
TexParameter TEXTURE_2D TEXTURE_MIN_FILTER LINEAR_MIPMAP_LINEAR
- TexEnv TEXTURE_FILTER_CONTROL_EXT TEXTURE_LOD_BIAS_EXT -10
- TexParameter TEXTURE_2D TEXTURE_MAX_LOD 9
- TexParameter TEXTURE_2D TEXTURE_MIN_LOD 0
- TexParameter TEXTURE_2D TEXTURE_MAX_ANISOTROPY_EXT 10
+ # TexParameter TEXTURE_2D TEXTURE_MAX_LOD 9
+ # TexParameter TEXTURE_2D TEXTURE_MIN_LOD 0
+ # TexParameter TEXTURE_2D TEXTURE_MAX_ANISOTROPY_EXT 10
-# TexImage2D TEXTURE_2D 0 DSDT_NV 2 2 0 DSDT_NV -.1 -.1 .1 .1 -.1 .1
.1 -.1
-# TexImage2D TEXTURE_2D 0 HILO_NV 2 2 0 HILO_NV -1 -1 1 1 -1 1 1 -1
- TexEnv TEXTURE_SHADER_NV SHADER_OPERATION_NV TEXTURE_2D
+ Disable TEXTURE_2D
+ # Disable TEXTURE_2D
ActiveTexture TEXTURE1
+ Enable TEXTURE_2D
BindTexture TEXTURE_2D %(texid)s
- TexParameter TEXTURE_2D TEXTURE_MAX_LEVEL 4
-# TexParameter TEXTURE_2D TEXTURE_MAX_LOD 3.5
-# TexParameter TEXTURE_2D TEXTURE_MIN_LOD 0.5
-
- TexParameter TEXTURE_2D TEXTURE_COMPARE_SGIX FALSE
-# TexParameter TEXTURE_2D TEXTURE_COMPARE_OPERATOR_SGIX
TEXTURE_LEQUAL_R_SGIX
- TexParameter TEXTURE_2D TEXTURE_MAX_ANISOTROPY_EXT 10
- TexParameter TEXTURE_2D TEXTURE_MIN_FILTER LINEAR_MIPMAP_LINEAR
+ TexParameter TEXTURE_2D TEXTURE_MAX_LEVEL 1
+ # TexParameter TEXTURE_2D DEPTH_TEXTURE_MODE_ARB LUMINANCE
+ #
+ # TexParameter TEXTURE_2D TEXTURE_MAX_ANISOTROPY_EXT 10
+ # TexParameter TEXTURE_2D TEXTURE_MIN_FILTER LINEAR_MIPMAP_LINEAR
+ TexParameter TEXTURE_2D TEXTURE_MAG_FILTER NEAREST
TexParameter TEXTURE_2D TEXTURE_MIN_FILTER NEAREST
- TexEnv TEXTURE_SHADER_NV PREVIOUS_TEXTURE_INPUT_NV TEXTURE0
- TexEnv TEXTURE_SHADER_NV OFFSET_TEXTURE_MATRIX_NV %(offssize)s 0 0
%(offssize)s
- TexEnv TEXTURE_SHADER_NV SHADER_OPERATION_NV TEXTURE_2D
- TexEnv TEXTURE_SHADER_NV SHADER_OPERATION_NV OFFSET_TEXTURE_2D_NV
-# TexEnv TEXTURE_SHADER_NV SHADER_OPERATION_NV
OFFSET_HILO_TEXTURE_2D_NV
""" % locals()))
- vs.map.put(getDListNocoords("""
- PushMatrix
- MultMatrix 1 0 0 0 \
- 0 1 0 0 \
- %(shif)s %(shif)s 1 0 \
- 0 0 0 1
- """ % locals()))
- vs.put(getDList( """
- Enable TEXTURE_2D
- TexGen S TEXTURE_GEN_MODE EYE_LINEAR
- TexGen T TEXTURE_GEN_MODE EYE_LINEAR
- TexGen R TEXTURE_GEN_MODE EYE_LINEAR
- Enable TEXTURE_GEN_S
- Enable TEXTURE_GEN_T
- Enable TEXTURE_GEN_R
-
- TexGen S EYE_PLANE 1 0 0 0.00
- TexGen T EYE_PLANE 0 1 0 0.00
- TexGen R EYE_PLANE 0.0 -.00 +.00005 .5
+ if 1:
+ shif = self.shift[0]
+ shif = 0
+ vs.map.put(getDListNocoords("""
+ PushMatrix
+ MultMatrix 1 0 0 0 \
+ 0 1 0 0 \
+ %(shif)s %(shif)s 1 0 \
+ 0 0 0 1
+ """ % locals()))
+
+ vs.put(getDList( """
+ Enable TEXTURE_2D
+ TexGen S TEXTURE_GEN_MODE EYE_LINEAR
+ TexGen T TEXTURE_GEN_MODE EYE_LINEAR
+ TexGen R TEXTURE_GEN_MODE EYE_LINEAR
+ Enable TEXTURE_GEN_S
+ Enable TEXTURE_GEN_T
+ Enable TEXTURE_GEN_R
+
+ TexGen S EYE_PLANE 1 0 0 0.00
+ TexGen T EYE_PLANE 0 1 0 0.00
+ TexGen R EYE_PLANE 0.0 -.00 +.00005 .5
+
+ TexEnv TEXTURE_ENV TEXTURE_ENV_MODE MODULATE
+ ActiveTexture TEXTURE0
+ Disable BLEND
+ Color 1 1 1 .25
+ """% locals()), "TEXGEN", 0, 0, ts, ts, -ts)
+
+ vs.map.put(getDListNocoords("""
+ PopMatrix
+ """))
+
+ prog = compfp.getProgId()
+ vs.put(getDListNocoords( """
+ BindProgramARB FRAGMENT_PROGRAM_ARB %(prog)s
+ Enable FRAGMENT_PROGRAM_ARB
+ Disable BLEND
+ """ % locals()))
- TexEnv TEXTURE_ENV TEXTURE_ENV_MODE MODULATE
- ActiveTexture TEXTURE0
- Enable BLEND
- Color 1 1 1 .25
- Enable REGISTER_COMBINERS_NV
- """% locals()), "TEXGEN", 0, 0, ts, ts, -ts)
- if self.usedepth:
- vs.map.put(getDListNocoords(
- nvcode.parseCombiner("""
- SPARE0 = COL0*(TEX1.a)
- alpha=1
- color = SPARE0
- """)
- ))
- else:
- vs.map.put(getDListNocoords(
- nvcode.parseCombiner("""
- SPARE0 = COL0*(TEX1-.5)
- alpha=1
- color = SPARE0
- """)
- ))
- vs.map.put(getDListNocoords("""
- PopMatrix
- """))
- vs.put(quad(), "FOO", 0, 0, ts, ts, -ts)
+
+ # vs.put(quad(), "FOO", 0, 0, ts, ts, -ts)
if self.drawshad:
self.drawScene(vs, self.seed)
vs.map.put(getDListNocoords("""
+ Disable FRAGMENT_PROGRAM_ARB
PopAttrib
- Disable TEXTURE_SHADER_NV
ActiveTexture TEXTURE1
BindTexture TEXTURE_2D 0
ActiveTexture TEXTURE2
Index: gzz/gzz/gfx/gl/GL.java
diff -u gzz/gzz/gfx/gl/GL.java:1.44 gzz/gzz/gfx/gl/GL.java:1.45
--- gzz/gzz/gfx/gl/GL.java:1.44 Sat Jan 25 08:45:03 2003
+++ gzz/gzz/gfx/gl/GL.java Sun Jan 26 10:06:53 2003
@@ -65,6 +65,13 @@
}
}
+ /** ATI drivers for the R300 family still have some serious bugs.
+ * We have workarounds for some in place; this flag
+ * will enable them.
+ * <p>
+ * ATI: if you want to know what you're still doing
+ * wrong, just grep the source for this variable name ;)
+ */
public static boolean workaroundStupidBuggyAtiDrivers = false;
/** Init the library - to be called once during startup.
Index: gzz/test/tools/gfx.py
diff -u gzz/test/tools/gfx.py:1.16 gzz/test/tools/gfx.py:1.17
--- gzz/test/tools/gfx.py:1.16 Sun Jan 12 06:41:48 2003
+++ gzz/test/tools/gfx.py Sun Jan 26 10:06:54 2003
@@ -15,21 +15,28 @@
_realwin.setLocation(0, 0, 600, 600)
if gzz.client.GraphicsAPI.getInstance().getTypeString() == "gl":
- win = gzz.client.GraphicsAPI.getInstance().createStableOffscreen(500, 500)
- from gzz.gfx.gl import GL, GLCache, GLRen
- _buf = GL.createByteVector(500*500*3)
- _drawbufvs = _realwin.createVobScene()
- _drawbufvs.map.put(SolidBgVob(Color(0, 0, 0.2)))
- _drawbufvs.map.put(GLCache.getCallList("""
- Disable TEXTURE_2D
- Color 1 1 1 1
- """))
- cs = _drawbufvs.translateCS(0, "tr", 0, 501)
- _drawbufvs.map.put(
- GLRen.createDrawPixels(
- 500, 500,
- "RGB", "UNSIGNED_BYTE", _buf),
- cs)
+ from gzz.gfx.gl import GL
+ if GL.workaroundStupidBuggyAtiDrivers:
+ # Sorry, ATI doesn't let us use pbuffers on R300 except in FireGL.
+ # Because of that, don't put another window in front when using
+ # this.
+ win = _realwin
+ else:
+ win = gzz.client.GraphicsAPI.getInstance().createStableOffscreen(500,
500)
+ from gzz.gfx.gl import GL, GLCache, GLRen
+ _buf = GL.createByteVector(500*500*3)
+ _drawbufvs = _realwin.createVobScene()
+ _drawbufvs.map.put(SolidBgVob(Color(0, 0, 0.2)))
+ _drawbufvs.map.put(GLCache.getCallList("""
+ Disable TEXTURE_2D
+ Color 1 1 1 1
+ """))
+ cs = _drawbufvs.translateCS(0, "tr", 0, 501)
+ _drawbufvs.map.put(
+ GLRen.createDrawPixels(
+ 500, 500,
+ "RGB", "UNSIGNED_BYTE", _buf),
+ cs)
else:
win = _realwin
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gzz-commits] gzz ./TODO gfx/demo/softshadow.py gzz/gfx/gl/GL...,
Tuomas J. Lukka <=