gzz-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz-commits] gzz/gfx demo/xupdf.py libpaper/colors.py


From: Tuomas J. Lukka
Subject: [Gzz-commits] gzz/gfx demo/xupdf.py libpaper/colors.py
Date: Wed, 18 Sep 2002 23:08:24 -0400

CVSROOT:        /cvsroot/gzz
Module name:    gzz
Changes by:     Tuomas J. Lukka <address@hidden>        02/09/18 23:08:24

Modified files:
        gfx/demo       : xupdf.py 
        gfx/libpaper   : colors.py 

Log message:
        Ahh, figured why the text looked so washed-out... simply because 
blending by multiplication was wrong.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/demo/xupdf.py.diff?tr1=1.14&tr2=1.15&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gfx/libpaper/colors.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text

Patches:
Index: gzz/gfx/demo/xupdf.py
diff -c gzz/gfx/demo/xupdf.py:1.14 gzz/gfx/demo/xupdf.py:1.15
*** gzz/gfx/demo/xupdf.py:1.14  Wed Sep 18 21:51:34 2002
--- gzz/gfx/demo/xupdf.py       Wed Sep 18 23:08:24 2002
***************
*** 13,18 ****
--- 13,19 ----
  import gzz
  from test.tools import tools
  execfile("gfx/libutil/effects.py")
+ execfile("gfx/libpaper/papermill.py")
  
  space = gzz.impl.ModularSpace(*tools.spaceArgList())
  xuindexer = gzz.index.impl.TransientXuIndexer()
***************
*** 61,66 ****
--- 62,70 ----
  globalx = 0
  globaly = 0
  
+ globalusefancypaper = 0
+ globalseedoffs = 8
+ 
  def moveToCell(cell):
      global globalcursor, globalx, globaly, globalpap
      global globalforw, globalback
***************
*** 80,163 ****
      java.lang.System.gc()
      AbstractUpdateManager.chg()
  
  def getPDFPapers(content):
      contentspan = enf2span(content)
!     prect = [
!       GLSpans.getRect(contentspan.subSpan(i,i+1))
!           for i in range(0,content.length())]
!     return [
!       pdfpaper(p) for p in prect
!     ]
! 
  
      
  
  def globalkey(key):
      if key == '1':
        moveToCell(c1)
!     if key == '2':
        moveToCell(c2)
  
  def pdfpaper(pdfrect): 
      # Papercoords: (0,0) .. (w,h) where
      # w = pdfrect.w / 72 / 6, same for h
      # ret: (paper, w, h)
-     pap = Paper()
-     pap.setNPasses(1)
-     ppass = pap.getPass(0)
- 
-     texid = pdfrect.texId
-     ppass.setSetupcode("""
-       PushAttrib ENABLE_BIT TEXTURE_BIT
-       ActiveTexture TEXTURE1
-       Disable TEXTURE_2D
-       ActiveTexture TEXTURE0
-         Enable BLEND
-         # BlendFunc ZERO SRC_COLOR
-         BlendFunc ONE ZERO
-         Disable DEPTH_TEST
-         Color 1 1 1
-       SecondaryColorEXT 0 0 0
-         Enable TEXTURE_2D
-         Disable ALPHA_TEST
-       Disable REGISTER_COMBINERS_NV
- 
-         BindTexture TEXTURE_2D %(texid)s
-         TexParameter TEXTURE_2D TEXTURE_WRAP_S REPEAT
-         TexParameter TEXTURE_2D TEXTURE_WRAP_T REPEAT
-         TexParameter TEXTURE_2D TEXTURE_MIN_FILTER LINEAR_MIPMAP_LINEAR
-         TexParameter TEXTURE_2D TEXTURE_MAG_FILTER LINEAR
-     """ % locals())
- 
-     ppass.setTeardowncode("""PopAttrib""")
-     ppass.setNTexGens(1)
      pw = pdfrect.w / 72.0 / 6
      ph = pdfrect.h / 72.0 / 6
      wm = (pdfrect.x1-pdfrect.x0) / pw
      hm = (pdfrect.y1-pdfrect.y0) / ph
