You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-commits@xmlgraphics.apache.org by ca...@apache.org on 2007/09/28 15:13:46 UTC
svn commit: r580338 -
/xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/
Author: cam
Date: Fri Sep 28 06:13:46 2007
New Revision: 580338
URL: http://svn.apache.org/viewvc?rev=580338&view=rev
Log:
Don't store a whole list of previous Intervals for each timed element,
just the most recent one. (Only the list of begin/end instance times
is required for hyperlinking backwards.)
Modified:
xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/AccesskeyTimingSpecifier.java
xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/EventbaseTimingSpecifier.java
xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/IndefiniteTimingSpecifier.java
xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/InstanceTime.java
xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/OffsetTimingSpecifier.java
xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/SyncbaseTimingSpecifier.java
xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/TimedElement.java
xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/WallclockTimingSpecifier.java
Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/AccesskeyTimingSpecifier.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/AccesskeyTimingSpecifier.java?rev=580338&r1=580337&r2=580338&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/AccesskeyTimingSpecifier.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/AccesskeyTimingSpecifier.java Fri Sep 28 06:13:46 2007
@@ -143,8 +143,7 @@
*/
public void resolve(Event e) {
float time = owner.getRoot().convertEpochTime(e.getTimeStamp());
- InstanceTime instance = new InstanceTime(this, time + offset, null,
- true);
+ InstanceTime instance = new InstanceTime(this, time + offset, true);
owner.addInstanceTime(instance, isBegin);
}
}
Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/EventbaseTimingSpecifier.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/EventbaseTimingSpecifier.java?rev=580338&r1=580337&r2=580338&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/EventbaseTimingSpecifier.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/EventbaseTimingSpecifier.java Fri Sep 28 06:13:46 2007
@@ -122,8 +122,7 @@
*/
public void resolve(Event e) {
float time = owner.getRoot().convertEpochTime(e.getTimeStamp());
- InstanceTime instance = new InstanceTime(this, time + offset, null,
- true);
+ InstanceTime instance = new InstanceTime(this, time + offset, true);
owner.addInstanceTime(instance, isBegin);
}
}
Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/IndefiniteTimingSpecifier.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/IndefiniteTimingSpecifier.java?rev=580338&r1=580337&r2=580338&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/IndefiniteTimingSpecifier.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/IndefiniteTimingSpecifier.java Fri Sep 28 06:13:46 2007
@@ -49,7 +49,7 @@
// Only end instance lists get an 'indefinite' instance time from
// an indefinite timing specifier.
InstanceTime instance =
- new InstanceTime(this, TimedElement.INDEFINITE, null, false);
+ new InstanceTime(this, TimedElement.INDEFINITE, false);
owner.addInstanceTime(instance, isBegin);
}
}
Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/InstanceTime.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/InstanceTime.java?rev=580338&r1=580337&r2=580338&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/InstanceTime.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/InstanceTime.java Fri Sep 28 06:13:46 2007
@@ -44,22 +44,14 @@
protected boolean clearOnReset;
/**
- * The Interval on which this InstanceTime is dependent, or null
- * if the InstanceTime was not created from a syncbase value.
- */
- protected Interval timebase;
-
- /**
* Creates a new InstanceTime.
* @param creator the TimingSpecifier that created this InstanceTime
* @param time the new time, in parent simple time
- * @param timebase the interval from which this InstanceTime was created
* @param clearOnReset whether this InstanceTime should be removed from
* an instance time list upon element reset
*/
public InstanceTime(TimingSpecifier creator,
float time,
- Interval timebase,
boolean clearOnReset) {
// Trace.enter(this, null, new Object[] { creator, new Float(time), timebase, new Boolean(clearOnReset) } ); try {
this.creator = creator;
@@ -67,7 +59,6 @@
// time system into this time system. Not
// strictly necessary in SVG.
this.time = time;
- this.timebase = timebase;
this.clearOnReset = clearOnReset;
// } finally { Trace.exit(); }
}
Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/OffsetTimingSpecifier.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/OffsetTimingSpecifier.java?rev=580338&r1=580337&r2=580338&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/OffsetTimingSpecifier.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/OffsetTimingSpecifier.java Fri Sep 28 06:13:46 2007
@@ -52,7 +52,7 @@
* to the owner's instance time list or setting up any event listeners.
*/
public void initialize() {
- InstanceTime instance = new InstanceTime(this, offset, null, false);
+ InstanceTime instance = new InstanceTime(this, offset, false);
owner.addInstanceTime(instance, isBegin);
}
Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/SyncbaseTimingSpecifier.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/SyncbaseTimingSpecifier.java?rev=580338&r1=580337&r2=580338&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/SyncbaseTimingSpecifier.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/SyncbaseTimingSpecifier.java Fri Sep 28 06:13:46 2007
@@ -100,7 +100,7 @@
InstanceTime instance =
new InstanceTime(this, (syncBegin ? interval.getBegin()
: interval.getEnd()) + offset,
- interval, true);
+ true);
instances.put(interval, instance);
interval.addDependent(instance, syncBegin);
return owner.addInstanceTime(instance, isBegin);
Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/TimedElement.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/TimedElement.java?rev=580338&r1=580337&r2=580338&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/TimedElement.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/TimedElement.java Fri Sep 28 06:13:46 2007
@@ -187,7 +187,12 @@
/**
* List of previous intervals.
*/
- protected LinkedList previousIntervals = new LinkedList();
+ // protected LinkedList previousIntervals = new LinkedList();
+
+ /**
+ * The previous interval.
+ */
+ protected Interval previousInterval;
/**
* List of TimingSpecifiers on other elements that depend on this
@@ -686,21 +691,24 @@
}
while (shouldUpdateCurrentInterval || hasEnded) {
if (hasEnded) {
- previousIntervals.add(currentInterval);
+ // previousIntervals.add(currentInterval);
+ previousInterval = currentInterval;
isActive = false;
isFrozen = fillMode == FILL_FREEZE;
toInactive(false, isFrozen);
fireTimeEvent(SMIL_END_EVENT_NAME, currentInterval.getEnd(), 0);
}
boolean first =
- currentInterval == null && previousIntervals.isEmpty();
+ // currentInterval == null && previousIntervals.isEmpty();
+ currentInterval == null && previousInterval == null;
if (currentInterval == null || hasEnded) {
if (first || hyperlinking || restartMode != RESTART_NEVER) {
float beginAfter;
if (first || hyperlinking) {
beginAfter = Float.NEGATIVE_INFINITY;
} else {
- beginAfter = ((Interval) previousIntervals.getLast()).getEnd();
+ // beginAfter = ((Interval) previousIntervals.getLast()).getEnd();
+ beginAfter = previousInterval.getEnd();
}
Interval interval =
computeInterval(first, false, beginAfter);
@@ -720,10 +728,12 @@
if (currentBegin > time) {
// Interval hasn't started yet.
float beginAfter;
- if (previousIntervals.isEmpty()) {
+ // if (previousIntervals.isEmpty()) {
+ if (previousInterval == null) {
beginAfter = Float.NEGATIVE_INFINITY;
} else {
- beginAfter = ((Interval) previousIntervals.getLast()).getEnd();
+ // beginAfter = ((Interval) previousIntervals.getLast()).getEnd();
+ beginAfter = previousInterval.getEnd();
}
Interval interval = computeInterval(false, false, beginAfter);
float dmt = notifyRemoveInterval(currentInterval);
@@ -776,7 +786,7 @@
t = currentInterval.getBegin() + repeatDuration - lastRepeatTime;
atLast = lastRepeatTime + d == currentInterval.getBegin() + repeatDuration;
} else {
- Interval previousInterval = (Interval) previousIntervals.getLast();
+ // Interval previousInterval = (Interval) previousIntervals.getLast();
t = previousInterval.getEnd() - lastRepeatTime;
atLast = lastRepeatTime + d == previousInterval.getEnd();
}
@@ -1284,7 +1294,7 @@
*/
public void beginElement(float offset) {
float t = root.convertWallclockTime( Calendar.getInstance());
- InstanceTime it = new InstanceTime(null, t + offset, null, true);
+ InstanceTime it = new InstanceTime(null, t + offset, true);
addInstanceTime(it, true);
}
@@ -1303,7 +1313,7 @@
*/
public void endElement(float offset) {
float t = root.convertWallclockTime(Calendar.getInstance());
- InstanceTime it = new InstanceTime(null, t + offset, null, true);
+ InstanceTime it = new InstanceTime(null, t + offset, true);
addInstanceTime(it, false);
}
Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/WallclockTimingSpecifier.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/WallclockTimingSpecifier.java?rev=580338&r1=580337&r2=580338&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/WallclockTimingSpecifier.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/anim/timing/WallclockTimingSpecifier.java Fri Sep 28 06:13:46 2007
@@ -60,7 +60,7 @@
*/
public void initialize() {
float t = owner.getRoot().convertWallclockTime(time);
- instance = new InstanceTime(this, t, null, false);
+ instance = new InstanceTime(this, t, false);
owner.addInstanceTime(instance, isBegin);
}