[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] gzz ./TODO gzz/gfx/gl/PageSpanPaper.java gzz/vi...
From: |
Tuomas J. Lukka |
Subject: |
[Gzz-commits] gzz ./TODO gzz/gfx/gl/PageSpanPaper.java gzz/vi... |
Date: |
Mon, 27 Jan 2003 14:39:40 -0500 |
CVSROOT: /cvsroot/gzz
Module name: gzz
Changes by: Tuomas J. Lukka <address@hidden> 03/01/27 14:39:40
Modified files:
. : TODO
gzz/gfx/gl : PageSpanPaper.java
gzz/view : pagespanview.py
test/gzz/gfx/gl: paper.test
Log message:
A core dumping test for paperquad\! It allocates too short arrays
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/TODO.diff?tr1=1.538&tr2=1.539&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/gfx/gl/PageSpanPaper.java.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/view/pagespanview.py.diff?tr1=1.27&tr2=1.28&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/test/gzz/gfx/gl/paper.test.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
Patches:
Index: gzz/TODO
diff -u gzz/TODO:1.538 gzz/TODO:1.539
--- gzz/TODO:1.538 Mon Jan 27 11:23:40 2003
+++ gzz/TODO Mon Jan 27 14:39:39 2003
@@ -258,8 +258,6 @@
colors (not "not" tests but test that the
color really is right)
tjl:
- - implement uncompressed mipzips for R300. BLECHHH!!!!
- - make demo start screen size adjustable by environment vars
- xupdf: distorted multi-page PDF view with xu links
- clean the code: split PageSpanPaper &c.
- adjustable zoom / distortion area by mouse
@@ -281,6 +279,7 @@
- use off-screen buffer for libpaper r2t
- use background loading for paper textures
- generate mipzips
+ - make demo start screen size adjustable by environment vars
- matrix inv!
- vobmatcher keymapping to work in both directions
- PEG move Obs to gzz.util, freeze some gzz.util classes
Index: gzz/gzz/gfx/gl/PageSpanPaper.java
diff -u gzz/gzz/gfx/gl/PageSpanPaper.java:1.3
gzz/gzz/gfx/gl/PageSpanPaper.java:1.4
--- gzz/gzz/gfx/gl/PageSpanPaper.java:1.3 Mon Jan 27 12:26:04 2003
+++ gzz/gzz/gfx/gl/PageSpanPaper.java Mon Jan 27 14:39:40 2003
@@ -113,6 +113,9 @@
}
}
+ public void request(float importance, float pixels) {
+ p.getTexture(importance, pixels);
+ }
public PageSpanPaper(Paper background, GLSpanner.SpanPage p) {
if(filter == null) {
Index: gzz/gzz/view/pagespanview.py
diff -u gzz/gzz/view/pagespanview.py:1.27 gzz/gzz/view/pagespanview.py:1.28
--- gzz/gzz/view/pagespanview.py:1.27 Sun Jan 26 16:25:58 2003
+++ gzz/gzz/view/pagespanview.py Mon Jan 27 14:39:40 2003
@@ -1,6 +1,6 @@
from __future__ import nested_scopes
import math
-from gzz.gfx.gl import GL, GLRen, GLSpanner, Paper, GLCache, Stencil
+from gzz.gfx.gl import GL, GLRen, GLSpanner, Paper, GLCache, Stencil,
PageSpanPaper
import gfx.libpaper.papermill
from gfx.libutil import nvcode, effects
import gzz
@@ -44,149 +44,21 @@
globalscrollblockPapers[hashkey] = ret
return ret
-class PDFPage:
- def __init__(self, span, scrollblockPaper):
- self.rect = GLSpanner.getSpanRect(span)
- if dbg: print "Rect: ",self.rect
- (self.paperwhite, self.w, self.h, self.paperwithbg) = pdfpaper(span,
self.rect, scrollblockPaper)
-
def getPDFPapers(content):
contentspan = enf2span(content)
scrollblockPaper = getScrollblockPaper(contentspan.getScrollBlock())
ret = []
for i in range(0, content.length()):
- rect = PDFPage(contentspan.subSpan(i,i+1), scrollblockPaper)
+ rect = PageSpanPaper(scrollblockPaper,
+ GLSpanner.getSpanRect(
+ contentspan.subSpan(i, i+1)).page)
ret.append( rect )
return ret
-filters = """
- TexParameter TEXTURE_2D TEXTURE_MIN_FILTER LINEAR_MIPMAP_NEAREST
- TexParameter TEXTURE_2D TEXTURE_MAG_FILTER LINEAR
- TexParameter TEXTURE_2D TEXTURE_MAX_ANISOTROPY_EXT 1
-"""
-
def setFilters(filt):
global filters
filters = filt
-def pdfpaper(span, pdfrect, background):
- """Get the papers for the pages.
-
- Returns: (pdf on white background, width, height,
- pdf on given background paper)
- """
- # Papercoords: (0,0) .. (w,h) where
- # w = pdfrect.w / 72 / 6, same for h
- # ret: (paper, w, h)
- dim = span.getSize()
- pw = dim.width / 72.0 / 6
- ph = dim.height / 72.0 / 6
- wm = (pdfrect.x1-pdfrect.x0) / pw
- hm = (pdfrect.y1-pdfrect.y0) / ph
- texid = pdfrect.getTexture(0.1, 500).getTexId()
-
- filt = filters
-
- texcode = """
-
- BindTexture TEXTURE_2D %(texid)s
- TexParameter TEXTURE_2D TEXTURE_WRAP_S REPEAT
- TexParameter TEXTURE_2D TEXTURE_WRAP_T REPEAT
-
- %(filt)s
-
- """ % locals()
-
- if dbg: print "Texcode: ",texcode
-
- def mpap_general(blend, pap = None):
- if pap == None:
- pap = Paper()
- pap.setNPasses(1)
- ppass = pap.getPass(0)
- else:
- p = pap.getNPasses()
- pap.setNPasses(p+1)
- ppass = pap.getPass(p)
-
- tc = texcode
- 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
-
- %(tc)s
-
- """ % 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
-
- if optimizedPaper:
- def mpap(blend, pap = None):
- if pap == None:
- return mpap_general(blend, pap)
- p = pap.getNPasses()
- assert p == 1
- ppass = pap.getPass(0)
-
-
- tc = texcode
- ppass.setSetupcode(ppass.getSetupcode() + nvcode.combinercode("""
- ActiveTexture TEXTURE1
- Enable TEXTURE_2D
-
- %(tc)s
-
- ActiveTexture TEXTURE0
-
- Disable BLEND
- Disable ALPHA_TEST
-
- Enable REGISTER_COMBINERS_NV
- CombinerParameterNV CONSTANT_COLOR0_NV 0 0 0 0
- CombinerParameterNV CONSTANT_COLOR1_NV 0 0 0 .7
-
- """ % locals() +
- nvcode.parseCombiner("""
-
- SPARE0 = (1-TEX1) + (-CONST0.alpha)
-
- SPARE0 = (-SPARE0)*CONST1.alpha + (.5)*(+TEX0)
-
- color = SPARE0 + SPARE0
- alpha = 1
- """)))
-
- ppass.setNTexGens(2)
- ppass.putNormalTexGen(1, [wm, 0, 0, pdfrect.x0,
- 0, hm, 0, pdfrect.y0,
- 0, 0, 1, 0,
- 0, 0, 0, 1])
- return pap
- else:
- mpap = mpap_general
-
-
- papw = mpap("BlendFunc SRC_COLOR ZERO")
- papo = mpap("", pap = background.clone())
- return (papw, pw, ph, papo)
-
-
class CellPDFView:
dicefactor = 2
# dicefactor = .5
@@ -266,14 +138,9 @@
vs.matcher.add(cs_cull, key+"_cull_"+str(i))
if onlypages == None or i in onlypages:
- if fancy:
- pq = GLRen.createPaperQuad(
- papers[i].paperwithbg, *corners)
- vs.map.put(pq, cs_cull, cs2)
- else:
- pq = GLRen.createPaperQuad(
- papers[i].paperwhite, *corners)
- vs.map.put(pq, cs_cull, cs2)
+ pq = GLRen.createPaperQuad(
+ papers[i].getPaper(fancy), *corners)
+ vs.map.put(pq, cs_cull, cs2)
self.curx += self.scaledsheetsize[0]
@@ -338,12 +205,12 @@
def reqTextures(self, x, y, all=0, importance = 1):
(page, px, py) = self.paperpoint_inv(x, y)
if dbg: print "Request page ",page
- self.pap[page].rect.getTexture(importance, 4000)
+ self.pap[page].request(importance, 4000)
if all:
for i in range(0, len(self.pap)):
if i == page: continue
imp = importance * 1.0 / (1 + 2 * abs(i - page))
- self.pap[i].rect.getTexture(imp, 4000)
+ self.pap[i].request(imp, 4000)
def hitClip(self, coords, point3, cliprect):
src = zeros(3, 'f') # assume only one point
Index: gzz/test/gzz/gfx/gl/paper.test
diff -u gzz/test/gzz/gfx/gl/paper.test:1.9 gzz/test/gzz/gfx/gl/paper.test:1.10
--- gzz/test/gzz/gfx/gl/paper.test:1.9 Sun Jan 12 06:41:47 2003
+++ gzz/test/gzz/gfx/gl/paper.test Mon Jan 27 14:39:40 2003
@@ -30,6 +30,23 @@
checkNotAvgColor(150, 150, 2, 2, (0,0,0), 30)
checkNotAvgColor(250, 250, 2, 2, (0,0,0), 30)
+def testDicing():
+ """Dicing paper a LOT - there have been some
+ too short allocated arrays.
+ """
+ paper = PaperMill.getInstance().getPaper(57)
+ for df in (0, .1, .5, 1, 5, 10, 20, 37, 100):
+ vs = getvs()
+ vs.map.put(SolidBgVob(Color.black))
+ pq = GLRen.createPaperQuad(paper, 0, 0, 1, 1, df)
+ cs1 = vs.coords.distort(0, 0, 0, 10, 10, 400, 40)
+ vs.map.put(pq, cs1, 0)
+ vs.map.put(pq, cs1, 0)
+ vs.map.put(pq, cs1, 0)
+ vs.map.put(pq, cs1, 0)
+ render(vs)
+ checkNotAvgColor(50, 50, 20, 20, (0,0,0), 30)
+
def testOptimizedPaper():
"""See that optimized paper really is same as
original."""
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gzz-commits] gzz ./TODO gzz/gfx/gl/PageSpanPaper.java gzz/vi...,
Tuomas J. Lukka <=