!     ppass.putNormalTexGen(0, [wm, 0, 0, pdfrect.x0,
!                             0, hm, 0, pdfrect.y0,
!                             0, 0,  1, 0,
!                             0, 0,  0, 1])
!     return (pap, pw, ph)
  
  
  def placepapers(vs, cs2, papers, key, x, y, paperx, papery, h, 
onlypages=None):
      # The height in coords
!     ph = papers[0][2]
      scale = h/ph
      curx = x - paperx * scale
      ycoord = y - papery * scale
      print "x,y for place: ",curx, ycoord
      for i in range(0, len(papers)):
        # create always all cs, gets interpolation better
        cs1 = vs.coords.affineCoordsys(0, key+"_p_"+str(i), 10,
                curx, ycoord, scale, 0, 0, scale)
        if onlypages == None or i in onlypages:
!           pq = GZZGL.createFisheyePaperQuad(
!               papers[i][0], 0, 0, papers[i][1], papers[i][2], 21, 21, 3)
!           vs.map.put(pq, cs1, cs2)
!       curx += 1.02 *  papers[i][1] * scale
  
  def bg(vs):
      putnoc(vs, background((0.3,0.5,0.4)))
--- 84,208 ----
      java.lang.System.gc()
      AbstractUpdateManager.chg()
  
+ globalscrollblockPapers = {}
+ def getScrollblockPaper(sb):
+     hashkey = sb.hashCode() + globalseedoffs
+     ret = globalscrollblockPapers.get(hashkey, None)
+     if ret == None:
+       ret = ThePaperMill().getPaper(hashkey)
+       globalscrollblockPapers[hashkey] = ret
+     return ret
+ 
  def getPDFPapers(content):
      contentspan = enf2span(content)
!     scrollblockPaper = getScrollblockPaper(contentspan.getScrollBlock())
!     ret = []
!     for i in range(0, content.length()):
!       rect = GLSpans.getRect(contentspan.subSpan(i,i+1))
!       ret.append(
!           (scrollblockPaper, pdfpaper(rect))
!       )
!     return ret
  
      
  
  def globalkey(key):
+     global globalusefancypaper, globalseedoffs
      if key == '1':
        moveToCell(c1)
!     elif key == '2':
        moveToCell(c2)
+     elif key == 'p':
+       globalusefancypaper = not globalusefancypaper
+     elif key == ',':
+       globalseedoffs -= 1
+       moveToCell(globalcursor)
+     elif key == '.':
+       globalseedoffs += 1
+       moveToCell(globalcursor)
  
  def pdfpaper(pdfrect): 
      # Papercoords: (0,0) .. (w,h) where
      # w = pdfrect.w / 72 / 6, same for h
      # ret: (paper, w, h)
      pw = pdfrect.w / 72.0 / 6
      ph = pdfrect.h / 72.0 / 6
      wm = (pdfrect.x1-pdfrect.x0) / pw
      hm = (pdfrect.y1-pdfrect.y0) / ph
