GraphicBufferAlloc.cpp revision 392edd88cb63d71a21a86a02cf9c56ac97637128
1/*
2 **
3 ** Copyright 2012 The Android Open Source Project
4 **
5 ** Licensed under the Apache License Version 2.0(the "License");
6 ** you may not use this file except in compliance with the License.
7 ** You may obtain a copy of the License at
8 **
9 **     http://www.apache.org/licenses/LICENSE-2.0
10 **
11 ** Unless required by applicable law or agreed to in writing software
12 ** distributed under the License is distributed on an "AS IS" BASIS
13 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND either express or implied.
14 ** See the License for the specific language governing permissions and
15 ** limitations under the License.
16 */
17
18#include <cutils/log.h>
19
20#include <ui/GraphicBuffer.h>
21
22#include <gui/GraphicBufferAlloc.h>
23
24// ----------------------------------------------------------------------------
25namespace android {
26// ----------------------------------------------------------------------------
27
28GraphicBufferAlloc::GraphicBufferAlloc() {
29}
30
31GraphicBufferAlloc::~GraphicBufferAlloc() {
32}
33
34sp<GraphicBuffer> GraphicBufferAlloc::createGraphicBuffer(uint32_t w, uint32_t h,
35        PixelFormat format, uint32_t usage, status_t* error) {
36    sp<GraphicBuffer> graphicBuffer(new GraphicBuffer(w, h, format, usage));
37    status_t err = graphicBuffer->initCheck();
38    *error = err;
39    if (err != 0 || graphicBuffer->handle == 0) {
40        if (err == NO_MEMORY) {
41            GraphicBuffer::dumpAllocationsToSystemLog();
42        }
43        ALOGE("GraphicBufferAlloc::createGraphicBuffer(w=%d, h=%d) "
44             "failed (%s), handle=%p",
45                w, h, strerror(-err), graphicBuffer->handle);
46        return 0;
47    }
48    return graphicBuffer;
49}
50
51// ----------------------------------------------------------------------------
52}; // namespace android
53// ----------------------------------------------------------------------------
54