| Mathias Agopian | f33e4b6 | 2012-09-20 16:54:14 -0700 | [diff] [blame] | 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 |  | 
| Jamie Gennis | 392edd8 | 2012-11-29 23:26:29 -0800 | [diff] [blame] | 22 | #include <gui/GraphicBufferAlloc.h> | 
| Mathias Agopian | f33e4b6 | 2012-09-20 16:54:14 -0700 | [diff] [blame] | 23 |  | 
|  | 24 | // ---------------------------------------------------------------------------- | 
|  | 25 | namespace android { | 
|  | 26 | // ---------------------------------------------------------------------------- | 
|  | 27 |  | 
|  | 28 | GraphicBufferAlloc::GraphicBufferAlloc() { | 
|  | 29 | } | 
|  | 30 |  | 
|  | 31 | GraphicBufferAlloc::~GraphicBufferAlloc() { | 
|  | 32 | } | 
|  | 33 |  | 
| Dan Stoza | d723bd7 | 2014-11-18 10:24:03 -0800 | [diff] [blame] | 34 | sp<GraphicBuffer> GraphicBufferAlloc::createGraphicBuffer(uint32_t width, | 
| Dan Stoza | d4079af | 2016-08-22 17:26:41 -0700 | [diff] [blame] | 35 | uint32_t height, PixelFormat format, uint32_t usage, | 
|  | 36 | std::string requestorName, status_t* error) { | 
|  | 37 | sp<GraphicBuffer> graphicBuffer(new GraphicBuffer( | 
|  | 38 | width, height, format, usage, std::move(requestorName))); | 
| Mathias Agopian | f33e4b6 | 2012-09-20 16:54:14 -0700 | [diff] [blame] | 39 | status_t err = graphicBuffer->initCheck(); | 
|  | 40 | *error = err; | 
|  | 41 | if (err != 0 || graphicBuffer->handle == 0) { | 
|  | 42 | if (err == NO_MEMORY) { | 
|  | 43 | GraphicBuffer::dumpAllocationsToSystemLog(); | 
|  | 44 | } | 
|  | 45 | ALOGE("GraphicBufferAlloc::createGraphicBuffer(w=%d, h=%d) " | 
|  | 46 | "failed (%s), handle=%p", | 
| Dan Stoza | d723bd7 | 2014-11-18 10:24:03 -0800 | [diff] [blame] | 47 | width, height, strerror(-err), graphicBuffer->handle); | 
| Mathias Agopian | f33e4b6 | 2012-09-20 16:54:14 -0700 | [diff] [blame] | 48 | return 0; | 
|  | 49 | } | 
|  | 50 | return graphicBuffer; | 
|  | 51 | } | 
|  | 52 |  | 
|  | 53 | // ---------------------------------------------------------------------------- | 
|  | 54 | }; // namespace android | 
|  | 55 | // ---------------------------------------------------------------------------- |