summaryrefslogtreecommitdiff
path: root/libs/gui/LayerState.cpp
diff options
context:
space:
mode:
author Mathias Agopian <mathias@google.com> 2011-03-25 18:42:40 -0700
committer Mathias Agopian <mathias@google.com> 2011-03-25 18:42:40 -0700
commitd87f162026454f5a3e6437ed0c9ef51651a6b939 (patch)
tree702b5e56762a0236c86242279894607948c8fb71 /libs/gui/LayerState.cpp
parentd3f9a53bffa049d900ebb1a93048ab0bb6885b50 (diff)
merge libsurfaceflinger_client into libgui
this is the first step in unifying surfacetexture and surface. for this reason the header files were not moved, as most of them will eventually go away. NOTE: currently we keep libsurfaceflinger_client.so as an empty library to workaround prebuilt binaries wrongly linking against it. Change-Id: I130f0de2428e8579033dc41394d093f4e1431a00
Diffstat (limited to 'libs/gui/LayerState.cpp')
-rw-r--r--libs/gui/LayerState.cpp61
1 files changed, 61 insertions, 0 deletions
diff --git a/libs/gui/LayerState.cpp b/libs/gui/LayerState.cpp
new file mode 100644
index 0000000000..01c4c7ebfe
--- /dev/null
+++ b/libs/gui/LayerState.cpp
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2008 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 <utils/Errors.h>
+#include <binder/Parcel.h>
+#include <private/surfaceflinger/LayerState.h>
+
+namespace android {
+
+status_t layer_state_t::write(Parcel& output) const
+{
+ status_t err;
+
+ size_t len = transparentRegion.write(NULL, 0);
+ err = output.writeInt32(len);
+ if (err < NO_ERROR) return err;
+
+ void* buf = output.writeInplace(len);
+ if (buf == NULL) return NO_MEMORY;
+
+ err = transparentRegion.write(buf, len);
+ if (err < NO_ERROR) return err;
+
+ // NOTE: regions are at the end of the structure
+ size_t size = sizeof(layer_state_t);
+ size -= sizeof(transparentRegion);
+ err = output.write(this, size);
+ return err;
+}
+
+status_t layer_state_t::read(const Parcel& input)
+{
+ status_t err;
+ size_t len = input.readInt32();
+ void const* buf = input.readInplace(len);
+ if (buf == NULL) return NO_MEMORY;
+
+ err = transparentRegion.read(buf);
+ if (err < NO_ERROR) return err;
+
+ // NOTE: regions are at the end of the structure
+ size_t size = sizeof(layer_state_t);
+ size -= sizeof(transparentRegion);
+ input.read(this, size);
+ return NO_ERROR;
+}
+
+}; // namespace android