summaryrefslogtreecommitdiff
path: root/libs/hwui/LayerUpdateQueue.cpp
diff options
context:
space:
mode:
authorChris Craik <ccraik@google.com>2015-10-28 16:50:44 -0700
committerChris Craik <ccraik@google.com>2015-11-02 12:59:38 -0800
commit0b7e8245db728d127ada698be63d78b33fc6e4da (patch)
treeb7138962e159b3359cb08735098d34779a5ce78e /libs/hwui/LayerUpdateQueue.cpp
parent8462bad554c2c0f5639c00dd7f1f32e9567c8e04 (diff)
Initial HW layer support in new reorderer/renderer
Shares vast majority of clipped savelayer code, with only minor differences in lifecycle. Doesn't yet handle fill region, resize, or window transform. Change-Id: Iabdd71811590d2b937eb11e1b01ce556ade54a5a
Diffstat (limited to 'libs/hwui/LayerUpdateQueue.cpp')
-rw-r--r--libs/hwui/LayerUpdateQueue.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/libs/hwui/LayerUpdateQueue.cpp b/libs/hwui/LayerUpdateQueue.cpp
new file mode 100644
index 000000000000..db5f676d09dc
--- /dev/null
+++ b/libs/hwui/LayerUpdateQueue.cpp
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "LayerUpdateQueue.h"
+
+#include "RenderNode.h"
+
+namespace android {
+namespace uirenderer {
+
+void LayerUpdateQueue::clear() {
+ mEntries.clear();
+}
+
+void LayerUpdateQueue::enqueueLayerWithDamage(RenderNode* renderNode, Rect damage) {
+ damage.doIntersect(0, 0, renderNode->getWidth(), renderNode->getHeight());
+ if (!damage.isEmpty()) {
+ for (Entry& entry : mEntries) {
+ if (CC_UNLIKELY(entry.renderNode == renderNode)) {
+ entry.damage.unionWith(damage);
+ return;
+ }
+ }
+ mEntries.emplace_back(renderNode, damage);
+ }
+}
+
+} // namespace uirenderer
+} // namespace android