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 |
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) |