Text archives Help
- From: boulos@sci.utah.edu
- To: manta@sci.utah.edu
- Subject: [Manta] r1810 - in trunk: Engine/Control Interface
- Date: Sat, 3 Nov 2007 23:02:13 -0600 (MDT)
Author: boulos
Date: Sat Nov 3 23:02:12 2007
New Revision: 1810
Modified:
trunk/Engine/Control/RTRT.cc
trunk/Interface/Transaction.h
Log:
Interface/Transaction.h
Adding a new NO_UPDATE type of Transaction that signals that the
transaction doesn't require a re-render. I originally called this
idempotent (but it's not) and then thought about side effect
free. NO_UPDATE seems simpler though.
Engine/Control/RTRT.cc
If the type of transaction is a NO_UPDATE then don't set the update
bool to true (avoiding unnecessary pipeline restart), otherwise do
set it.
Modified: trunk/Engine/Control/RTRT.cc
==============================================================================
--- trunk/Engine/Control/RTRT.cc (original)
+++ trunk/Engine/Control/RTRT.cc Sat Nov 3 23:02:12 2007
@@ -965,7 +965,6 @@
// Lock the queue.
transaction_lock.lock();
- changed = true;
while (transactions.size()) {
// Pop the first transaction from the queue.
@@ -988,15 +987,20 @@
// Determine if the transaction contains any queue operations.
if (flag == TransactionBase::CONTINUE) {
// Stop processing transactions and continue the pipeline.
+ changed = true;
break;
}
else if (flag == TransactionBase::PURGE) {
// Remove all remaining transactions from the queue.
+ changed = true;
while (transactions.size()) {
transaction = *(transactions.begin());
transactions.pop_front();
delete transaction;
}
+ }
+ else if (flag == TransactionBase::NO_UPDATE) {
+ // Do nothing and don't set changed
}
}
Modified: trunk/Interface/Transaction.h
==============================================================================
--- trunk/Interface/Transaction.h (original)
+++ trunk/Interface/Transaction.h Sat Nov 3 23:02:12 2007
@@ -19,7 +19,8 @@
// (Until either all are processed or another flag is
encountered.)
CONTINUE, // Process this transaction and then continue render.
// (Other transactions processed following the next
frame.)
- PURGE // Process this transaction and then purge all remaining
from the queue.
+ PURGE, // Process this transaction and then purge all remaining
from the queue.
+ NO_UPDATE // This transaction shouldn't update the changed bit for
the pipeline
};
virtual void apply() = 0;
- [Manta] r1810 - in trunk: Engine/Control Interface, boulos, 11/04/2007
Archive powered by MHonArc 2.6.16.