2 * Copyright (c) 2015 Samsung Electronics Co., Ltd.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
18 #include "scene-graph-sampler.h"
30 Sampler::Sampler( const std::string& unitName )
31 : mUnitName( unitName ),
33 mMinFilter( Dali::Sampler::DEFAULT ),
34 mMagFilter( Dali::Sampler::DEFAULT ),
35 mUWrapMode( Dali::Sampler::CLAMP_TO_EDGE ),
36 mVWrapMode( Dali::Sampler::CLAMP_TO_EDGE ),
37 mAffectsTransparency( false ),
46 void Sampler::SetUnitName( const std::string& unitName )
51 void Sampler::SetTexture( BufferIndex bufferIndex, Integration::ResourceId textureId )
53 if( mTextureId[bufferIndex] != textureId )
55 mTextureId.Set( bufferIndex, textureId );
56 mConnectionObservers.ConnectionsChanged(*this);
60 void Sampler::SetFilterMode( BufferIndex bufferIndex, FilterMode minFilter, FilterMode magFilter )
62 mMinFilter[bufferIndex] = minFilter;
63 mMagFilter[bufferIndex] = magFilter;
66 void Sampler::SetWrapMode( BufferIndex bufferIndex, WrapMode uWrap, WrapMode vWrap )
70 const std::string& Sampler::GetUnitName() const
75 Integration::ResourceId Sampler::GetTextureId( BufferIndex bufferIndex ) const
77 return mTextureId[bufferIndex];
80 Sampler::FilterMode Sampler::GetMinifyFilterMode( BufferIndex bufferIndex ) const
82 return static_cast<Sampler::FilterMode>(mMinFilter[bufferIndex]);
85 Sampler::FilterMode Sampler::GetMagnifyFilterMode( BufferIndex bufferIndex ) const
87 return static_cast<Sampler::FilterMode>(mMagFilter[bufferIndex]);
90 Sampler::WrapMode Sampler::GetUWrapMode( BufferIndex bufferIndex ) const
92 return static_cast<Sampler::WrapMode>(mUWrapMode[bufferIndex]);
95 Sampler::WrapMode Sampler::GetVWrapMode( BufferIndex bufferIndex ) const
97 return static_cast<Sampler::WrapMode>(mVWrapMode[bufferIndex]);
100 bool Sampler::AffectsTransparency( BufferIndex bufferIndex ) const
102 return mAffectsTransparency[bufferIndex] ;
105 void Sampler::SetFullyOpaque( bool fullyOpaque )
107 mFullyOpaque = fullyOpaque;
110 bool Sampler::IsFullyOpaque( BufferIndex bufferIndex ) const
115 void Sampler::ConnectToSceneGraph( SceneController& sceneController, BufferIndex bufferIndex )
119 void Sampler::DisconnectFromSceneGraph(SceneController& sceneController, BufferIndex bufferIndex)
123 void Sampler::AddConnectionObserver( ConnectionObservers::Observer& observer )
125 mConnectionObservers.Add(observer);
128 void Sampler::RemoveConnectionObserver( ConnectionObservers::Observer& observer )
130 mConnectionObservers.Remove(observer);
133 void Sampler::ResetDefaultProperties( BufferIndex bufferIndex )
135 mTextureId.CopyPrevious( bufferIndex );
136 mMinFilter.CopyPrevious( bufferIndex );
137 mMagFilter.CopyPrevious( bufferIndex );
138 mUWrapMode.CopyPrevious( bufferIndex );
139 mVWrapMode.CopyPrevious( bufferIndex );
140 mAffectsTransparency.CopyPrevious( bufferIndex );
143 } // namespace SceneGraph
144 } // namespace Internal