2019-12-12 17:32:41 +01:00
|
|
|
// Copyright (C) 2002-2012 Nikolaus Gebhardt
|
|
|
|
// This file is part of the "Irrlicht Engine".
|
|
|
|
// For conditions of distribution and use, see copyright notice in irrlicht.h
|
|
|
|
|
2021-08-27 17:03:34 +02:00
|
|
|
#ifndef IRR_I_GUI_IN_OUT_FADER_H_INCLUDED
|
|
|
|
#define IRR_I_GUI_IN_OUT_FADER_H_INCLUDED
|
2019-12-12 17:32:41 +01:00
|
|
|
|
|
|
|
#include "IGUIElement.h"
|
|
|
|
#include "SColor.h"
|
|
|
|
|
|
|
|
namespace irr
|
|
|
|
{
|
|
|
|
namespace gui
|
|
|
|
{
|
|
|
|
|
|
|
|
//! Element for fading out or in
|
|
|
|
/** Here is a small example on how the class is used. In this example we fade
|
|
|
|
in from a total red screen in the beginning. As you can see, the fader is not
|
|
|
|
only useful for dramatic in and out fading, but also to show that the player
|
|
|
|
is hit in a first person shooter game for example.
|
|
|
|
\code
|
|
|
|
gui::IGUIInOutFader* fader = device->getGUIEnvironment()->addInOutFader();
|
|
|
|
fader->setColor(video::SColor(0,255,0,0));
|
|
|
|
fader->fadeIn(4000);
|
|
|
|
\endcode
|
|
|
|
*/
|
|
|
|
class IGUIInOutFader : public IGUIElement
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
|
|
|
|
//! constructor
|
|
|
|
IGUIInOutFader(IGUIEnvironment* environment, IGUIElement* parent, s32 id, core::rect<s32> rectangle)
|
|
|
|
: IGUIElement(EGUIET_IN_OUT_FADER, environment, parent, id, rectangle) {}
|
|
|
|
|
|
|
|
//! Gets the color to fade out to or to fade in from.
|
|
|
|
virtual video::SColor getColor() const = 0;
|
|
|
|
|
|
|
|
//! Sets the color to fade out to or to fade in from.
|
|
|
|
/** \param color: Color to where it is faded out od from it is faded in. */
|
|
|
|
virtual void setColor(video::SColor color) = 0;
|
|
|
|
virtual void setColor(video::SColor source, video::SColor dest) = 0;
|
|
|
|
|
|
|
|
//! Starts the fade in process.
|
|
|
|
/** In the beginning the whole rect is drawn by the set color
|
2021-08-27 17:03:34 +02:00
|
|
|
(black by default) and at the end of the given time the
|
2019-12-12 17:32:41 +01:00
|
|
|
color has faded out.
|
|
|
|
\param time: Time specifying how long it should need to fade in,
|
|
|
|
in milliseconds. */
|
|
|
|
virtual void fadeIn(u32 time) = 0;
|
|
|
|
|
|
|
|
//! Starts the fade out process.
|
|
|
|
/** In the beginning everything is visible, and at the end of
|
|
|
|
the time only the set color (black by the fault) will be drawn.
|
|
|
|
\param time: Time specifying how long it should need to fade out,
|
|
|
|
in milliseconds. */
|
|
|
|
virtual void fadeOut(u32 time) = 0;
|
|
|
|
|
|
|
|
//! Returns if the fade in or out process is done.
|
|
|
|
virtual bool isReady() const = 0;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
} // end namespace gui
|
|
|
|
} // end namespace irr
|
|
|
|
|
|
|
|
#endif
|