/[libvob]/libvob/vob/demo/aniso/fontscene.py
ViewVC logotype

Diff of /libvob/vob/demo/aniso/fontscene.py

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

revision 1.1 by tjl, Wed Oct 22 08:57:49 2003 UTC revision 1.2 by tjl, Fri Oct 31 07:22:09 2003 UTC
# Line 10  class Scene: Line 10  class Scene:
10    
11          # self.anisos = [1, 1.5, 2.0, 3.0]          # self.anisos = [1, 1.5, 2.0, 3.0]
12          # self.anisos = [1, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0]          # self.anisos = [1, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0]
13    
14            self.filters = [None, (-.25,-.125)]
15    
16          self.anisos = [1, 2]          self.anisos = [1, 2]
17    
18          height = self.height = 64          height = self.height = 128
19    
20          # string = "AIOSs"          # string = "AIOSs"
21          string = "S"          string = "SP"
22    
23          self.ftfont = vob.gl.GL.createFTFont(          self.ftfont = vob.gl.GL.createFTFont(
24                      "/usr/share/fonts/type1/gsfonts/n019003l.pfb",                      "/usr/share/fonts/type1/gsfonts/n019003l.pfb",
25                      height, height)                      height, height)
26    
27          self.fonts = [[          self.fonts = [[[
28              vob.gl.SimpleAlphaFont.convertFont(              vob.gl.SimpleAlphaFont.convertFont(
29                  self.ftfont, 30,                  self.ftfont, 30,
30                  1./self.height, 1./self.height,                  1./self.height, 1./self.height,
# Line 31  class Scene: Line 34  class Scene:
34                              "TEXTURE_MAX_ANISOTROPY_EXT", str(ceil(self.anisos[i]))                              "TEXTURE_MAX_ANISOTROPY_EXT", str(ceil(self.anisos[i]))
35                      ])                      ])
36                      for i in range(0, len(self.anisos))]                      for i in range(0, len(self.anisos))]
37                            for k in range(0, len(self.filters))]
38                          for j in range(0,2)]                          for j in range(0,2)]
39    
40            self.superfont = \
41                vob.gl.SimpleAlphaFont.convertFont(
42                    self.ftfont, 30,
43                    1./self.height, 1./self.height,
44                        [
45                                "TEXTURE_MAG_FILTER", "LINEAR",
46                                "TEXTURE_MIN_FILTER", "LINEAR_MIPMAP_LINEAR",
47                                "TEXTURE_MAX_ANISOTROPY_EXT", "2"
48                        ], 4)
49    
50          # 0: horizontal, 1: vertical          # 0: horizontal, 1: vertical
51    
52          for i in range(0, len(self.fonts[0])):          for k in range(0, len(self.filters)):
53              vob.gl.SimpleAlphaFont.postprocessGLFont_reduceReso(              for i in range(0, len(self.fonts[0][k])):
54                  self.fonts[0][i].getQuadFont(), self.anisos[i], 1)                  if self.anisos[i] > 1:
55          for i in range(0, len(self.fonts[1])):                      vob.gl.SimpleAlphaFont.postprocessGLFont_reduceReso(
56              vob.gl.SimpleAlphaFont.postprocessGLFont_reduceReso(                          self.fonts[0][k][i].getQuadFont(), self.anisos[i], 1)
57                  self.fonts[1][i].getQuadFont(), 1, self.anisos[i])                  if self.filters[k]:
58                        vob.gl.SimpleAlphaFont.filterDownsampled(
59          if 0:                          self.fonts[0][k][i].getQuadFont(), self.filters[k][0], self.filters[k][1],
60              self.ftfonts = [                          [
                 vob.gl.GL.createFTFont(  
                     "/usr/share/fonts/type1/gsfonts/n019003l.pfb",  
                     height, height, int(a * (1<<16)), 0, 0, 1<<16)  
                     for a in self.anisos]  
             self.fonts = [  
                 vob.gl.SimpleAlphaFont.convertFont(  
                     self.ftfonts[i],  
                     80,  
                     1./self.height / self.anisos[i], 1./self.height,  
                     [  
61                              "TEXTURE_MAG_FILTER", "LINEAR",                              "TEXTURE_MAG_FILTER", "LINEAR",
62                              "TEXTURE_MIN_FILTER", "LINEAR_MIPMAP_LINEAR",                              "TEXTURE_MIN_FILTER", "LINEAR_MIPMAP_LINEAR",
63                              "TEXTURE_MAX_ANISOTROPY_EXT", str(ceil(self.anisos[i]))                              "TEXTURE_MAX_ANISOTROPY_EXT", str(ceil(self.anisos[i]))
64                      ])                      ])
65                      for i in range(0, len(self.anisos))]              for i in range(0, len(self.fonts[1][k])):
66                    if self.anisos[i] > 1:
67                        vob.gl.SimpleAlphaFont.postprocessGLFont_reduceReso(
68              self.vftfonts = [                          self.fonts[1][k][i].getQuadFont(), 1, self.anisos[i])
69                  vob.gl.GL.createFTFont(                  if self.filters[k]:
70                      "/usr/share/fonts/type1/gsfonts/n019003l.pfb",                      vob.gl.SimpleAlphaFont.filterDownsampled(
71                      height, height, (1<<16), 0, 0, int(a*(1<<16)))                          self.fonts[1][k][i].getQuadFont(), self.filters[k][0], self.filters[k][1],
72                      for a in self.anisos]                          [
             self.vfonts = [  
                 vob.gl.SimpleAlphaFont.convertFont(  
                     self.vftfonts[i],  
                     80,  
                     1./self.height, 1./self.height / self.anisos[i],  
                     [  
73                              "TEXTURE_MAG_FILTER", "LINEAR",                              "TEXTURE_MAG_FILTER", "LINEAR",
74                              "TEXTURE_MIN_FILTER", "LINEAR_MIPMAP_LINEAR",                              "TEXTURE_MIN_FILTER", "LINEAR_MIPMAP_LINEAR",
75                              "TEXTURE_MAX_ANISOTROPY_EXT", str(ceil(self.anisos[i]))                              "TEXTURE_MAX_ANISOTROPY_EXT", str(ceil(self.anisos[i]))
76                      ])                      ])
                     for i in range(0, len(self.anisos))]  