!     def mpap(blend):
!       pap = Paper()
!       pap.setNPasses(1)
!       ppass = pap.getPass(0)
! 
!       texid = pdfrect.texId
!       ppass.setSetupcode("""
!           PushAttrib ENABLE_BIT TEXTURE_BIT COLOR_BUFFER_BIT
!           ActiveTexture TEXTURE1
!           Disable TEXTURE_2D
!           ActiveTexture TEXTURE0
!           Enable BLEND
!           Disable REGISTER_COMBINERS_NV
!           %(blend)s
!           Disable DEPTH_TEST
!           Color 1 1 1
!           SecondaryColorEXT 0 0 0
!           Enable TEXTURE_2D
!           Disable ALPHA_TEST
! 
!           BindTexture TEXTURE_2D %(texid)s
!           TexParameter TEXTURE_2D TEXTURE_WRAP_S REPEAT
!           TexParameter TEXTURE_2D TEXTURE_WRAP_T REPEAT
!           TexParameter TEXTURE_2D TEXTURE_MIN_FILTER LINEAR_MIPMAP_LINEAR
!           TexParameter TEXTURE_2D TEXTURE_MAG_FILTER LINEAR
!       """ % locals())
! 
!       ppass.setTeardowncode("""PopAttrib""")
!       ppass.setNTexGens(1)
!       ppass.putNormalTexGen(0, [wm, 0, 0, pdfrect.x0,
!                                 0, hm, 0, pdfrect.y0,
!                                 0, 0,  1, 0,
!                                 0, 0,  0, 1])
!       return pap
!     papw = mpap("BlendFunc ONE ZERO")
!     papo = mpap(nvcode.combinercode("""
!       Enable REGISTER_COMBINERS_NV
!       CombinerParameterNV NUM_GENERAL_COMBINERS_NV 1
!       FCI A TEXTURE0 UNSIGNED_INVERT_NV RGB
!       FCI B ZERO UNSIGNED_INVERT_NV RGB
!       FCI C ZERO UNSIGNED_IDENTITY_NV RGB
!       FCI D ZERO UNSIGNED_IDENTITY_NV RGB
!       FCI G ZERO UNSIGNED_IDENTITY_NV ALPHA
!       BlendFunc ONE ONE
!       BlendEquation FUNC_REVERSE_SUBTRACT
!     """))
!     return (papw, pw, ph, papo)
  
  
  def placepapers(vs, cs2, papers, key, x, y, paperx, papery, h, 
onlypages=None):
      # The height in coords
!     ph = papers[0][1][2]
      scale = h/ph
      curx = x - paperx * scale
      ycoord = y - papery * scale
      print "x,y for place: ",curx, ycoord
+     print papers
      for i in range(0, len(papers)):
        # create always all cs, gets interpolation better
        cs1 = vs.coords.affineCoordsys(0, key+"_p_"+str(i), 10,
                curx, ycoord, scale, 0, 0, scale)
        if onlypages == None or i in onlypages:
!           if globalusefancypaper:
!               pq = GZZGL.createFisheyePaperQuad(
!                   papers[i][0], 0, 0, papers[i][1][1], papers[i][1][2], 21, 
21, 3)
!               vs.map.put(pq, cs1, cs2)
!               pq = GZZGL.createFisheyePaperQuad(
!                   papers[i][1][3], 0, 0, papers[i][1][1], papers[i][1][2], 
21, 21, 3)
!               vs.map.put(pq, cs1, cs2)
!           else:
!               pq = GZZGL.createFisheyePaperQuad(
!                   papers[i][1][0], 0, 0, papers[i][1][1], papers[i][1][2], 
21, 21, 3)
!               vs.map.put(pq, cs1, cs2)
!       curx += 1.02 *  papers[i][1][1] * scale
  
  def bg(vs):
      putnoc(vs, background((0.3,0.5,0.4)))
***************
*** 251,257 ****
  
  class XuPDFScene_PDFZoom:
      def __init__(self):
!       self.mag = [0.7, 10]
      def key(self, key):
        print "Key: ",key
        global currentScene
--- 296,302 ----
  
  class XuPDFScene_PDFZoom:
      def __init__(self):
!       self.mag = [10, 0.4]
      def key(self, key):
        print "Key: ",key
        global currentScene
***************
*** 262,268 ****
      def mouse(self, ev):
        global globalx, globaly
        if ev.getID() == ev.MOUSE_CLICKED:
!           scale = globalpap[0][2] / screensize[1]
            globalx += (ev.getX() - screensize[0]/2) * scale
            # self.y -= ev.getY() - screensize[1]/2
            globaly = ev.getY() * scale
--- 307,313 ----
      def mouse(self, ev):
        global globalx, globaly
        if ev.getID() == ev.MOUSE_CLICKED:
!           scale = globalpap[0][1][2] / screensize[1]
            globalx += (ev.getX() - screensize[0]/2) * scale
            # self.y -= ev.getY() - screensize[1]/2
            globaly = ev.getY() * scale
