/[gzz]/gzz/gzz/view/pagespanview.py
ViewVC logotype

Diff of /gzz/gzz/view/pagespanview.py

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

revision 1.15 by tjl, Wed Oct 23 12:12:38 2002 UTC revision 1.16 by tjl, Wed Oct 23 19:50:17 2002 UTC
# Line 20  def enf2span(enf): Line 20  def enf2span(enf):
20      list = enf.getList()      list = enf.getList()
21      return list[0]      return list[0]
22    
23    optimizedPaper = 1
24    
25  globalscrollblockPapers = {}  globalscrollblockPapers = {}
26    
27    window = None
28    
29  def getScrollblockPaper(sb):  def getScrollblockPaper(sb):
30      """Get the paper object for a given scrollblock.      """Get the paper object for a given scrollblock.
31      """      """
32      hashkey = sb.hashCode() + globalseedoffs      hashkey = sb.hashCode() + globalseedoffs
33      ret = globalscrollblockPapers.get(hashkey, None)      ret = globalscrollblockPapers.get(hashkey, None)
34      if ret == None:      if ret == None:
35          ret = papermill.getPaper(hashkey)          if optimizedPaper:
36          ret.setNPasses(3)              ret = papermill.getOptimizedPaper(hashkey, window)
37            else:
38                ret = papermill.getPaper(hashkey)
39          globalscrollblockPapers[hashkey] = ret          globalscrollblockPapers[hashkey] = ret
40      return ret      return ret
41    
42    
43  def getPDFPapers(content):  def getPDFPapers(content):
44      contentspan = enf2span(content)      contentspan = enf2span(content)
45      scrollblockPaper = getScrollblockPaper(contentspan.getScrollBlock())      scrollblockPaper = getScrollblockPaper(contentspan.getScrollBlock())
# Line 56  def pdfpaper(pdfrect, background): Line 64  def pdfpaper(pdfrect, background):
64      ph = pdfrect.h / 72.0 / 6      ph = pdfrect.h / 72.0 / 6
65      wm = (pdfrect.x1-pdfrect.x0) / pw      wm = (pdfrect.x1-pdfrect.x0) / pw
66      hm = (pdfrect.y1-pdfrect.y0) / ph      hm = (pdfrect.y1-pdfrect.y0) / ph
67      def mpap(blend, pap = None):      def mpap_general(blend, pap = None):
68          if pap == None:          if pap == None:
69              pap = Paper()              pap = Paper()
70              pap.setNPasses(1)              pap.setNPasses(1)
# Line 97  def pdfpaper(pdfrect, background): Line 105  def pdfpaper(pdfrect, background):
105                                    0, 0,  1, 0,                                    0, 0,  1, 0,
106                                    0, 0,  0, 1])                                    0, 0,  0, 1])
107          return pap          return pap
108    
109        if optimizedPaper:
110            def mpap(blend, pap = None):
111                if pap == None:
112                    return mpap_general(blend, pap)
113                p = pap.getNPasses()
114                assert p == 1
115                ppass = pap.getPass(0)
116    
117                texid = pdfrect.texId
118                ppass.setSetupcode(ppass.getSetupcode() +  nvcode.combinercode("""
119                    ActiveTexture TEXTURE1
120                    Enable TEXTURE_2D
121                    BindTexture TEXTURE_2D %(texid)s
122                    TexParameter TEXTURE_2D TEXTURE_WRAP_S REPEAT
123                    TexParameter TEXTURE_2D TEXTURE_WRAP_T REPEAT
124                    TexParameter TEXTURE_2D TEXTURE_MIN_FILTER LINEAR_MIPMAP_LINEAR
125                    TexParameter TEXTURE_2D TEXTURE_MAG_FILTER LINEAR
126                    TexParameter TEXTURE_2D TEXTURE_MAX_ANISOTROPY_EXT 10
127                    ActiveTexture TEXTURE0
128    
129                    Disable BLEND
130                    Disable ALPHA_TEST
131    
132                    Enable REGISTER_COMBINERS_NV
133                    CombinerParameterNV NUM_GENERAL_COMBINERS_NV 2
134    
135                    # 2*tex1 - 1  ->  spare0
136                    CI0 RGB A TEXTURE1 EXPAND_NORMAL_NV RGB
137                    CI0 RGB B ZERO UNSIGNED_INVERT_NV RGB
138                    CI0 RGB C ZERO UNSIGNED_INVERT_NV RGB
139                    CI0 RGB D ZERO EXPAND_NORMAL_NV RGB
140                    CO0 RGB DISCARD_NV DISCARD_NV SPARE0_NV NONE NONE FALSE FALSE FALSE
141    
142                    # spare0 + tex0 -> spare1
143                    CI1 RGB A TEXTURE0 UNSIGNED_IDENTITY_NV RGB
144                    CI1 RGB B ZERO UNSIGNED_INVERT_NV RGB
145                    CI1 RGB C SPARE0_NV SIGNED_IDENTITY_NV RGB
146                    CI1 RGB D ZERO UNSIGNED_INVERT_NV RGB
147                    CO1 RGB DISCARD_NV DISCARD_NV SPARE1_NV NONE NONE FALSE FALSE FALSE
148    
149                    FCI A SPARE1_NV UNSIGNED_IDENTITY_NV RGB
150                    FCI B ZERO UNSIGNED_INVERT_NV RGB
151                    FCI C ZERO UNSIGNED_IDENTITY_NV RGB
152                    FCI D ZERO UNSIGNED_IDENTITY_NV RGB
153                    FCI G ZERO UNSIGNED_IDENTITY_NV ALPHA
154    
155                    # Final color: simply just SPARE1
156                
157                """ % locals()))
158                ppass.setNTexGens(2)
159                ppass.putNormalTexGen(1, [wm, 0, 0, pdfrect.x0,
160                                          0, hm, 0, pdfrect.y0,
161                                          0, 0,  1, 0,
162                                          0, 0,  0, 1])
163                return pap
164        else:
165            mpap = mpap_general
166    
167    
168      papw = mpap("BlendFunc SRC_COLOR ZERO")      papw = mpap("BlendFunc SRC_COLOR ZERO")
169      papo = mpap(nvcode.combinercode("""      papo = mpap(nvcode.combinercode("""
170          Enable REGISTER_COMBINERS_NV          Enable REGISTER_COMBINERS_NV

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.16

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