diff options
author | Jamie Gennis <jgennis@google.com> | 2012-12-12 10:56:42 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-12-12 10:56:42 -0800 |
commit | c6f04666c205a72add3c856455bf212f0c84d6fc (patch) | |
tree | 415b8558b426c9f77131cdf4ff13c33498c74f84 /libs/gui/GraphicBufferAlloc.cpp | |
parent | 97eba8904c2f221c42a9473407223a4c3a213f75 (diff) | |
parent | 392edd88cb63d71a21a86a02cf9c56ac97637128 (diff) | |
download | frameworks_native-c6f04666c205a72add3c856455bf212f0c84d6fc.zip frameworks_native-c6f04666c205a72add3c856455bf212f0c84d6fc.tar.gz frameworks_native-c6f04666c205a72add3c856455bf212f0c84d6fc.tar.bz2 |
Merge "SurfaceFlinger: Move GraphicBufferAlloc to libgui"
Diffstat (limited to 'libs/gui/GraphicBufferAlloc.cpp')
-rw-r--r-- | libs/gui/GraphicBufferAlloc.cpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/libs/gui/GraphicBufferAlloc.cpp b/libs/gui/GraphicBufferAlloc.cpp new file mode 100644 index 0000000..b360e81 --- /dev/null +++ b/libs/gui/GraphicBufferAlloc.cpp @@ -0,0 +1,53 @@ +/* + ** + ** Copyright 2012 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 <cutils/log.h> + +#include <ui/GraphicBuffer.h> + +#include <gui/GraphicBufferAlloc.h> + +// ---------------------------------------------------------------------------- +namespace android { +// ---------------------------------------------------------------------------- + +GraphicBufferAlloc::GraphicBufferAlloc() { +} + +GraphicBufferAlloc::~GraphicBufferAlloc() { +} + +sp<GraphicBuffer> GraphicBufferAlloc::createGraphicBuffer(uint32_t w, uint32_t h, + PixelFormat format, uint32_t usage, status_t* error) { + sp<GraphicBuffer> graphicBuffer(new GraphicBuffer(w, h, format, usage)); + status_t err = graphicBuffer->initCheck(); + *error = err; + if (err != 0 || graphicBuffer->handle == 0) { + if (err == NO_MEMORY) { + GraphicBuffer::dumpAllocationsToSystemLog(); + } + ALOGE("GraphicBufferAlloc::createGraphicBuffer(w=%d, h=%d) " + "failed (%s), handle=%p", + w, h, strerror(-err), graphicBuffer->handle); + return 0; + } + return graphicBuffer; +} + +// ---------------------------------------------------------------------------- +}; // namespace android +// ---------------------------------------------------------------------------- |