***************
*** 270,287 ****
            AbstractUpdateManager.chg()
      def scene(self, vs):
        bg(vs)
        cs2 = vs.coords.affineCoordsys(0, globalcursor.getId()+"__bulg", 
self.mag[0], 
!               0, globaly / globalpap[0][2] * screensize[1] - screensize[1]/2, 
!                   80 * self.mag[0], 0,0, 80 * self.mag[0])
        bf = NadirCircleFloater_NoAnchor(vs, 
                screenctr,  100, None, 1)
        class CentralB(Runnable):
            def run(rself):
                placepapers(vs, cs2, globalpap, globalcursor.getId(), 0,
!                       globaly / globalpap[0][2] * screensize[1] - 
                                                        screenctr[1], 
                            globalx, globaly, 
!                           screensize[1] * (self.mag[0]/(0.5+self.mag[0])))
        bf.addCentralBuoy(globalcursor.getId(), CentralB())
  
  currentScene = XuPDFScene_PDFZoom()
--- 315,333 ----
            AbstractUpdateManager.chg()
      def scene(self, vs):
        bg(vs)
+       print globalpap
        cs2 = vs.coords.affineCoordsys(0, globalcursor.getId()+"__bulg", 
self.mag[0], 
!               0, globaly / globalpap[0][1][2] * screensize[1] - 
screensize[1]/2, 
!                   80, 0,0, 80)
        bf = NadirCircleFloater_NoAnchor(vs, 
                screenctr,  100, None, 1)
        class CentralB(Runnable):
            def run(rself):
                placepapers(vs, cs2, globalpap, globalcursor.getId(), 0,
!                       globaly / globalpap[0][1][2] * screensize[1] - 
                                                        screenctr[1], 
                            globalx, globaly, 
!                           screensize[1] * (self.mag[0]/(0.3+self.mag[0])))
        bf.addCentralBuoy(globalcursor.getId(), CentralB())
  
  currentScene = XuPDFScene_PDFZoom()
Index: gzz/gfx/libpaper/colors.py
diff -c gzz/gfx/libpaper/colors.py:1.3 gzz/gfx/libpaper/colors.py:1.4
*** gzz/gfx/libpaper/colors.py:1.3      Fri Sep  6 08:35:01 2002
--- gzz/gfx/libpaper/colors.py  Wed Sep 18 23:08:24 2002
***************
*** 6,25 ****
      def __init__(self, seed):
        rnd = self.rnd = java.util.Random(seed)
        # currently, 4 colors
!       minlum = 66
          while 1:
            col = [
                getRandomColor2(minlum,100, rnd),
!               getRandomColor2(minlum,minlum + (100-minlum)*0.5, rnd),
!               getRandomColor2(minlum + (100-minlum)*0.5, 100, rnd),
!               getRandomColor2(minlum + (100-minlum)*0.5, 100, rnd),
            ]
!             if abdiff(col[0], col[1]) < 40: continue
              #if abdiff(col0, col2) < 40: continue
              #if abdiff(col0, col3) < 40: continue
              #if abdiff(col1, col2) < 40: continue
              #if abdiff(col1, col3) < 40: continue
!             if abdiff(col[2], col[3]) < 40: continue
              break
  
        self.colors = [self._js(c) for c in col]
--- 6,25 ----
      def __init__(self, seed):
        rnd = self.rnd = java.util.Random(seed)
        # currently, 4 colors
!       minlum = 80
          while 1:
            col = [
                getRandomColor2(minlum,100, rnd),
!               getRandomColor2(minlum,minlum + (100-minlum)*0.7, rnd),
!               getRandomColor2(minlum + (100-minlum)*0.7, 100, rnd),
!               # getRandomColor2(minlum + (100-minlum)*0.5, 100, rnd),
            ]
!             # if abdiff(col[0], col[1]) < 40: continue
              #if abdiff(col0, col2) < 40: continue
              #if abdiff(col0, col3) < 40: continue
              #if abdiff(col1, col2) < 40: continue
              #if abdiff(col1, col3) < 40: continue
!             # if abdiff(col[2], col[3]) < 40: continue
              break
  
        self.colors = [self._js(c) for c in col]




reply via email to

[Prev in Thread] Current Thread [Next in Thread]