[Top][All Lists]
[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]
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gzz-commits] gzz/gfx demo/xupdf.py libpaper/colors.py,
Tuomas J. Lukka <=