X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fevent%2Frendering%2Frenderer-impl.h;h=6849bf33ae4c60ae66715bf798f6d4a806e006f4;hb=4f26a4cedbd69c7ab60dfa95edeafae2cfd2c7e6;hp=3817bd441bf39cb45f0d05f407f20298ebb44f61;hpb=a8677079027c6db5ec31705480e8398959c68e8a;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/event/rendering/renderer-impl.h b/dali/internal/event/rendering/renderer-impl.h index 3817bd4..6849bf3 100755 --- a/dali/internal/event/rendering/renderer-impl.h +++ b/dali/internal/event/rendering/renderer-impl.h @@ -2,7 +2,7 @@ #define DALI_INTERNAL_RENDERER_H /* - * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -40,7 +40,7 @@ class Renderer; } class Renderer; -typedef IntrusivePtr RendererPtr; +using RendererPtr = IntrusivePtr; /** * Renderer is an object that can be used to show content by combining a Geometry with a shader and textures. @@ -123,19 +123,19 @@ public: BlendFactor::Type& srcFactorAlpha, BlendFactor::Type& destFactorAlpha ) const; /** - * @copydoc Dali::Renderer::SetBlendEquation() + * @brief Set same Blend Equation for the RGB and alpha */ - void SetBlendEquation( BlendEquation::Type equationRgba ); + void SetBlendEquation( DevelBlendEquation::Type equationRgba ); /** - * @copydoc Dali::Renderer::SetBlendEquation() + * @brief Set Blend Equation separately for the RGB and alpha */ - void SetBlendEquation( BlendEquation::Type equationRgb, BlendEquation::Type equationAlpha ); + void SetBlendEquation( DevelBlendEquation::Type equationRgb, DevelBlendEquation::Type equationAlpha ); /** - * @copydoc Dali::Renderer::GetBlendEquation() + * @brief Get Blend Equation of rgb and alpha */ - void GetBlendEquation( BlendEquation::Type& equationRgb, BlendEquation::Type& equationAlpha ) const; + void GetBlendEquation( DevelBlendEquation::Type& equationRgb, DevelBlendEquation::Type& equationAlpha ) const; /** * @copydoc Dali::Renderer::SetIndexedDrawFirstElement @@ -162,6 +162,13 @@ public: bool IsPreMultipliedAlphaEnabled() const; /** + * @brief Query whether Blend Equation Advanced is used in this renderer + * + * @return True is Blend Equation Advanced is used, false otherwise. + */ + bool IsAdvancedBlendEquationApplied() const; + + /** * @brief Get the scene graph object * * @return the scene object @@ -173,32 +180,40 @@ public: // Default property extensions from Object /** * @copydoc Dali::Internal::Object::SetDefaultProperty() */ - virtual void SetDefaultProperty(Property::Index index, const Property::Value& propertyValue); + void SetDefaultProperty(Property::Index index, const Property::Value& propertyValue) override; /** * @copydoc Dali::Internal::Object::GetDefaultProperty() */ - virtual Property::Value GetDefaultProperty( Property::Index index ) const; + Property::Value GetDefaultProperty( Property::Index index ) const override; /** * @copydoc Dali::Internal::Object::GetDefaultPropertyCurrentValue() */ - virtual Property::Value GetDefaultPropertyCurrentValue( Property::Index index ) const; + Property::Value GetDefaultPropertyCurrentValue( Property::Index index ) const override; /** * @copydoc Dali::Internal::Object::OnNotifyDefaultPropertyAnimation() */ - virtual void OnNotifyDefaultPropertyAnimation( Animation& animation, Property::Index index, const Property::Value& value, Animation::Type animationType ); + void OnNotifyDefaultPropertyAnimation( Animation& animation, Property::Index index, const Property::Value& value, Animation::Type animationType ) override; /** * @copydoc Dali::Internal::Object::GetSceneObjectAnimatableProperty() */ - virtual const SceneGraph::PropertyBase* GetSceneObjectAnimatableProperty( Property::Index index ) const; + const SceneGraph::PropertyBase* GetSceneObjectAnimatableProperty( Property::Index index ) const override; /** * @copydoc Dali::Internal::Object::GetSceneObjectInputProperty() */ - virtual const PropertyInputImpl* GetSceneObjectInputProperty( Property::Index index ) const; + const PropertyInputImpl* GetSceneObjectInputProperty( Property::Index index ) const override; + + /** + * @brief Adds a draw command to the Renderer. + * DrawCommands override Renderer's default behaviour. + * + * @param[in] command Valid reference to a DrawCommand objects + */ + void AddDrawCommand( const Dali::DevelRenderer::DrawCommand& command ); private: // implementation @@ -241,7 +256,7 @@ protected: /** * A reference counted object may only be deleted by calling Unreference() */ - virtual ~Renderer(); + ~Renderer() override; private: // unimplemented methods Renderer( const Renderer& ); @@ -269,6 +284,8 @@ private: // data DepthTestMode::Type mDepthTestMode:3; ///< Local copy of the depth test mode DevelRenderer::Rendering::Type mRenderingBehavior:2; ///< The rendering behavior bool mPremultipledAlphaEnabled:1; ///< Flag indicating whether the Pre-multiplied Alpha Blending is required + + std::vector mDrawCommands; ///< list of draw commands }; } // namespace Internal