77    
78          self.texts = [[          self.texts = [[[
79              vob.gl.GLRen.createText1(f.getQuadFont(),              vob.gl.GLRen.createText1(f.getQuadFont(),
80                  string, 0, 0)                  string, 0, 0)
81              for f in fonts] for fonts in self.fonts]              for f in fonts2] for fonts2 in fonts] for fonts in self.fonts]
82    
83            self.supertext =  \
84                vob.gl.GLRen.createTextSuper4(self.superfont.getQuadFont(),
85                    string, 0, 0)
86    
87          self.levels = [          self.levels = [[
88              [   [              [   [
89                      vob.gl.SimpleAlphaFont.getLevelDrawPixels(f.getQuadFont(), 83, level)                      vob.gl.SimpleAlphaFont.getLevelDrawPixels(f.getQuadFont(), ord(string[0]), level)
90                      for level in range(0,9)]                      for level in range(0,9)]
91                  for f in fonts                  for f in fonts2]
92                    for fonts2 in fonts
93              ]              ]
94              for fonts in self.fonts]              for fonts in self.fonts]
95    
96          self.key = KeyPresses(          self.key = KeyPresses(
97              self,              self,
98              ListIndex("aniso", "anisos", 0, "Anisotropy (index of list)", "A", "a"),              ListIndex("aniso", "anisos", 0, "Anisotropy (index of list)", "A", "a"),
99              Toggle("shift", 0, "Shift text", "s"),              ListIndex("filter", "filters", 0, "Mipmap filter", "F", "f"),
100                Toggle("shift", 0, "Shift text", "m"),
101              Toggle("vert", 0, "Aniso vertically", "v"),              Toggle("vert", 0, "Aniso vertically", "v"),
102                Toggle("super4", 0, "Supersample", "s"),
103              SlideLin("lodbias", 0, .1, "LOD bias", "b", "B"),              SlideLin("lodbias", 0, .1, "LOD bias", "b", "B"),
104              SlideLin("rotation", 0, 1, "Rotation", ">", "<"),              SlideLin("rotation", 0, 1, "Rotation", ">", "<"),
105              )              )
106      def scene(self, vs):      def scene(self, vs):
107          vs.put( background((1,1,1)))          vs.put( background((1,1,1)))
108    
109          print "Aniso:",self.anisos[self.aniso],self.vert          print "Aniso:",self.anisos[self.aniso],self.vert,self.filter
110    
111          text = self.texts[self.vert][self.aniso]          if self.super4:
112                text = self.supertext
113            else:
114                text = self.texts[self.vert][self.filter][self.aniso]
115    
116          shifted = vs.translateCS(0, "SH", 5 * self.shift, 3 * self.shift)          shifted = vs.translateCS(0, "SH", 5 * self.shift, 3 * self.shift)
117          shifted = vs.rotateCS(shifted, "R", self.rotation)          shifted = vs.rotateCS(shifted, "R", self.rotation)
# Line 120  class Scene: Line 126  class Scene:
126          """ % locals()))          """ % locals()))
127    
128          if 1:          if 1:
129              ni = 13              ni = 5
130              y0 = 20              y0 = 20
131              for size in (8, 8.1,  9.3, 10.4,12,16):              if self.super4:
132                    vs.put(getDListNocoords(
133                        vob.lava.normalizedquads.super4TexSetupCode() +
134                        vob.lava.normalizedquads.super4CombinerCode()))
135                for size in (8, 9.3, 10.4,12,16):
136                  for x in range(0,ni):                  for x in range(0,ni):
137                      for y in range(0, ni):                      for y in range(0, ni):
138                          vs.put(text,                          vs.put(text,
139                              vs.orthoCS(shifted, str((size,x,y,"A")), 0,                              vs.orthoCS(shifted, str((size,x,y,"A")), 0,
140                                  20 + (1*int(size*1.12)+1./ni) * x,                                  20 + (1*int(size*1.42)+1./ni) * x,
141                                  y0 + 20 + (int(size*1.12)+1./ni) * y,                                  y0 + 20 + (int(size*1.12)+1./ni) * y,
142                                  size, size))                                  size, size))
143                  y0 += int(ni * size * 1.2 )                  y0 += int(ni * size * 1.2 )
144              if 1:              if self.super4:
145                    vs.put(getDListNocoords(
146                        vob.lava.normalizedquads.super4TeardownCode() + """
147                        Disable REGISTER_COMBINERS_NV
148                        """
149                        ))
150                if not self.super4:
151                  for level in range(0,8):                  for level in range(0,8):
152                      vs.put(self.levels[self.vert][self.aniso][level],                      vs.put(self.levels[self.vert][self.filter][self.aniso][level],
153                          vs.orthoCS(0, str(("I",level)), 0,                          vs.orthoCS(0, str(("I",level)), 0,
154                                  500, 150 + 70 * level, 1, 1))                                  500, 150 + 70 * level, 1, 1))
155          if 0:          if 0:

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

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