Simplify Z reordering logic
Change-Id: I9e36f68d7be5cfd4d69a84a51824cb9a642fe18d
diff --git a/libs/hwui/DisplayList.h b/libs/hwui/DisplayList.h
index 204a131..d3113a3 100644
--- a/libs/hwui/DisplayList.h
+++ b/libs/hwui/DisplayList.h
@@ -90,7 +90,8 @@
class DeferStateStruct : public PlaybackStateStruct {
public:
DeferStateStruct(DeferredDisplayList& deferredList, OpenGLRenderer& renderer, int replayFlags)
- : PlaybackStateStruct(renderer, replayFlags, &(deferredList.mAllocator)), mDeferredList(deferredList) {}
+ : PlaybackStateStruct(renderer, replayFlags, &(deferredList.mAllocator)),
+ mDeferredList(deferredList) {}
DeferredDisplayList& mDeferredList;
};
@@ -143,7 +144,6 @@
kReplayFlag_ClipChildren = 0x1
};
-
ANDROID_API size_t getSize();
ANDROID_API static void destroyDisplayListDeferred(DisplayList* displayList);
ANDROID_API static void outputLogBuffer(int fd);
@@ -501,6 +501,8 @@
}
private:
+ typedef key_value_pair_t<float, DrawDisplayListOp*> ZDrawDisplayListOpPair;
+
enum ChildrenSelectMode {
kNegativeZChildren,
kPositiveZChildren
@@ -520,7 +522,7 @@
void applyViewPropertyTransforms(mat4& matrix);
void computeOrderingImpl(DrawDisplayListOp* opState,
- KeyedVector<float, Vector<DrawDisplayListOp*> >* compositedChildrenOf3dRoot,
+ Vector<ZDrawDisplayListOpPair>* compositedChildrenOf3dRoot,
const mat4* transformFromRoot);
template <class T>
@@ -607,7 +609,7 @@
*/
// for 3d roots, contains a z sorted list of all children items
- KeyedVector<float, Vector<DrawDisplayListOp*> > m3dNodes; // TODO: good data structure
+ Vector<ZDrawDisplayListOpPair> m3dNodes;
}; // class DisplayList
}; // namespace uirenderer