1 |
|
from __future__ import nested_scopes |
2 |
|
|
3 |
import sys |
import sys |
4 |
|
import random |
5 |
from java.lang import Runnable, System |
from java.lang import Runnable, System |
6 |
|
|
7 |
import gzz |
import gzz |
8 |
|
|
9 |
System.setProperty("gzzclient", "gl") |
System.setProperty("gzzclient", "gl") |
10 |
|
|
11 |
from gzz.client import GraphicsAPI |
from gzz.client import GraphicsAPI |
12 |
from gzz.gfx.gl import GL, GLRen, GLSpans, Paper, GLCache |
from gzz.gfx.gl import GL, GLRen, GLSpanner, Paper, GLCache |
13 |
|
|
14 |
from gfx.util.misc import * |
from gfx.util.misc import * |
15 |
from gfx.libutil import saveanim |
from gfx.libutil import saveanim |
17 |
xs = 1024 |
xs = 1024 |
18 |
ys = 768 |
ys = 768 |
19 |
|
|
20 |
|
zoomLevels = [1, 2, 3, 4] |
21 |
|
|
22 |
|
class OptMill(gzz.gfx.gl.PaperMill): |
23 |
|
def __init__(self, mill, opts): |
24 |
|
self.mill = mill |
25 |
|
self.opts = opts |
26 |
|
def getPaper(self,seed): |
27 |
|
return mill.getPaper(seed, **opts) |
28 |
|
def getOptimizedPaper(self, seed, w): |
29 |
|
return mill.getOptimizedPaper(seed, w, **opts) |
30 |
|
|
31 |
|
lightnesses = [ |
32 |
|
{ "numcolors" : 8, "minlum" : 80 }, |
33 |
|
{ "numcolors" : 8, "minlum" : 94 }, |
34 |
|
{ "numcolors" : 1, "minlum" : 80 }, |
35 |
|
] |
36 |
|
|
37 |
aspect = float(xs)/ys |
aspect = float(xs)/ys |
38 |
|
|
39 |
|
enfMaker = gzz.media.impl.Enfilade1DImpl.Enfilade1DImplMaker() |
40 |
textblock = "011D75251F04C8BF89A44C88D875886B2B5172522A" |
textblock = "011D75251F04C8BF89A44C88D875886B2B5172522A" |
41 |
|
scroll = gzz.media.impl.PageImageScroll(None, |
42 |
|
gzz.mediaserver.Mediaserver.Id(textblock)), |
43 |
|
current = scroll.getCurrent() |
44 |
|
|
45 |
|
pages = [enfMaker.makeEnfilade(current.subSpan(i, i+1)) for i in range(0, current.length())] |
46 |
|
|
47 |
|
textureSeeds = [i for i in range(523, 523+current.length())] |
48 |
|
|
49 |
|
class PSPMaker(gzz.view.PageSpanCellView.PageSpanPaperMaker): |
50 |
|
def getPaper(spanpage, pagespan): |
51 |
|
return gzz.gfx.gl.PageSpanPaper(spanpage, |
52 |
|
textureSeeds[pagespan.offset()]) |
53 |
|
|
54 |
def getpaper(seed, opts): |
def getpaper(seed, opts): |
55 |
pap = ThePaperMill().getPaper(seed, **opts) |
pap = ThePaperMill().getPaper(seed, **opts) |
65 |
cs2 = vs.affineCS(0, "tex", 1, 0, 0, scale, 0, 0, scale) |
cs2 = vs.affineCS(0, "tex", 1, 0, 0, scale, 0, 0, scale) |
66 |
pq = getpaper(seed, opts) |
pq = getpaper(seed, opts) |
67 |
vs.map.put(pq, cs1, cs2) |
vs.map.put(pq, cs1, cs2) |
68 |
return vs |
|
69 |
|
def doFrame(scene, filename): |
70 |
|
vs = w.createVobScene() |
71 |
|
scene(vs) |
72 |
|
w.renderStill(vs, 0) |
73 |
|
saveanim.saveframe(filename, w) |
74 |
|
java.lang.System.gc() |
75 |
|
GL.freeQueue() |
76 |
|
|
77 |
|
|
78 |
def createPurePapers(): |
def createPurePapers(): |
79 |
seed = 100 |
seed = 100 |
80 |
for opts in [ |
for opts in lightnesses: |
|
{ "numcolors" : 8, "minlum" : 80 }, |
|
|
{ "numcolors" : 8, "minlum" : 94 }, |
|
|
{ "numcolors" : 1, "minlum" : 80 }, |
|
|
]: |
|
81 |
for i in range(0,30): |
for i in range(0,30): |
82 |
vs = w.createVobScene() |
doFrame(lambda vs: paperscene(vs, seed, opts), |
83 |
paperscene(vs, seed, opts) |
"tmp/tmp%s.png" % seed) |
|
w.renderStill(vs, 0) |
|
|
saveanim.saveframe("/tmp/tmp%s.png" % seed, w) |
|
|
java.lang.System.gc() |
|
|
GL.freeQueue() |
|
|
|
|
84 |
seed += 1 |
seed += 1 |
85 |
|
|
86 |
|
def textPaperScene(vs, layout, scale): |
87 |
|
layout. |
88 |
|
|
89 |
|
|
90 |
|
def createTextPapers(): |
91 |
|
for subj in range(0,2): |
92 |
|
zooms = zoomLevels + zoomLevels + zoomLevels |
93 |
|
random.shuffle(zooms) |
94 |
|
|
95 |
|
global textureSeeds |
96 |
|
random.shuffle(textureSeeds) |
97 |
|
gzz.view.PageSpanCellView.pageSpanPaperMaker = PSPMaker() |
98 |
|
|
99 |
|
for page in pages: |
100 |
|
for opts in lightnesses: |
101 |
|
gzz.gfx.gl.PageSpanPaper.paperMill = OptMill( |
102 |
|
ThePaperMill(), opts) |
103 |
|
layout = PageSpanCellView().getLayout(page) |
104 |
|
zoom = zooms.pop() |
105 |
|
|
106 |
|
|
107 |
|
|
108 |
class Main(Runnable): |
class Main(Runnable): |
109 |
|
|
110 |
def run(self): |
def run(self): |
111 |
|
GLSpanner.dangerouslyOverrideMemoryPartitioner() |
112 |
global ThePaperMill, w |
global ThePaperMill, w |
113 |
from gfx.libpaper.papermill import ThePaperMill |
from gfx.libpaper.papermill import ThePaperMill |
114 |
|
|