We ignore the shared UBO at core side only if we call `RegisterVisualTransformUniform()`.
So we don't seperate shader by the UBO registered statements anymore.
Change-Id: Ie5abb93c84d61793bdb0d7863c912549fc594154
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
if(mImpl->mRenderer && mImpl->mTransformMapChanged)
{
mImpl->SetTransformUniforms(mImpl->mRenderer, Direction::LEFT_TO_RIGHT);
-
- // TODO : We many need to less call it.
- UpdateShader();
}
}
VisualFactoryCache::ShaderType shaderType = GetShaderType(mGradientType, mUnitType, mSpreadType);
- shader = mFactoryCache.GetShader(shaderType, mImpl->mTransformMapUsingDefault);
+ shader = mFactoryCache.GetShader(shaderType);
if(!shader)
{
std::string tagUnit;
vert = "#define " + tagUnit + "\n" + SHADER_ANIMATED_GRADIENT_VISUAL_SHADER_VERT.data();
frag = "#define " + tagGrad + "\n" + "#define " + tagSpread + "\n" + SHADER_ANIMATED_GRADIENT_VISUAL_SHADER_FRAG.data();
- shader = mFactoryCache.GenerateAndSaveShader(shaderType, vert, frag, mImpl->mTransformMapUsingDefault);
+ shader = mFactoryCache.GenerateAndSaveShader(shaderType, vert, frag);
}
return shader;
}
if(mImpl->mRenderer && mImpl->mTransformMapChanged)
{
mImpl->SetTransformUniforms(mImpl->mRenderer, Direction::LEFT_TO_RIGHT);
-
- // TODO : We many need to less call it.
- UpdateShader();
}
}
.ApplyDefaultTextureWrapMode(defaultWrapMode)
.EnableRoundedCorner(IsRoundedCornerRequired(), IsSquircleCornerRequired())
.EnableBorderline(IsBorderlineRequired())
- .EnableAlphaMaskingOnRendering(requiredAlphaMaskingOnRendering)
- .UseDefaultTransform(mImpl->mTransformMapUsingDefault));
+ .EnableAlphaMaskingOnRendering(requiredAlphaMaskingOnRendering));
}
return shader;
}
if(mImpl->mRenderer && mImpl->mTransformMapChanged)
{
mImpl->SetTransformUniforms(mImpl->mRenderer, Direction::LEFT_TO_RIGHT);
-
- // TODO : We many need to less call it.
- UpdateShader();
}
if(IsOnScene())
ImageVisualShaderFeature::FeatureBuilder()
.EnableRoundedCorner(IsRoundedCornerRequired(), IsSquircleCornerRequired())
.EnableBorderline(IsBorderlineRequired())
- .SetTextureForFragmentShaderCheck(mUseNativeImage ? mImpl->mRenderer.GetTextures().GetTexture(0) : Dali::Texture())
- .UseDefaultTransform(mImpl->mTransformMapUsingDefault));
+ .SetTextureForFragmentShaderCheck(mUseNativeImage ? mImpl->mRenderer.GetTextures().GetTexture(0) : Dali::Texture()));
}
return shader;
}
Shader shader;
if(mCapType == DevelArcVisual::Cap::BUTT)
{
- shader = mFactoryCache.GetShader(VisualFactoryCache::ARC_BUTT_CAP_SHADER, mImpl->mTransformMapUsingDefault);
+ shader = mFactoryCache.GetShader(VisualFactoryCache::ARC_BUTT_CAP_SHADER);
if(!shader)
{
- shader = mFactoryCache.GenerateAndSaveShader(VisualFactoryCache::ARC_BUTT_CAP_SHADER, Dali::Shader::GetVertexShaderPrefix() + SHADER_ARC_VISUAL_SHADER_VERT.data(), Dali::Shader::GetFragmentShaderPrefix() + SHADER_ARC_VISUAL_BUTT_CAP_SHADER_FRAG.data(), mImpl->mTransformMapUsingDefault);
+ shader = mFactoryCache.GenerateAndSaveShader(VisualFactoryCache::ARC_BUTT_CAP_SHADER, Dali::Shader::GetVertexShaderPrefix() + SHADER_ARC_VISUAL_SHADER_VERT.data(), Dali::Shader::GetFragmentShaderPrefix() + SHADER_ARC_VISUAL_BUTT_CAP_SHADER_FRAG.data());
}
}
else
{
- shader = mFactoryCache.GetShader(VisualFactoryCache::ARC_ROUND_CAP_SHADER, mImpl->mTransformMapUsingDefault);
+ shader = mFactoryCache.GetShader(VisualFactoryCache::ARC_ROUND_CAP_SHADER);
if(!shader)
{
- shader = mFactoryCache.GenerateAndSaveShader(VisualFactoryCache::ARC_ROUND_CAP_SHADER, Dali::Shader::GetVertexShaderPrefix() + SHADER_ARC_VISUAL_SHADER_VERT.data(), Dali::Shader::GetFragmentShaderPrefix() + SHADER_ARC_VISUAL_ROUND_CAP_SHADER_FRAG.data(), mImpl->mTransformMapUsingDefault);
+ shader = mFactoryCache.GenerateAndSaveShader(VisualFactoryCache::ARC_ROUND_CAP_SHADER, Dali::Shader::GetVertexShaderPrefix() + SHADER_ARC_VISUAL_SHADER_VERT.data(), Dali::Shader::GetFragmentShaderPrefix() + SHADER_ARC_VISUAL_ROUND_CAP_SHADER_FRAG.data());
}
}
if(mImpl->mRenderer && mImpl->mTransformMapChanged)
{
mImpl->SetTransformUniforms(mImpl->mRenderer, Direction::LEFT_TO_RIGHT);
-
- // TODO : We many need to less call it.
- UpdateShader();
}
}
Shader shader;
if(mAntiAliasing)
{
- shader = mFactoryCache.GetShader(VisualFactoryCache::BORDER_SHADER_ANTI_ALIASING, mImpl->mTransformMapUsingDefault);
+ shader = mFactoryCache.GetShader(VisualFactoryCache::BORDER_SHADER_ANTI_ALIASING);
if(!shader)
{
- shader = mFactoryCache.GenerateAndSaveShader(VisualFactoryCache::BORDER_SHADER_ANTI_ALIASING, Dali::Shader::GetVertexShaderPrefix() + SHADER_BORDER_VISUAL_ANTI_ALIASING_SHADER_VERT.data(), Dali::Shader::GetFragmentShaderPrefix() + SHADER_BORDER_VISUAL_ANTI_ALIASING_SHADER_FRAG.data(), mImpl->mTransformMapUsingDefault);
+ shader = mFactoryCache.GenerateAndSaveShader(VisualFactoryCache::BORDER_SHADER_ANTI_ALIASING, Dali::Shader::GetVertexShaderPrefix() + SHADER_BORDER_VISUAL_ANTI_ALIASING_SHADER_VERT.data(), Dali::Shader::GetFragmentShaderPrefix() + SHADER_BORDER_VISUAL_ANTI_ALIASING_SHADER_FRAG.data());
}
}
else
{
- shader = mFactoryCache.GetShader(VisualFactoryCache::BORDER_SHADER, mImpl->mTransformMapUsingDefault);
+ shader = mFactoryCache.GetShader(VisualFactoryCache::BORDER_SHADER);
if(!shader)
{
- shader = mFactoryCache.GenerateAndSaveShader(VisualFactoryCache::BORDER_SHADER, Dali::Shader::GetVertexShaderPrefix() + SHADER_BORDER_VISUAL_SHADER_VERT.data(), Dali::Shader::GetFragmentShaderPrefix() + SHADER_BORDER_VISUAL_SHADER_FRAG.data(), mImpl->mTransformMapUsingDefault);
+ shader = mFactoryCache.GenerateAndSaveShader(VisualFactoryCache::BORDER_SHADER, Dali::Shader::GetVertexShaderPrefix() + SHADER_BORDER_VISUAL_SHADER_VERT.data(), Dali::Shader::GetFragmentShaderPrefix() + SHADER_BORDER_VISUAL_SHADER_FRAG.data());
}
}
: mColorRoundCorner(RoundedCorner::DISABLED),
mColorBorderline(Borderline::DISABLED),
mColorBlur(Blur::DISABLED),
- mColorCutout(Cutout::DISABLED),
- mUseDefaultTransform(true)
+ mColorCutout(Cutout::DISABLED)
{
}
return *this;
}
-FeatureBuilder& FeatureBuilder::UseDefaultTransform(bool useDefaultTransform)
-{
- mUseDefaultTransform = useDefaultTransform;
- return *this;
-}
-
VisualFactoryCache::ShaderType FeatureBuilder::GetShaderType() const
{
VisualFactoryCache::ShaderType shaderType = VisualFactoryCache::COLOR_SHADER;
}
}
-bool FeatureBuilder::IsDefaultTransformUsed() const
-{
- return mUseDefaultTransform;
-}
-
} // namespace ColorVisualShaderFeature
ColorVisualShaderFactory::ColorVisualShaderFactory()
{
Shader shader;
VisualFactoryCache::ShaderType shaderType = featureBuilder.GetShaderType();
- shader = factoryCache.GetShader(shaderType, featureBuilder.IsDefaultTransformUsed());
+ shader = factoryCache.GetShader(shaderType);
if(!shader)
{
std::string vertexShader = std::string(Dali::Shader::GetVertexShaderPrefix() + vertexShaderPrefixList + SHADER_COLOR_VISUAL_SHADER_VERT.data());
std::string fragmentShader = std::string(Dali::Shader::GetFragmentShaderPrefix() + fragmentShaderPrefixList + SHADER_COLOR_VISUAL_SHADER_FRAG.data());
- shader = factoryCache.GenerateAndSaveShader(shaderType, vertexShader, fragmentShader, featureBuilder.IsDefaultTransformUsed());
+ shader = factoryCache.GenerateAndSaveShader(shaderType, vertexShader, fragmentShader);
}
return shader;
}
FeatureBuilder& EnableBorderLine(bool enableBorderLine);
FeatureBuilder& EnableBlur(bool enableBlur);
FeatureBuilder& EnableCutout(bool enableCutout);
- FeatureBuilder& UseDefaultTransform(bool useDefaultTransform);
VisualFactoryCache::ShaderType GetShaderType() const;
void GetVertexShaderPrefixList(std::string& vertexShaderPrefixList) const;
void GetFragmentShaderPrefixList(std::string& fragmentShaderPrefixList) const;
- bool IsDefaultTransformUsed() const;
-
private:
RoundedCorner::Type mColorRoundCorner : 3; ///< Whether use rounded corner, or not. default as RoundedCorner::DISABLED
Borderline::Type mColorBorderline : 2; ///< Whether use border line, or not. default as Borderline::DISABLED
Blur::Type mColorBlur : 2; ///< Whether use blur, or not. default as Blur::DISABLED
Cutout::Type mColorCutout : 2; ///< Whether use cutout, or not. default as Cutout::DISABLED
- bool mUseDefaultTransform : 1;
};
} // namespace ColorVisualShaderFeature
if(mImpl->mRenderer && mImpl->mTransformMapChanged)
{
mImpl->SetTransformUniforms(mImpl->mRenderer, Direction::LEFT_TO_RIGHT);
-
- // TODO : We many need to less call it.
- UpdateShader();
}
}
.EnableBlur(IsBlurRequired())
.EnableBorderLine(IsBorderlineRequired())
.EnableRoundCorner(IsRoundedCornerRequired(), IsSquircleCornerRequired())
- .EnableCutout(IsCutoutRequired())
- .UseDefaultTransform(mImpl->mTransformMapUsingDefault));
+ .EnableCutout(IsCutoutRequired()));
return shader;
}
if(mImpl->mRenderer && mImpl->mTransformMapChanged)
{
mImpl->SetTransformUniforms(mImpl->mRenderer, Direction::LEFT_TO_RIGHT);
-
- // TODO : We many need to less call it.
- UpdateShader();
}
}
DALI_ASSERT_DEBUG(shaderTypeFlag < SHADER_TYPE_TABLE_COUNT && "Invalid gradient shader type generated!");
VisualFactoryCache::ShaderType shaderType = SHADER_TYPE_TABLE[shaderTypeFlag];
- Shader shader = mFactoryCache.GetShader(shaderType, mImpl->mTransformMapUsingDefault);
+ Shader shader = mFactoryCache.GetShader(shaderType);
if(!shader)
{
std::string vertexShaderPrefixList;
shader = mFactoryCache.GenerateAndSaveShader(shaderType,
Dali::Shader::GetVertexShaderPrefix() + vertexShaderPrefixList + SHADER_GRADIENT_VISUAL_SHADER_VERT.data(),
- Dali::Shader::GetFragmentShaderPrefix() + fragmentShaderPrefixList + SHADER_GRADIENT_VISUAL_SHADER_FRAG.data(),
- mImpl->mTransformMapUsingDefault);
+ Dali::Shader::GetFragmentShaderPrefix() + fragmentShaderPrefixList + SHADER_GRADIENT_VISUAL_SHADER_FRAG.data());
}
return shader;
shaderType = static_cast<VisualFactoryCache::ShaderType>(static_cast<int>(shaderType) + NATIVE_SHADER_TYPE_OFFSET);
}
- shader = factoryCache.GetShader(shaderType, featureBuilder.IsDefaultTransformUsed());
+ shader = factoryCache.GetShader(shaderType);
if(shader)
{
return shader;
if(mFragmentShaderNeedChange == ImageVisualShaderFeature::ChangeFragmentShader::DONT_CHANGE)
{
shaderType = static_cast<VisualFactoryCache::ShaderType>(static_cast<int>(shaderType) - NATIVE_SHADER_TYPE_OFFSET);
- shader = factoryCache.GetShader(shaderType, featureBuilder.IsDefaultTransformUsed());
+ shader = factoryCache.GetShader(shaderType);
}
}
}
return shader;
}
- shader = factoryCache.GenerateAndSaveShader(shaderType, vertexShader, fragmentShader, featureBuilder.IsDefaultTransformUsed());
+ shader = factoryCache.GenerateAndSaveShader(shaderType, vertexShader, fragmentShader);
shader.ReserveCustomProperties(CUSTOM_PROPERTY_COUNT +
((featureBuilder.IsEnabledAlphaMaskingOnRendering() ? 1 : 0)));
mBorderline(Borderline::DISABLED),
mAlphaMaskingOnRendering(AlphaMaskingOnRendering::DISABLED),
mColorConversion(ColorConversion::DONT_NEED),
- mUseDefaultTransform(true),
mTexture()
{
}
return *this;
}
-FeatureBuilder& FeatureBuilder::UseDefaultTransform(bool useDefaultTransform)
-{
- mUseDefaultTransform = useDefaultTransform;
- return *this;
-}
-
VisualFactoryCache::ShaderType FeatureBuilder::GetShaderType() const
{
VisualFactoryCache::ShaderType shaderType = VisualFactoryCache::IMAGE_SHADER;
return mAlphaMaskingOnRendering == AlphaMaskingOnRendering::ENABLED;
}
-bool FeatureBuilder::IsDefaultTransformUsed() const
-{
- return mUseDefaultTransform;
-}
-
} // namespace ImageVisualShaderFeature
} // namespace Internal
FeatureBuilder& EnableYuvToRgb(bool enableYuvToRgb, bool enableUnifiedYuvAndRgb = false);
- FeatureBuilder& UseDefaultTransform(bool useDefaultTransform);
-
VisualFactoryCache::ShaderType GetShaderType() const;
ChangeFragmentShader::Type NeedToChangeFragmentShader() const;
Dali::Texture GetTexture() const;
bool IsEnabledAlphaMaskingOnRendering() const;
- bool IsDefaultTransformUsed() const;
private:
TextureAtlas::Type mTextureAtlas : 2; ///< Whether use texture with atlas, or not. default as TextureAtlas::DISABLED
Borderline::Type mBorderline : 2; ///< Whether use borderline, or not. default as Borderline::DISABLED
AlphaMaskingOnRendering::Type mAlphaMaskingOnRendering : 2; ///< Whether use runtime alpha masking, or not. default as AlphaMaskingOnRendering::DISABLED
ColorConversion::Type mColorConversion : 2; ///< Whether the color format conversion is needed or not
- bool mUseDefaultTransform : 1;
- Dali::Texture mTexture; ///< Texture to check whether we need to change fragment shader or not
+
+ Dali::Texture mTexture; ///< Texture to check whether we need to change fragment shader or not
};
} // namespace ImageVisualShaderFeature
if(mImpl->mRenderer && mImpl->mTransformMapChanged)
{
mImpl->SetTransformUniforms(mImpl->mRenderer, Direction::LEFT_TO_RIGHT);
-
- // TODO : We many need to less call it.
- UpdateShader();
}
if(mUseSynchronousSizing)
.EnableBorderline(IsBorderlineRequired())
.SetTextureForFragmentShaderCheck(useNativeImage ? mNativeTexture : Dali::Texture())
.EnableAlphaMaskingOnRendering(requiredAlphaMaskingOnRendering)
- .EnableYuvToRgb(mNeedYuvToRgb, mNeedUnifiedYuvAndRgb)
- .UseDefaultTransform(mImpl->mTransformMapUsingDefault));
+ .EnableYuvToRgb(mNeedYuvToRgb, mNeedUnifiedYuvAndRgb));
}
else
{
if(mImpl->mRenderer && mImpl->mTransformMapChanged)
{
mImpl->SetTransformUniforms(mImpl->mRenderer, Direction::LEFT_TO_RIGHT);
-
- // TODO : We many need to less call it.
- UpdateShader();
- }
-}
-
-void MeshVisual::UpdateShader()
-{
- if(mImpl->mRenderer)
- {
- if(!mImpl->mTransformMapUsingDefault)
- {
- // Unregister default uniform blocks if transform changed.
- if(DALI_LIKELY(Dali::Adaptor::IsAvailable()) && mShader)
- {
- mFactoryCache.GetDefaultUniformBlock().DisconnectFromShader(mShader);
- }
- mImpl->mRenderer.RegisterVisualTransformUniform();
- }
}
}
}
mImpl->mRenderer = VisualRenderer::New(mGeometry, mShader);
- if(DALI_LIKELY(Dali::Adaptor::IsAvailable()) && mImpl->mTransformMapUsingDefault)
- {
- mFactoryCache.GetDefaultUniformBlock().ConnectToShader(mShader);
- }
+ mImpl->mRenderer.RegisterVisualTransformUniform();
mImpl->mRenderer.SetTextures(mTextureSet);
mImpl->mRenderer.SetProperty(Renderer::Property::DEPTH_WRITE_MODE, DepthWriteMode::ON);
mImpl->mRenderer.SetProperty(Renderer::Property::DEPTH_TEST_MODE, DepthTestMode::ON);
*/
void OnSetTransform() override;
- /**
- * @copydoc Visual::Base::UpdateShader
- */
- void UpdateShader() override;
-
private:
/**
* @brief Provide an empty geometry for the visual to use.
if(mImpl->mRenderer && mImpl->mTransformMapChanged)
{
mImpl->SetTransformUniforms(mImpl->mRenderer, Direction::LEFT_TO_RIGHT);
-
- // TODO : We many need to less call it.
- UpdateShader();
}
}
if(DALI_LIKELY((xStretchCount == 1 && yStretchCount == 1) ||
(xStretchCount == 0 && yStretchCount == 0)))
{
- shader = mFactoryCache.GetShader(shaderType, mImpl->mTransformMapUsingDefault);
+ shader = mFactoryCache.GetShader(shaderType);
if(DALI_UNLIKELY(!shader))
{
- shader = mFactoryCache.GenerateAndSaveShader(shaderType, SHADER_NPATCH_VISUAL_3X3_SHADER_VERT, fragmentShader, mImpl->mTransformMapUsingDefault);
+ shader = mFactoryCache.GenerateAndSaveShader(shaderType, SHADER_NPATCH_VISUAL_3X3_SHADER_VERT, fragmentShader);
}
}
else if(xStretchCount > 0 || yStretchCount > 0)
if(mImpl->mRenderer && mImpl->mTransformMapChanged)
{
mImpl->SetTransformUniforms(mImpl->mRenderer, Direction::LEFT_TO_RIGHT);
-
- // TODO : We many need to less call it.
- UpdateShader();
- }
-}
-
-void PrimitiveVisual::UpdateShader()
-{
- if(mImpl->mRenderer)
- {
- if(!mImpl->mTransformMapUsingDefault)
- {
- // Unregister default uniform blocks if transform changed.
- if(DALI_LIKELY(Dali::Adaptor::IsAvailable()) && mShader)
- {
- mFactoryCache.GetDefaultUniformBlock().DisconnectFromShader(mShader);
- }
- mImpl->mRenderer.RegisterVisualTransformUniform();
- }
}
}
}
mImpl->mRenderer = VisualRenderer::New(mGeometry, mShader);
- if(mImpl->mTransformMapUsingDefault)
- {
- mFactoryCache.GetDefaultUniformBlock().ConnectToShader(mShader);
- }
+ mImpl->mRenderer.RegisterVisualTransformUniform();
mImpl->mRenderer.SetProperty(Renderer::Property::FACE_CULLING_MODE, FaceCullingMode::BACK);
mImpl->SetTransformUniforms(mImpl->mRenderer, Direction::LEFT_TO_RIGHT);
}
*/
void OnSetTransform() override;
- /**
- * @copydoc Visual::Base::UpdateShader
- */
- void UpdateShader() override;
-
private:
//Simple struct to store the position and normal of a single vertex.
struct Vertex
if(mImpl->mRenderer && mImpl->mTransformMapChanged)
{
mImpl->SetTransformUniforms(mImpl->mRenderer, Direction::LEFT_TO_RIGHT);
-
- // TODO : We many need to less call it.
- UpdateShader();
}
if(IsOnScene() && !mLoadFailed)
ImageVisualShaderFeature::FeatureBuilder()
.EnableTextureAtlas(mImpl->mFlags & Visual::Base::Impl::IS_ATLASING_APPLIED)
.EnableRoundedCorner(IsRoundedCornerRequired(), IsSquircleCornerRequired())
- .EnableBorderline(IsBorderlineRequired())
- .UseDefaultTransform(mImpl->mTransformMapUsingDefault));
+ .EnableBorderline(IsBorderlineRequired()));
}
else
{
{
Shader shader;
VisualFactoryCache::ShaderType shaderType = featureBuilder.GetShaderType();
- shader = factoryCache.GetShader(shaderType, false);
+ shader = factoryCache.GetShader(shaderType);
if(!shader)
{
std::string vertexShader = std::string(Dali::Shader::GetVertexShaderPrefix() + vertexShaderPrefixList + SHADER_TEXT_VISUAL_SHADER_VERT.data());
std::string fragmentShader = std::string(Dali::Shader::GetFragmentShaderPrefix() + fragmentShaderPrefixList + SHADER_TEXT_VISUAL_SHADER_FRAG.data());
- shader = factoryCache.GenerateAndSaveShader(shaderType, vertexShader, fragmentShader, false);
+ shader = factoryCache.GenerateAndSaveShader(shaderType, vertexShader, fragmentShader);
}
return shader;
}
// Unusual case. SetProperty called after OnInitialize().
// Assume that DoAction call UPDATE_PROPERTY.
mImpl->mTransformMapChanged |= !map.Empty();
- if(mImpl->mTransformMapChanged)
+ if(mImpl->mTransformMapChanged && mImpl->mTransformMapUsingDefault)
{
mImpl->mTransformMapUsingDefault = false;
mImpl->mRenderer.RegisterVisualTransformUniform();
{
mImpl->mControlSize = controlSize;
mImpl->mTransformMapChanged |= !transform.Empty();
- if(mImpl->mTransformMapChanged)
+ if(mImpl->mTransformMapChanged && mImpl->mTransformMapUsingDefault)
{
mImpl->mTransformMapUsingDefault = false;
mImpl->mRenderer.RegisterVisualTransformUniform();
case Toolkit::Visual::Transform::Property::OFFSET:
{
// Need to change visual transform is not default anymore.
- mImpl->mTransformMapUsingDefault = false;
- mImpl->mRenderer.RegisterVisualTransformUniform();
-
- // Change shader
- UpdateShader();
+ if(mImpl->mTransformMapUsingDefault)
+ {
+ mImpl->mTransformMapUsingDefault = false;
+ mImpl->mRenderer.RegisterVisualTransformUniform();
+ }
return Dali::Property(mImpl->mRenderer, VisualRenderer::Property::TRANSFORM_OFFSET);
}
case Toolkit::Visual::Transform::Property::SIZE:
{
// Need to change visual transform is not default anymore.
- mImpl->mTransformMapUsingDefault = false;
- mImpl->mRenderer.RegisterVisualTransformUniform();
-
- // Change shader
- UpdateShader();
+ if(mImpl->mTransformMapUsingDefault)
+ {
+ mImpl->mTransformMapUsingDefault = false;
+ mImpl->mRenderer.RegisterVisualTransformUniform();
+ }
return Dali::Property(mImpl->mRenderer, VisualRenderer::Property::TRANSFORM_SIZE);
}
mGeometry[type] = geometry;
}
-Shader VisualFactoryCache::GetShader(ShaderType type, bool useDefaultUniforms)
+Shader VisualFactoryCache::GetShader(ShaderType type)
{
- if(useDefaultUniforms)
- {
- return mDefaultShader[type];
- }
return mShader[type];
}
-Shader VisualFactoryCache::GenerateAndSaveShader(ShaderType type, std::string_view vertexShader, std::string_view fragmentShader, bool useDefaultUniforms)
+Shader VisualFactoryCache::GenerateAndSaveShader(ShaderType type, std::string_view vertexShader, std::string_view fragmentShader)
{
- Shader shader;
std::string shaderName = Scripting::GetLinearEnumerationName<ShaderType>(type, VISUAL_SHADER_TYPE_TABLE, VISUAL_SHADER_TYPE_TABLE_COUNT);
// If the shader name is empty, it means that the shader is not generated internally. So, there is need to support file caching. Otherwise, it is defined externally. So, it needs not to support file caching.
- Shader::Hint::Value shaderHints = shaderName.empty()? Shader::Hint::NONE : Shader::Hint::FILE_CACHE_SUPPORT;
+ Shader::Hint::Value shaderHints = shaderName.empty() ? Shader::Hint::NONE : Shader::Hint::FILE_CACHE_SUPPORT;
- if(useDefaultUniforms)
- {
- shader = Integration::ShaderNewWithUniformBlock(vertexShader, fragmentShader, shaderHints, shaderName, {GetDefaultUniformBlock()});
- mDefaultShader[type] = shader;
- }
- else
- {
- shader = Shader::New(vertexShader, fragmentShader, shaderHints, shaderName);
- mShader[type] = shader;
- }
+ mShader[type] = Integration::ShaderNewWithUniformBlock(vertexShader, fragmentShader, shaderHints, shaderName, {GetDefaultUniformBlock()});
- return shader;
+ return mShader[type];
}
Geometry VisualFactoryCache::CreateQuadGeometry()
if(DALI_LIKELY((xStretchCount == 0 && yStretchCount == 0) || (xStretchCount == 1 && yStretchCount == 1)))
{
- shader = GetShader(VisualFactoryCache::NINE_PATCH_SHADER, false);
+ shader = GetShader(VisualFactoryCache::NINE_PATCH_SHADER);
if(DALI_UNLIKELY(!shader))
{
// Only cache vanilla 9 patch shaders
- shader = GenerateAndSaveShader(VisualFactoryCache::NINE_PATCH_SHADER, SHADER_NPATCH_VISUAL_3X3_SHADER_VERT, SHADER_NPATCH_VISUAL_SHADER_FRAG, false);
+ shader = GenerateAndSaveShader(VisualFactoryCache::NINE_PATCH_SHADER, SHADER_NPATCH_VISUAL_3X3_SHADER_VERT, SHADER_NPATCH_VISUAL_SHADER_FRAG);
}
}
else if(xStretchCount > 0 || yStretchCount > 0)
if(!rendererIsImage)
{
Geometry geometry = GetGeometry(QUAD_GEOMETRY);
- Shader shader = GetShader(IMAGE_SHADER, false);
+ Shader shader = GetShader(IMAGE_SHADER);
if(!shader)
{
- shader = GenerateAndSaveShader(IMAGE_SHADER, Dali::Shader::GetVertexShaderPrefix() + SHADER_IMAGE_VISUAL_SHADER_VERT.data(), Dali::Shader::GetFragmentShaderPrefix() + SHADER_IMAGE_VISUAL_SHADER_FRAG.data(), false);
+ shader = GenerateAndSaveShader(IMAGE_SHADER, Dali::Shader::GetVertexShaderPrefix() + SHADER_IMAGE_VISUAL_SHADER_VERT.data(), Dali::Shader::GetFragmentShaderPrefix() + SHADER_IMAGE_VISUAL_SHADER_FRAG.data());
shader.RegisterProperty(PIXEL_AREA_UNIFORM_NAME, FULL_TEXTURE_RECT);
shader.RegisterProperty(PREMULTIPLIED_ALPHA, ALPHA_VALUE_PREMULTIPLIED);
}
* Request shader of the given type.
* @return The shader of the required type if it exist in the cache. Otherwise, an empty handle is returned.
*/
- Shader GetShader(ShaderType type, bool useDefaultUniforms = false);
+ Shader GetShader(ShaderType type);
/**
* Generate and cache the shader of the give type. The name of shader will be installed to shader.
* @param[in] type The shder type.
* @param[in] vertexShader The vertex shader code.
* @param[in] fragmentShader The fragment shader code.
- * @param[in] useDefaultUniforms Whether to use default uniforms or not.
* @return The shader created by given vertex and fragment shader code.
*/
- Shader GenerateAndSaveShader(ShaderType type, std::string_view vertexShader, std::string_view fragmentShader, bool useDefaultUniforms = false);
+ Shader GenerateAndSaveShader(ShaderType type, std::string_view vertexShader, std::string_view fragmentShader);
/*
* Greate the quad geometry.
Geometry mGeometry[GEOMETRY_TYPE_MAX];
Shader mShader[SHADER_TYPE_MAX];
- Shader mDefaultShader[SHADER_TYPE_MAX];
bool mLoadYuvPlanes; ///< A global flag to specify if the image should be loaded as yuv planes