[problem] Memory usage is too high, event-thread operations are too heavy.
[cause] Too much Dali::Handle data copied around.
[solution] Remove all virtual methods from handles, to avoid needing a C++ vptr
Change-Id: I87c8c526be53413e895a88ac8a355083a4797d8e
Signed-off-by: Adeel Kazmi <adeel.kazmi@samsung.com>
RelayoutController();
/**
- * Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~RelayoutController();
+ ~RelayoutController();
/**
* Request to relayout.
{
/**
+ * Gets the natural size of the given actor.
*
+ * If the actor is a Control, it returns the natural size of the Control. @see Control::GetNaturalSize()
+ * If the actor is an ImageActor, it returns the size of the image.
+ * If the actor is a TextActor, it returns the size of the text. @see Font::MeasureText()
+ * Otherwise it returns the actor's current size. @see Actor::GetCurrentSize()
+ *
+ * @param[in] actor The actor.
+ *
+ * @return The natural size.
*/
Vector3 GetNaturalSize( Actor actor );
/**
+ * Gets the actor's height for the given width.
+ *
+ * If the actor is a Control it returns the height for width. @see Control::GetHeightForWidth()
+ * If the actor is an ImageActor or a TextActor it scales the natural size to fit the given width. @see GetNaturalSize()
+ * Otherwise it returns the actor's current size. @see Actor::GetCurrentSize()
+ *
+ * @param[in] actor The actor.
+ * @param[in] width The width.
*
+ * @return The actor's height for given width.
*/
float GetHeightForWidth( Actor actor, float width );
*/
// INTERNAL INCLUDES
-#include <dali-toolkit/public-api/controls/scrollable//scroll-component.h>
+#include <dali-toolkit/public-api/controls/scrollable/scroll-component.h>
#include <dali-toolkit/public-api/controls/scrollable/scrollable.h>
namespace Dali DALI_IMPORT_API
static Builder New();
/**
- * Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~Builder();
+ ~Builder();
/**
* UI string data format
*/
JsonParser();
- /*
- * virtual Destructor
+ /**
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~JsonParser();
+ ~JsonParser();
/**
* Downcast an Object handle to JsonParser if it is a JsonParser.
CheckBoxButton& operator=( const CheckBoxButton& checkBox );
/**
- * Virtual destructor.
- * Dali::Object derived classes typically do not contain member data.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~CheckBoxButton();
+ ~CheckBoxButton();
/**
* Create an initialized CheckBoxButton.
return GetImplementation().KeyEventSignal();
}
-/**
- * @copydoc ConnectionTrackerInterface::SignalConnected
- */
-void Control::SignalConnected( SlotObserver* slotObserver, CallbackBase* callback )
-{
- GetImplementation().SignalConnected(slotObserver, callback );
-}
-
-/**
- * @copydoc ConnectionTrackerInterface::SignalDisconnected
- */
-void Control::SignalDisconnected( SlotObserver* slotObserver, CallbackBase* callback )
-{
- GetImplementation().SignalDisconnected(slotObserver, callback );
-}
-
-/**
- * @copydoc ConnectionTrackerInterface::GetConnectionCount
- */
-std::size_t Control::GetConnectionCount() const
-{
- return GetImplementation().GetConnectionCount( );
-}
-
-
Control::Control(Internal::Control& implementation)
: CustomActor(implementation)
{
TableView& operator=( const TableView& handle );
/**
- * Virtual destructor.
- * Dali::Object derived classes typically do not contain member data.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~TableView();
+ ~TableView();
/**
* Create the TableView control.
KeyInputFocusManager();
/**
- * Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~KeyInputFocusManager();
+ ~KeyInputFocusManager();
/**
* Get the singleton of KeyInputFocusManager object.
BouncingEffect();
/**
- * @brief Virtual destructor
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~BouncingEffect();
+ ~BouncingEffect();
/**
* @brief Create a BouncingEffect object
StyleManager();
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~StyleManager();
+ ~StyleManager();
/**
* @brief Get the singleton of StyleManager object.
Alignment(const Alignment& alignment);
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~Alignment();
+ ~Alignment();
/**
* @brief Downcast an Object handle to Alignment.
static Button DownCast( BaseHandle handle );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~Button();
+ ~Button();
/**
* @brief Sets the button as \e dimmed.
PushButton& operator=( const PushButton& pushButton );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~PushButton();
+ ~PushButton();
/**
* @brief Create an initialized PushButton.
public:
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~ClusterStyle();
+ ~ClusterStyle();
/**
* @brief Query the maximum number of children this Style can handle.
* The implementation of the control must be supplied; see Internal::Control for more details.
* @see Internal::Control
*/
-class Control : public CustomActor, public ConnectionTrackerInterface
+class Control : public CustomActor
{
public:
Control(const Control& uiControl);
/**
- * @brief Virtual destructor.
+ * @brief Dali::Control is intended as a base class
*
- * Dali::Object derived classes do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~Control();
+ ~Control();
public: // operators
*/
KeyEventSignalV2& KeyEventSignal();
-protected:
-
- /**
- * @copydoc ConnectionTrackerInterface::SignalConnected
- */
- virtual void SignalConnected( SlotObserver* slotObserver, CallbackBase* callback );
-
- /**
- * @copydoc ConnectionTrackerInterface::SignalDisconnected
- */
- virtual void SignalDisconnected( SlotObserver* slotObserver, CallbackBase* callback );
-
- /**
- * @copydoc ConnectionTrackerInterface::GetConnectionCount
- */
- virtual std::size_t GetConnectionCount() const;
-
public: // Not intended for application developers
/**
MaskedImageView& operator=( const MaskedImageView& handle );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~MaskedImageView();
+ ~MaskedImageView();
/**
* @brief Create the MaskedImageView control.
Popup& operator=( const Popup& handle );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~Popup();
+ ~Popup();
/**
* @brief Create the Poup control.
ScrollBar& operator=( const ScrollBar& scrollBar );
/**
- * @brief Virtual destructor.
- * Dali::Object derived classes typically do not contain member data.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~ScrollBar();
+ ~ScrollBar();
/**
* @brief Create an initialized ScrollBar
ItemView& operator=( const ItemView& itemView );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~ItemView();
+ ~ItemView();
/**
* @brief Create an initialized ItemView.
ScrollComponent& operator=( const ScrollComponent& scrollComponent );
/**
- * Virtual destructor.
- * Dali::Object derived classes typically do not contain member data.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~ScrollComponent();
+ ~ScrollComponent();
/**
* Downcast an Object handle to ScrollComponent. If handle points to a ScrollComponent the
using Dali::BaseHandle::operator=;
/**
- * Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~ScrollConnector();
+ ~ScrollConnector();
/**
* Downcast a BaseHandle to ScrollConnector handle.
Ruler();
/**
- * @brief Destructor - A reference counted object may only be deleted by calling Unreference().
- */
- virtual ~Ruler();
-
- /**
* @brief Snaps (x) in accordance to the ruler settings.
*
* @param[in] x The input value on the ruler to be snapped.
protected:
+ /**
+ * @brief Destructor - A reference counted object may only be deleted by calling Unreference().
+ */
+ virtual ~Ruler();
+
+protected:
+
RulerType mType; ///< Type of Ruler (Fixed or Free).
bool mEnabled; ///< If the ruler is enabled.
RulerDomain mDomain; ///< The domain of the ruler.
ScrollView& operator=( const ScrollView& handle );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~ScrollView();
+ ~ScrollView();
/**
* @brief Create an initialized ScrollView.
Scrollable& operator=( const Scrollable& handle );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~Scrollable();
+ ~Scrollable();
/**
* @brief Downcast an Object handle to Scrollable.
SuperBlurView& operator=( const SuperBlurView& rhs );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~SuperBlurView();
+ ~SuperBlurView();
/**
* @brief Downcast an Object handle to SuperBlurView.
static TextInput DownCast( BaseHandle handle );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~TextInput();
+ ~TextInput();
/**
* @brief Get the inputed text currently being displayed.
static TextView DownCast( BaseHandle handle );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~TextView();
+ ~TextView();
/**
* @brief Replace the current text with a new text string.
LocalizedControlFactory();
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~LocalizedControlFactory();
+ ~LocalizedControlFactory();
/**
* @brief Get the singleton of LocalizedControlFactory object.
FocusManager();
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~FocusManager();
+ ~FocusManager();
/**
* @brief Get the singleton of FocusManager object.
KeyboardFocusManager();
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~KeyboardFocusManager();
+ ~KeyboardFocusManager();
/**
* @brief Get the singleton of KeyboardFocusManager object.
DissolveEffect();
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~DissolveEffect();
+ ~DissolveEffect();
/**
* @brief Create an initialized DissolveEffect.
ImageRegionEffect();
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~ImageRegionEffect();
+ ~ImageRegionEffect();
/**
* @brief Create an initialized ImageRegionEffect.
IrisEffect();
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~IrisEffect();
+ ~IrisEffect();
/**
* @brief Create an initialized IrisEffect.
MaskEffect();
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~MaskEffect();
+ ~MaskEffect();
/**
* @brief Create a MaskEffect.
PageTurnBookSpineEffect();
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~PageTurnBookSpineEffect();
+ ~PageTurnBookSpineEffect();
/**
* @brief Create an initialized PageTurnBookSpineEffect.
PageTurnEffect();
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~PageTurnEffect();
+ ~PageTurnEffect();
/**
* @brief Create an initialized PageTurnEffect.
RippleEffect();
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~RippleEffect();
+ ~RippleEffect();
/**
* @brief Create an initialized RippleEffect.
Ripple2DEffect();
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~Ripple2DEffect();
+ ~Ripple2DEffect();
/**
* @brief Create an initialized Ripple2DEffect.
SwirlEffect();
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~SwirlEffect();
+ ~SwirlEffect();
/**
* @brief Create an initialized SwirlEffect.
FullAreaImageCreator(){}
/**
- * virtual destructor
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~FullAreaImageCreator(){}
+ ~FullAreaImageCreator(){}
/**
* Create an initialized FullAreaImageCreator.
BloomView& operator=(const BloomView& ZoomView);
/**
- * Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~BloomView();
+ ~BloomView();
/**
* Downcast an Object handle to BloomView. If handle points to a BloomView the
Cluster& operator=( const Cluster& cluster );
/**
- * Virtual destructor.
- * Dali::Object derived classes typically do not contain member data.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~Cluster();
+ ~Cluster();
/**
* Create the Cluster control with the given style.
static EffectsView DownCast( BaseHandle handle );
/**
- * Virtual destructor.
- * Dali::Object derived classes typically do not contain member data.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~EffectsView();
+ ~EffectsView();
public:
GaussianBlurView& operator=(const GaussianBlurView& ZoomView);
/**
- * Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~GaussianBlurView();
+ ~GaussianBlurView();
/**
* Downcast an Object handle to GaussianBlurView. If handle points to a GaussianBlurView the
ImageView& operator=( const ImageView& handle );
/**
- * Virtual destructor.
- * Dali::Object derived classes typically do not contain member data.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~ImageView();
+ ~ImageView();
/**
* Create the Poup control
Magnifier& operator=( const Magnifier& handle );
/**
- * Virtual destructor.
- * Dali::Object derived classes typically do not contain member data.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~Magnifier();
+ ~Magnifier();
/**
* Create the Poup control
NavigationControl& operator=( const NavigationControl& handle );
/**
- * virtual Destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~NavigationControl();
+ ~NavigationControl();
/**
* Create an initialized NavigationControl.
PageTurnLandscapeView& operator=( const PageTurnLandscapeView& pageTurnLandscapeView );
/**
- * Virtual destructor.
- * Dali::Object derived classes typically do not contain member data.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~PageTurnLandscapeView();
+ ~PageTurnLandscapeView();
/**
* Create an initialized PageTurnLandscapeView control
PageTurnPortraitView& operator=( const PageTurnPortraitView& pageTurnPortraitView );
/**
- * Virtual destructor.
- * Dali::Object derived classes typically do not contain member data.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~PageTurnPortraitView();
+ ~PageTurnPortraitView();
/**
* Create an initialized PageTurnPortraitView control
PageTurnView& operator=( const PageTurnView& handle );
/**
- * Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~PageTurnView();
+ ~PageTurnView();
/**
* Downcast an Object handle to PageTurnView.
RotatingSelector& operator=( const RotatingSelector& rotatingSelector );
/**
- * Virtual destructor.
- * Dali::Object derived classes typically do not contain member data.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
~RotatingSelector();
ShadowView& operator=(const ShadowView& view);
/**
- * Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~ShadowView();
+ ~ShadowView();
/**
* Downcast an Object handle to ShadowView. If handle points to a ShadowView the
Slider& operator=( const Slider& handle );
/**
- * Virtual destructor.
- * Dali::Object derived classes typically do not contain member data.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~Slider();
+ ~Slider();
/**
* Downcast an Object handle to Slider. If handle points to a Slider the
ToolBar& operator=( const ToolBar& handle );
/**
- * virtual Destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~ToolBar();
+ ~ToolBar();
/**
* Create an initialized ToolBar.
View& operator=( const View& handle );
/**
- * virtual Destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~View();
+ ~View();
/**
* Create an initialized View.
AlphaDiscardEffect();
/**
- * Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~AlphaDiscardEffect();
+ ~AlphaDiscardEffect();
/**
* Create a AlphaDiscardEffect.
BendyEffect();
/**
- * Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~BendyEffect();
+ ~BendyEffect();
/**
* Create an initialized BendyEffect.
BlindEffect();
/**
- * Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~BlindEffect();
+ ~BlindEffect();
/**
* Create an initialized ~BlindEffect.
BubbleEffect();
/**
- * Virtual destructor
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~BubbleEffect();
+ ~BubbleEffect();
/**
* Create an initialized BubbleEffect
ColorAdjuster();
/**
- * Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~ColorAdjuster();
+ ~ColorAdjuster();
/**
* Create an initialized ColorAdjuster.
CarouselEffect();
/**
- * Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~CarouselEffect();
+ ~CarouselEffect();
/**
* Create an initialized CarouselEffect.
DisplacementEffect();
/**
- * Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~DisplacementEffect();
+ ~DisplacementEffect();
/**
* Create an initialized DisplacementEffect
DissolveLocalEffect();
/**
- * Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~DissolveLocalEffect();
+ ~DissolveLocalEffect();
/**
* Create an initialized DissolveLocalEffect.
DistanceFieldEffect();
/**
- * Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~DistanceFieldEffect();
+ ~DistanceFieldEffect();
/**
* Create an initialized DistanceFieldEffect.
MirrorEffect();
/**
- * Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~MirrorEffect();
+ ~MirrorEffect();
/**
* Create an initialized MirrorEffect.
MotionBlurEffect();
/**
- * Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~MotionBlurEffect();
+ ~MotionBlurEffect();
/**
* Create an initialized MotionBlurEffect
MotionStretchEffect();
/**
- * Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~MotionStretchEffect();
+ ~MotionStretchEffect();
/**
* Create an initialized MotionStretchEffect
OverlayEffect();
/**
- * Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~OverlayEffect();
+ ~OverlayEffect();
/**
* Create a OverlayEffect.
ShearEffect();
/**
- * Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~ShearEffect();
+ ~ShearEffect();
/**
* Create an initialized ShearEffect.
SoftButtonEffect();
/**
- * Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~SoftButtonEffect();
+ ~SoftButtonEffect();
typedef enum
{
SpotEffect();
/**
- * Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~SpotEffect();
+ ~SpotEffect();
/**
* Create an initialized SpotEffect.
SquareDissolveEffect();
/**
- * Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~SquareDissolveEffect();
+ ~SquareDissolveEffect();
/**
* Create an initialized SquareDissolveEffect.
WaterEffect();
/**
- * Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~WaterEffect();
+ ~WaterEffect();
/**
* Create an initialized WaterEffect.