/[gzz]/gzz/gfx/libpaper/papermill.py
ViewVC logotype

Diff of /gzz/gfx/libpaper/papermill.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.54 by jvk, Wed Oct 16 14:50:11 2002 UTC revision 1.55 by tjl, Wed Oct 23 13:45:37 2002 UTC
# Line 2  from gfx.libpaper.textures import Textur Line 2  from gfx.libpaper.textures import Textur
2  from gfx.libpaper.colors import Colors  from gfx.libpaper.colors import Colors
3  from gfx.libpaper.texcoords import TexGenXYRepeatUnit  from gfx.libpaper.texcoords import TexGenXYRepeatUnit
4  from gfx.libpaper.params import *  from gfx.libpaper.params import *
5    from gzz.vob import SolidBgVob
6    
7  from gzz.gfx.gl import GL,GLRen,Paper,PaperMill  from gzz.gfx.gl import GL,GLRen,Paper,PaperMill
8  import java  import java
# Line 134  class ThePaperMill(PaperMill): Line 135  class ThePaperMill(PaperMill):
135                      setDummyPass(pap.getPass(i))                      setDummyPass(pap.getPass(i))
136    
137          #if dbg: pap.reg.dump()          #if dbg: pap.reg.dump()
138            pap.repeat = rootrep
139          return pap          return pap
140            
141        def getOptimizedPaper(self, seed, w):
142            pap = self.getPaper(seed)
143    
144            # Now, we render a region.
145            v = pap.repeat._getSTVectors()
146    
147            s = 256
148            vs = w.createVobScene()
149            vs.map.put(SolidBgVob(java.awt.Color.black))
150    
151            cs1 = vs.coords.ortho(0, 0, 0, 0, s, s)
152            cs2 = vs.coords.affineCoordsys(
153                0, 0, 0, 0,
154                 v[0][0], v[0][1], v[1][0], v[1][1]
155            )
156            vs.map.put(GLRen.createPaperQuad(pap, 0, 0, 1, 1, 1))
157            w.renderStill(vs, 1)
158    
159            tex = GL.createTexture()
160            tex.copyTexImage2D("FRONT", "TEXTURE_2D", 0,
161                            "RGB", 0, vs.getSize().height-1-s,
162                                s, s, 0)
163    
164            npap = PaperHanger()
165            npap.setNPasses(1)
166            npap.cachedTexture = tex
167    
168            ppass = npap.getPass(0)
169    
170            texid = tex.getTexId()
171    
172            ppass.setSetupcode("""
173                PushAttrib ENABLE_BIT TEXTURE_BIT DEPTH_BUFFER_BIT
174                Disable BLEND
175                Enable DEPTH_TEST
176                DepthFunc LESS
177                BindTexture TEXTURE_2D %(texid)s
178                TexEnv TEXTURE_ENV TEXTURE_ENV_MODE REPLACE
179            """ % locals())
180    
181            ppass.setNTexGens(1)
182            ppass.putNormalTexGen(0,
183                [ v[0][0], v[0][1], 0, 0,
184                  v[1][0], v[1][1], 0, 0,
185                  0,        0,      0, 0,
186                  0,        0,      0, 0,])
187    
188            ppass.setTeardowncode("""
189                PopAttrib
190                ActiveTexture TEXTURE0
191            """)
192    
193            return npap
194    
195      def makePaperPass(self, reg, ppass, colors, textures, rootrep, trans = 0, emboss = 0):      def makePaperPass(self, reg, ppass, colors, textures, rootrep, trans = 0, emboss = 0):
196          seed = reg.get(regseed, "seed")          seed = reg.get(regseed, "seed")
197          rnd = java.util.Random(seed)          rnd = java.util.Random(seed)

Legend:
Removed from v.1.54  
changed lines
  Added in v.1.55

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26