Initial commit
This commit is contained in:
119
Torque/SDK/engine/gui/game/guiFadeinBitmapCtrl.cc
Normal file
119
Torque/SDK/engine/gui/game/guiFadeinBitmapCtrl.cc
Normal file
@@ -0,0 +1,119 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
//
|
||||
// Copyright (c) 2001 GarageGames.Com
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#include "console/console.h"
|
||||
#include "console/consoleTypes.h"
|
||||
#include "dgl/dgl.h"
|
||||
|
||||
#include "gui/controls/guiBitmapCtrl.h"
|
||||
|
||||
class GuiFadeinBitmapCtrl : public GuiBitmapCtrl
|
||||
{
|
||||
typedef GuiBitmapCtrl Parent;
|
||||
public:
|
||||
U32 wakeTime;
|
||||
bool done;
|
||||
U32 fadeinTime;
|
||||
U32 waitTime;
|
||||
U32 fadeoutTime;
|
||||
|
||||
GuiFadeinBitmapCtrl()
|
||||
{
|
||||
wakeTime = 0;
|
||||
fadeinTime = 1000;
|
||||
waitTime = 2000;
|
||||
fadeoutTime = 1000;
|
||||
done = false;
|
||||
}
|
||||
void onPreRender()
|
||||
{
|
||||
Parent::onPreRender();
|
||||
setUpdate();
|
||||
}
|
||||
void onMouseDown(const GuiEvent &)
|
||||
{
|
||||
Con::executef(this, 1, "click");
|
||||
}
|
||||
bool onKeyDown(const GuiEvent &)
|
||||
{
|
||||
Con::executef(this, 1, "click");
|
||||
return true;
|
||||
}
|
||||
DECLARE_CONOBJECT(GuiFadeinBitmapCtrl);
|
||||
bool onWake()
|
||||
{
|
||||
if(!Parent::onWake())
|
||||
return false;
|
||||
wakeTime = Platform::getRealMilliseconds();
|
||||
return true;
|
||||
}
|
||||
void onRender(Point2I offset, const RectI &updateRect)
|
||||
{
|
||||
Parent::onRender(offset, updateRect);
|
||||
U32 elapsed = Platform::getRealMilliseconds() - wakeTime;
|
||||
|
||||
U32 alpha;
|
||||
if (elapsed < fadeinTime)
|
||||
{
|
||||
// fade-in
|
||||
alpha = 255 - (255 * (F32(elapsed) / F32(fadeinTime)));
|
||||
}
|
||||
else if (elapsed < (fadeinTime+waitTime))
|
||||
{
|
||||
// wait
|
||||
alpha = 0;
|
||||
}
|
||||
else if (elapsed < (fadeinTime+waitTime+fadeoutTime))
|
||||
{
|
||||
// fade out
|
||||
elapsed -= (fadeinTime+waitTime);
|
||||
alpha = 255 * F32(elapsed) / F32(fadeoutTime);
|
||||
}
|
||||
else
|
||||
{
|
||||
// done state
|
||||
alpha = fadeoutTime ? 255 : 0;
|
||||
done = true;
|
||||
}
|
||||
ColorI color(0,0,0,alpha);
|
||||
dglDrawRectFill(offset, mBounds.extent + offset, color);
|
||||
}
|
||||
static void initPersistFields()
|
||||
{
|
||||
Parent::initPersistFields();
|
||||
addField("fadeinTime", TypeS32, Offset(fadeinTime, GuiFadeinBitmapCtrl));
|
||||
addField("waitTime", TypeS32, Offset(waitTime, GuiFadeinBitmapCtrl));
|
||||
addField("fadeoutTime", TypeS32, Offset(fadeoutTime, GuiFadeinBitmapCtrl));
|
||||
addField("done", TypeBool, Offset(done, GuiFadeinBitmapCtrl));
|
||||
}
|
||||
};
|
||||
|
||||
IMPLEMENT_CONOBJECT(GuiFadeinBitmapCtrl);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user