Adjust the position of the partial Frame
[platform/framework/native/uifw.git] / inc / FGrpCanvasTexture.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        FGrpCanvasTexture.h
20  * @brief       This is the header file for the %CanvasTexture class.
21  *
22  * This header file contains the declarations of the %CanvasTexture class.
23  *
24  */
25
26 #ifndef _FGRP_CANVAS_TEXTURE_H_
27 #define _FGRP_CANVAS_TEXTURE_H_
28
29 #include <FBaseObject.h>
30
31 namespace Tizen { namespace Graphics {
32 class Canvas;
33 }}
34
35 namespace Tizen { namespace Graphics { namespace Opengl
36 {
37
38 /**
39  * @class       CanvasTexture
40  * @brief       This class provides a method to bind 2D Canvas and OpenGL-ES Texture.
41  *              With this feature, you can easily draw 2D primitives on OpenGL-ES Textures with consistency.
42  *
43  * @since 2.0
44  *
45  * @final       This class is not intended for extension.
46  *
47  * The %CanvasTexture class provides a method to bind 2D Canvas and OpenGL-ES Texture.
48  *              With this feature, you can easily draw 2D primitives on OpenGL-ES Textures with consistency.
49  *
50  */
51 class _OSP_EXPORT_ CanvasTexture
52         : public Tizen::Base::Object
53 {
54 public:
55         /**
56          * The object is not fully constructed after this constructor is called. For full construction, the Construct() method be called right after calling this constructor.
57          *
58          * @since 2.0
59          *
60          */
61         CanvasTexture(void);
62
63         /**
64          * This destructor overrides Tizen::Base::Object::~Object().
65          *
66          * @since 2.0
67          */
68         virtual ~CanvasTexture(void);
69
70         /**
71          * Initializes this instance of %CanvasTexture with the specified parameters.
72          *
73          * @since 2.0
74          *
75          * @return              An error code
76          * @param[in]   textureId       Texture ID which points to the texture associated with the 2D canvas @n The texture ID must be generated from glGenTextures().
77          * @param[in]   width   The width of the input texture. The width must be greater than @c 0, and smaller or equal than GL_MAX_TEXTURE_SIZE.
78          * @param[in]   height  The height of the input texture. The height must be greater than @c 0, and smaller or equal than GL_MAX_TEXTURE_SIZE
79          * @exception   E_SUCCESS       Construction is successfully done.
80          * @exception   E_INVALID_ARG   Input parameter is invalid.
81          * @exception   E_UNSUPPORTED_OPERATION The target device does not support full features for %CanvasTexture.
82          * @exception   E_INVALID_STATE Getting egl information failed. It is necessary to bind egl context by using the eglMakeCurrent() method.
83          * @remarks     There is a high probability for an occurrence of an out-of-memory exception. If possible, check whether the exception is E_OUT_OF_MEMORY or not. For more information on how to handle the out-of-memory exception, refer <a href="../org.tizen.native.appprogramming/html/basics_tizen_programming/exception_check.htm">here</a>.
84          */
85         result Construct(int textureId, int width, int height);
86
87         /**
88          * Returns a 2D Canvas which is associated with the Texture of %CanvasTexture.
89          *
90          * @since 2.0
91          *
92          * @return      The 2D canvas of the %CanvasTexture, @n
93          *              else @c null if an exception occurs
94          * @exception   E_SUCCESS       The method is successful.
95          * @exception   E_OPERATION_FAILED      The method fails to construct the canvas properly due to some system error.
96          */
97         Tizen::Graphics::Canvas* GetCanvasN(void) const;
98
99 private:
100         //
101         // The implementation of this copy constructor is intentionally blank and declared as private to prohibit copying of objects.
102         //
103         // @param[in]   rhs     The source from which this instance is copied
104         //
105         CanvasTexture(const CanvasTexture& rhs);
106
107         //
108         // The implementation of this copy assignment operator is intentionally blank and declared as private to prohibit copying of objects.
109         //
110         // @param[in]   rhs     An instance of %CanvasTexture
111         //
112         CanvasTexture& operator =(const CanvasTexture& rhs);
113
114 private:
115         friend class _CanvasTextureImpl;
116
117         class _CanvasTextureImpl* __pImpl;
118 }; // CanvasTexture
119
120 }}} // Tizen::Graphics::Opengl
121
122 #endif //_FGRP_CANVAS_TEXTURE_H_