Tizen 2.1 base
[framework/osp/uifw.git] / src / ui / effects / renderer / engine-model / FUiEffects_RendererEngineModelTextureAttachment.cpp
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                FUiEffects_RendererEngineModelTextureAttachment.cpp
20  * @brief               This file contains implementation of TextureAttachment class
21  *
22  */
23
24 #include <renderer/engine-model/FUiEffects_RendererEngineModelTextureAttachment.h>
25 #include <renderer/engine-model/FUiEffects_RendererEngineModelRenderTarget.h>
26
27 namespace Tizen { namespace Ui { namespace Effects { namespace _Renderer { namespace EngineModel
28 {
29
30 bool
31 TextureAttachment::AttachedToRenderTarget(RenderTarget* pRenderTarget)
32 {
33         RenderTargetListType::iterator it = std::find(_targets.begin(), _targets.end(), pRenderTarget);
34         if (_targets.end() != it)
35         {
36                 return false;
37         }
38
39         _targets.push_back(pRenderTarget);
40         return true;
41 }
42
43 bool
44 TextureAttachment::RemovedFromRenderTarget(RenderTarget* pRenderTarget)
45 {
46         RenderTargetListType::iterator it = std::find(_targets.begin(), _targets.end(), pRenderTarget);
47         if (_targets.end() == it)
48         {
49                 return false;
50         }
51
52         const RenderTargetListSizeType index = it - _targets.begin();
53         const RenderTargetListSizeType len = _targets.size();
54
55         std::swap(_targets[index], _targets[len - 1]);
56         _targets.resize(len - 1);
57
58         return true;
59 }
60
61 TextureAttachment::RenderTargetListSizeType
62 TextureAttachment::GetNumRenderTargets(void)
63 {
64         return _targets.size();
65 }
66
67 RenderTarget*
68 TextureAttachment::GetRenderTarget(RenderTargetListSizeType index)
69 {
70         if (index >= _targets.size())
71         {
72                 return null;
73         }
74         return _targets[index];
75 }
76
77 }}}}} //Tizen::Ui::Effects::_Renderer::EngineModel