Initial commit
This commit is contained in:
134
engine/gui/core/guiDefaultControlRender.cc
Executable file
134
engine/gui/core/guiDefaultControlRender.cc
Executable file
@@ -0,0 +1,134 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
// Copyright (c) 2002 GarageGames.Com
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#include "dgl/dgl.h"
|
||||
#include "gui/core/guiDefaultControlRender.h"
|
||||
#include "gui/core/guiTypes.h"
|
||||
#include "core/color.h"
|
||||
#include "math/mRect.h"
|
||||
|
||||
static ColorI colorLightGray(192, 192, 192);
|
||||
static ColorI colorGray(128, 128, 128);
|
||||
static ColorI colorDarkGray(64, 64, 64);
|
||||
static ColorI colorWhite(255,255,255);
|
||||
static ColorI colorBlack(0,0,0);
|
||||
|
||||
void renderRaisedBox(RectI &bounds, GuiControlProfile *profile)
|
||||
{
|
||||
S32 l = bounds.point.x, r = bounds.point.x + bounds.extent.x - 1;
|
||||
S32 t = bounds.point.y, b = bounds.point.y + bounds.extent.y - 1;
|
||||
|
||||
dglDrawRectFill( bounds, profile->mFillColor);
|
||||
dglDrawLine(l, t, l, b - 1, profile->mBevelColorHL);
|
||||
dglDrawLine(l, t, r - 1, t, profile->mBevelColorHL);
|
||||
|
||||
dglDrawLine(l, b, r, b, profile->mBevelColorLL);
|
||||
dglDrawLine(r, b - 1, r, t, profile->mBevelColorLL);
|
||||
|
||||
dglDrawLine(l + 1, b - 1, r - 1, b - 1, profile->mBorderColor);
|
||||
dglDrawLine(r - 1, b - 2, r - 1, t + 1, profile->mBorderColor);
|
||||
}
|
||||
|
||||
void renderSlightlyRaisedBox(RectI &bounds, GuiControlProfile *profile)
|
||||
{
|
||||
S32 l = bounds.point.x, r = bounds.point.x + bounds.extent.x - 1;
|
||||
S32 t = bounds.point.y, b = bounds.point.y + bounds.extent.y - 1;
|
||||
|
||||
dglDrawRectFill( bounds, profile->mFillColor);
|
||||
dglDrawLine(l, t, l, b, profile->mBevelColorHL);
|
||||
dglDrawLine(l, t, r, t, profile->mBevelColorHL);
|
||||
dglDrawLine(l + 1, b, r, b, profile->mBorderColor);
|
||||
dglDrawLine(r, t + 1, r, b - 1, profile->mBorderColor);
|
||||
}
|
||||
|
||||
void renderLoweredBox(RectI &bounds, GuiControlProfile *profile)
|
||||
{
|
||||
S32 l = bounds.point.x, r = bounds.point.x + bounds.extent.x - 1;
|
||||
S32 t = bounds.point.y, b = bounds.point.y + bounds.extent.y - 1;
|
||||
|
||||
dglDrawRectFill( bounds, profile->mFillColor);
|
||||
|
||||
dglDrawLine(l, b, r, b, profile->mBevelColorHL);
|
||||
dglDrawLine(r, b - 1, r, t, profile->mBevelColorHL);
|
||||
|
||||
dglDrawLine(l, t, r - 1, t, profile->mBevelColorLL);
|
||||
dglDrawLine(l, t + 1, l, b - 1, profile->mBevelColorLL);
|
||||
|
||||
dglDrawLine(l + 1, t + 1, r - 2, t + 1, profile->mBorderColor);
|
||||
dglDrawLine(l + 1, t + 2, l + 1, b - 2, profile->mBorderColor);
|
||||
}
|
||||
|
||||
void renderSlightlyLoweredBox(RectI &bounds, GuiControlProfile *profile)
|
||||
{
|
||||
S32 l = bounds.point.x, r = bounds.point.x + bounds.extent.x - 1;
|
||||
S32 t = bounds.point.y, b = bounds.point.y + bounds.extent.y - 1;
|
||||
|
||||
dglDrawRectFill( bounds, profile->mFillColor);
|
||||
dglDrawLine(l, b, r, b, profile->mBevelColorHL);
|
||||
dglDrawLine(r, t, r, b - 1, profile->mBevelColorHL);
|
||||
dglDrawLine(l, t, l, b - 1, profile->mBorderColor);
|
||||
dglDrawLine(l + 1, t, r - 1, t, profile->mBorderColor);
|
||||
}
|
||||
|
||||
void renderBorder(RectI &bounds, GuiControlProfile *profile)
|
||||
{
|
||||
S32 l = bounds.point.x, r = bounds.point.x + bounds.extent.x - 1;
|
||||
S32 t = bounds.point.y, b = bounds.point.y + bounds.extent.y - 1;
|
||||
|
||||
switch(profile->mBorder)
|
||||
{
|
||||
case 1:
|
||||
dglDrawRect(bounds, profile->mBorderColor);
|
||||
break;
|
||||
case 2:
|
||||
dglDrawLine(l + 1, t + 1, l + 1, b - 2, profile->mBevelColorHL);
|
||||
dglDrawLine(l + 2, t + 1, r - 2, t + 1, profile->mBevelColorHL);
|
||||
dglDrawLine(r, t, r, b, profile->mBevelColorHL);
|
||||
dglDrawLine(l, b, r - 1, b, profile->mBevelColorHL);
|
||||
dglDrawLine(l, t, r - 1, t, profile->mBorderColorNA);
|
||||
dglDrawLine(l, t + 1, l, b - 1, profile->mBorderColorNA);
|
||||
dglDrawLine(l + 1, b - 1, r - 1, b - 1, profile->mBorderColorNA);
|
||||
dglDrawLine(r - 1, t + 1, r - 1, b - 2, profile->mBorderColorNA);
|
||||
break;
|
||||
case 3:
|
||||
dglDrawLine(l, b, r, b, profile->mBevelColorHL);
|
||||
dglDrawLine(r, t, r, b - 1, profile->mBevelColorHL);
|
||||
dglDrawLine(l + 1, b - 1, r - 1, b - 1, profile->mFillColor);
|
||||
dglDrawLine(r - 1, t + 1, r - 1, b - 2, profile->mFillColor);
|
||||
dglDrawLine(l, t, l, b - 1, profile->mBorderColorNA);
|
||||
dglDrawLine(l + 1, t, r - 1, t, profile->mBorderColorNA);
|
||||
dglDrawLine(l + 1, t + 1, l + 1, b - 2, profile->mBevelColorLL);
|
||||
dglDrawLine(l + 2, t + 1, r - 2, t + 1, profile->mBevelColorLL);
|
||||
break;
|
||||
case 4:
|
||||
dglDrawLine(l, t, l, b - 1, profile->mBevelColorHL);
|
||||
dglDrawLine(l + 1, t, r, t, profile->mBevelColorHL);
|
||||
dglDrawLine(l, b, r, b, profile->mBevelColorLL);
|
||||
dglDrawLine(r, t + 1, r, b - 1, profile->mBevelColorLL);
|
||||
dglDrawLine(l + 1, b - 1, r - 1, b - 1, profile->mBorderColor);
|
||||
dglDrawLine(r - 1, t + 1, r - 1, b - 2, profile->mBorderColor);
|
||||
break;
|
||||
case 5:
|
||||
renderFilledBorder( bounds, profile );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void renderFilledBorder( RectI &bounds, GuiControlProfile *profile )
|
||||
{
|
||||
renderFilledBorder( bounds, profile->mBorderColorHL, profile->mFillColor );
|
||||
}
|
||||
|
||||
void renderFilledBorder( RectI &bounds, ColorI &borderColor, ColorI &fillColor )
|
||||
{
|
||||
S32 l = bounds.point.x, r = bounds.point.x + bounds.extent.x - 1;
|
||||
S32 t = bounds.point.y, b = bounds.point.y + bounds.extent.y - 1;
|
||||
|
||||
RectI fillBounds = bounds;
|
||||
fillBounds.inset( 1, 1 );
|
||||
dglDrawRect( bounds, borderColor );
|
||||
dglDrawRectFill( fillBounds, fillColor );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user