From d87f162026454f5a3e6437ed0c9ef51651a6b939 Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Fri, 25 Mar 2011 18:42:40 -0700 Subject: 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 --- libs/gui/LayerState.cpp | 61 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 libs/gui/LayerState.cpp (limited to 'libs/gui/LayerState.cpp') 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 +#include +#include + +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 -- cgit v1.2.3-59-g8ed1b