Merge "Fix Ime Rotation" into tizen_2.1
[platform/framework/native/uifw.git] / inc / FGrpBufferInfo.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Flora License, Version 1.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://floralicense.org/license/
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 /**
19  * @file        FGrpBufferInfo.h
20  * @brief       This is the header file for the %BufferInfo class.
21  *
22  * This header file contains the declarations of the %BufferInfo class.
23  *
24  */
25
26 #ifndef _FGRP_BUFFER_INFO_H_
27 #define _FGRP_BUFFER_INFO_H_
28
29 #include <FBaseTypes.h>
30 #include <FBaseObject.h>
31
32 #include <FGrpRectangle.h>
33 #include <FGrpPixelFormat.h>
34 #include <FGrpBitmapCommon.h>
35
36 namespace Tizen { namespace Graphics
37 {
38 /**
39  * @class       BufferInfo
40  * @brief       This class encapsulates the extra information for canvases and bitmaps.
41  *
42  * @since       2.0
43  *
44  * @final       This class is not intended for extension.
45  *
46  * The %BufferInfo class provides Canvas and Bitmap related information, such as the dimension and pixel information.
47  * @n
48  * For more information on the class features, see <a href="../org.tizen.native.appprogramming/html/guide/graphics/bufferinfo.htm">Buffer Information</a>.
49  *
50  *
51  */
52 class _OSP_EXPORT_ BufferInfo
53         : public Tizen::Base::Object
54 {
55 public:
56         /**
57          * This is the default constructor for this class.
58          *
59          * @since       2.0
60          */
61         BufferInfo(void);
62
63         /**
64          * This is the copy constructor for the %BufferInfo class.
65          *
66          * @since 2.0
67          *
68          * @param[in]          rhs         An instance of %BufferInfo
69          */
70         BufferInfo(const BufferInfo& rhs);
71
72         /**
73          * This is the destructor for this class.
74          *
75          * @since       2.0
76          */
77         virtual ~BufferInfo(void);
78
79         /**
80          * This is the default assignment operator for this class.
81          *
82          * @since 2.0
83          *
84          * @param[in]          rhs         An instance of %BufferInfo
85          */
86         BufferInfo& operator =(const BufferInfo& rhs);
87
88         /**
89          *      Checks whether the value of the specified instance equals the value of the current instance.
90          *
91          * @since 2.0
92          *
93          *      @return                 @c true if the value of the current instance equals the value of the specified instance, @n
94          *           else @c false
95          *      @param[in]      rhs     The object to compare with the current instance
96          */
97         virtual bool Equals(const Tizen::Base::Object& rhs) const;
98
99         /**
100          *      Gets the hash value of the current instance.
101          *
102          * @since 2.0
103          *
104          *      @return         An integer value indicating the hash value of the current instance
105          */
106         virtual int GetHashCode(void) const;
107
108 public:
109         /**
110          * The width of the buffer's logical dimensions in pixels.
111          *
112          * @since       2.0
113          */
114         int width;
115
116         /**
117          * The height of the buffer's logical dimensions in pixels.
118          *
119          * @since       2.0
120          */
121         int height;
122
123         /**
124          * The length of the buffer scan-line in bytes.
125          *
126          * @since       2.0
127          */
128         int pitch;
129
130         /**
131          * The bits per pixel of the buffer.
132          *
133          * @since       2.0
134          */
135         int bitsPerPixel;
136
137         /**
138          * The color format of the buffer.
139          *
140          * @since       2.0
141          */
142         PixelFormat pixelFormat;
143
144         /**
145          * A pointer to the actual locked pixel bits.
146          *
147          * @since       2.0
148          */
149         void* pPixels;
150
151 private:
152         friend class _BufferInfoImpl;
153
154         //
155         // This variable is for internal use only.
156         // Using this variable can cause behavioral, security-related, and consistency-related issues in the application.
157         //
158         // @since 2.0
159         //
160         class _BufferInfoImpl * __pImpl;
161
162 }; // BufferInfo
163
164 }} // Tizen::Graphics
165
166 #endif //_FGRP_BUFFER_INFO_H_