Updated all code to new format
[platform/core/uifw/dali-core.git] / dali / internal / event / images / pixel-data-impl.cpp
1 /*
2  * Copyright (c) 2021 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 // CLASS HEADER
19 #include <dali/internal/event/images/pixel-data-impl.h>
20
21 namespace Dali
22 {
23 namespace Internal
24 {
25 PixelData::PixelData(uint8_t*                         buffer,
26                      uint32_t                         bufferSize,
27                      uint32_t                         width,
28                      uint32_t                         height,
29                      Pixel::Format                    pixelFormat,
30                      Dali::PixelData::ReleaseFunction releaseFunction)
31 : mBuffer(buffer),
32   mBufferSize(bufferSize),
33   mWidth(width),
34   mHeight(height),
35   mPixelFormat(pixelFormat),
36   mReleaseFunction(releaseFunction)
37 {
38 }
39
40 PixelData::~PixelData()
41 {
42   if(mBuffer)
43   {
44     if(mReleaseFunction == Dali::PixelData::FREE)
45     {
46       free(mBuffer);
47     }
48     else
49     {
50       delete[] mBuffer;
51     }
52   }
53 }
54
55 PixelDataPtr PixelData::New(uint8_t*                         buffer,
56                             uint32_t                         bufferSize,
57                             uint32_t                         width,
58                             uint32_t                         height,
59                             Pixel::Format                    pixelFormat,
60                             Dali::PixelData::ReleaseFunction releaseFunction)
61 {
62   return new PixelData(buffer, bufferSize, width, height, pixelFormat, releaseFunction);
63 }
64
65 uint32_t PixelData::GetWidth() const
66 {
67   return mWidth;
68 }
69
70 uint32_t PixelData::GetHeight() const
71 {
72   return mHeight;
73 }
74
75 Pixel::Format PixelData::GetPixelFormat() const
76 {
77   return mPixelFormat;
78 }
79
80 uint8_t* PixelData::GetBuffer() const
81 {
82   return mBuffer;
83 }
84
85 uint32_t PixelData::GetBufferSize() const
86 {
87   return mBufferSize;
88 }
89
90 DevelPixelData::PixelDataBuffer PixelData::ReleaseBuffer()
91 {
92   DevelPixelData::PixelDataBuffer pixelDataBuffer(mBuffer, mBufferSize, mReleaseFunction);
93   mBuffer = nullptr;
94   return pixelDataBuffer;
95 }
96
97 } // namespace Internal
98
99 } // namespace Dali