SkDevice* SkCanvas::getDevice() const {
// return root device
- SkDeque::F2BIter iter(fMCStack);
- MCRec* rec = (MCRec*)iter.next();
+ MCRec* rec = (MCRec*) fMCStack.front();
SkASSERT(rec && rec->fLayer);
return rec->fLayer->fDevice;
}
// and asserts that "prefix" will be a prefix to "stack."
static void skip_clip_stack_prefix(const SkClipStack& prefix,
const SkClipStack& stack,
- SkClipStack::B2FIter* iter) {
+ SkClipStack::Iter* iter) {
SkClipStack::B2FIter prefixIter(prefix);
- iter->reset(stack);
+ iter->reset(stack, SkClipStack::Iter::kFront_IterStart);
const SkClipStack::B2FIter::Clip* prefixEntry;
const SkClipStack::B2FIter::Clip* iterEntry;
- int count = 0;
for (prefixEntry = prefixIter.next(); prefixEntry;
- prefixEntry = prefixIter.next(), count++) {
+ prefixEntry = prefixIter.next()) {
iterEntry = iter->next();
SkASSERT(iterEntry);
// Because of SkClipStack does internal intersection, the last clip
(prefixEntry->fRect == NULL));
SkASSERT((iterEntry->fPath == NULL) ==
(prefixEntry->fPath == NULL));
- // We need to back up the iterator by one but don't have that
- // function, so reset and go forward by one less.
- iter->reset(stack);
- for (int i = 0; i < count; i++) {
- iter->next();
- }
+ // back up the iterator by one
+ iter->prev();
prefixEntry = prefixIter.next();
break;
}
// initial clip on the parent layer. (This means there's a bug if the user
// expands the clip and then uses any xfer mode that uses dst:
// http://code.google.com/p/skia/issues/detail?id=228 )
- SkClipStack::B2FIter iter;
+ SkClipStack::Iter iter;
skip_clip_stack_prefix(fEntries[0].fClipStack, clipStack, &iter);
// If the clip stack does anything other than intersect or if it uses