[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] gzz gzz/view/PageSpanCellView.java test/gzz/gfx...
From: |
Tuomas J. Lukka |
Subject: |
[Gzz-commits] gzz gzz/view/PageSpanCellView.java test/gzz/gfx... |
Date: |
Wed, 29 Jan 2003 07:16:41 -0500 |
CVSROOT: /cvsroot/gzz
Module name: gzz
Changes by: Tuomas J. Lukka <address@hidden> 03/01/29 07:16:39
Modified files:
gzz/view : PageSpanCellView.java
test/gzz/gfx/gl: pagespanpaper.test
test/gzz/view : pagespancellview.test
Log message:
PagespanCellview size
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/gzz/view/PageSpanCellView.java.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/test/gzz/gfx/gl/pagespanpaper.test.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/test/gzz/view/pagespancellview.test.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
Patches:
Index: gzz/gzz/view/PageSpanCellView.java
diff -u gzz/gzz/view/PageSpanCellView.java:1.3
gzz/gzz/view/PageSpanCellView.java:1.4
--- gzz/gzz/view/PageSpanCellView.java:1.3 Wed Jan 29 04:50:17 2003
+++ gzz/gzz/view/PageSpanCellView.java Wed Jan 29 07:16:39 2003
@@ -23,37 +23,28 @@
public boolean useBg = true;
+ Enfilade1D cached;
+ PageSpan[] pages;
+ PageSpanPaper[] psps;
+ float[] xywh;
+ float w;
+ float h;
+ float xoffs, yoffs;
-
- /** Place the pages into the given coordinate system at the default scale,
- * centered at the given location.
- */
- /*
- public void placeCentered(Cell c, VobScene vs, int into, ViewContext
context, PageSpan center) {
- placeCentered(
- cell.space.cellTexter.getEnfilade(cell, None),
- vs, into, context, center);
- }
- */
-
- /** Place the given enfilade in the coordinate system.
- * @param center The pagespan which defines where the origin will be
- * @param importance The importance to be given to the image requests
- * @param pixelscale The pixel scale at which the image requests are made
- */
- public void placeCentered(Enfilade1D enf, VobScene vs, int into,
- ViewContext context, PageSpan center,
- float importance, float pixelscale) {
+ public void getSize(Enfilade1D enf, ViewContext context, float[] out,
+ PageSpan center) {
int npages = enf.length();
- PageSpan[] pages = new PageSpan[npages];
- PageSpanPaper[] psps = new PageSpanPaper[npages];
- float[] xywh = new float[npages * 4]; // x, y, w, h in PAPER coordinates
- float w = 0;
+ pages = new PageSpan[npages];
+ psps = new PageSpanPaper[npages];
+ xywh = new float[npages * 4]; // x, y, w, h in PAPER coordinates
+ w = 0;
+ h = 0;
boolean foundCenter = false;
- float xoffs = 0;
- float yoffs = 0;
+ xoffs = 0;
+ yoffs = 0;
+
for(int p = 0; p < npages; p++) {
pages[p] = (PageSpan)enf.sub(p, p+1).getList().get(0); // XXX
INEFFICIENT!
GLSpanner.SpanRect rect = GLSpanner.getSpanRect(pages[p]);
@@ -86,7 +77,43 @@
}
w += scale * xywh[4*p + 2];
+ if(h < scale * xywh[4*p + 3])
+ h = scale * xywh[4*p + 3];
+ }
+
+ if(out != null) {
+ out[0] = w;
+ out[1] = h;
}
+
+ cached = enf;
+
+ }
+
+
+
+ /** Place the pages into the given coordinate system at the default scale,
+ * centered at the given location.
+ */
+ /*
+ public void placeCentered(Cell c, VobScene vs, int into, ViewContext
context, PageSpan center) {
+ placeCentered(
+ cell.space.cellTexter.getEnfilade(cell, None),
+ vs, into, context, center);
+ }
+ */
+
+ /** Place the given enfilade in the coordinate system.
+ * @param center The pagespan which defines where the origin will be
+ * @param importance The importance to be given to the image requests
+ * @param pixelscale The pixel scale at which the image requests are made
+ */
+ public void placeCentered(Enfilade1D enf, VobScene vs, int into,
+ ViewContext context, PageSpan center,
+ float importance, float pixelscale) {
+ if(cached != enf)
+ getSize(enf, context, null, center);
+ int npages = enf.length();
// Now we can draw the pages.
float curx = -xoffs;
Index: gzz/test/gzz/gfx/gl/pagespanpaper.test
diff -u gzz/test/gzz/gfx/gl/pagespanpaper.test:1.4
gzz/test/gzz/gfx/gl/pagespanpaper.test:1.5
--- gzz/test/gzz/gfx/gl/pagespanpaper.test:1.4 Mon Jan 27 12:26:05 2003
+++ gzz/test/gzz/gfx/gl/pagespanpaper.test Wed Jan 29 07:16:39 2003
@@ -70,7 +70,8 @@
for i in range(0, 30):
pagespan.getTexture(1, 5000)
- gzz.client.AbstractUpdateManager.tickIdle()
+ for j in range(0, 10):
+ gzz.client.AbstractUpdateManager.tickIdle()
render(vs)
# check the rendered image's color
Index: gzz/test/gzz/view/pagespancellview.test
diff -u gzz/test/gzz/view/pagespancellview.test:1.3
gzz/test/gzz/view/pagespancellview.test:1.4
--- gzz/test/gzz/view/pagespancellview.test:1.3 Wed Jan 29 04:50:17 2003
+++ gzz/test/gzz/view/pagespancellview.test Wed Jan 29 07:16:39 2003
@@ -1,6 +1,7 @@
from __future__ import nested_scopes
import sys
import traceback
+import jarray
needGL()
import gzz
@@ -60,6 +61,15 @@
failUnlessEqual(s.width, 612)
failUnlessEqual(s.height, 792)
+def testSize():
+
+ s = sc.getCurrent().getSize()
+ z = jarray.zeros(2, "f")
+ PageSpanCellView().getSize(enfMaker.makeEnfilade(sc.getCurrent()), None,
z, None)
+
+ failUnlessApprox(.1, z[0], 2 * 612)
+ failUnlessApprox(.1, z[1], 792)
+
def testSimply():
"""Test that the view renders something
@@ -68,7 +78,8 @@
passed = 0
for i in range(0, 50):
- gzz.client.AbstractUpdateManager.tickIdle()
+ for j in range(0, 20):
+ gzz.client.AbstractUpdateManager.tickIdle()
vs = getvs()
vs.map.put(SolidBgVob(Color.yellow))
@@ -90,7 +101,7 @@
passed = 1
break
- Thread.sleep(300)
+ Thread.sleep(200)
failUnlessEqual(passed, 1, "didn't get the image " + exc)
- [Gzz-commits] gzz gzz/view/PageSpanCellView.java test/gzz/gfx...,
Tuomas J. Lukka <=