Beveled squares for Classic GUI imitation
svn-id: r32506
This commit is contained in:
parent
5d2d184213
commit
934f4fd17f
2 changed files with 44 additions and 0 deletions
|
@ -431,6 +431,44 @@ drawSquareAlg(int x, int y, int w, int h, PixelType color, VectorRenderer::FillM
|
|||
}
|
||||
}
|
||||
|
||||
/** SQUARE ALGORITHM **/
|
||||
template<typename PixelType, typename PixelFormat>
|
||||
void VectorRendererSpec<PixelType, PixelFormat>::
|
||||
drawBevelSquareAlg(int x, int y, int w, int h, int bevel, PixelType top_color, PixelType bottom_color) {
|
||||
PixelType *ptr_left = (PixelType *)_activeSurface->getBasePtr(x, y);
|
||||
int pitch = Base::surfacePitch();
|
||||
int i, j;
|
||||
|
||||
i = bevel;
|
||||
while (i--) {
|
||||
colorFill(ptr_left, ptr_left + w, top_color);
|
||||
ptr_left += pitch;
|
||||
}
|
||||
|
||||
i = h - bevel;
|
||||
ptr_left = (PixelType *)_activeSurface->getBasePtr(x, y + bevel);
|
||||
while (i--) {
|
||||
colorFill(ptr_left, ptr_left + bevel, top_color);
|
||||
ptr_left += pitch;
|
||||
}
|
||||
|
||||
i = bevel;
|
||||
ptr_left = (PixelType *)_activeSurface->getBasePtr(x, y + h - bevel);
|
||||
while (i--) {
|
||||
colorFill(ptr_left + i, ptr_left + w, bottom_color);
|
||||
ptr_left += pitch;
|
||||
}
|
||||
|
||||
i = h - bevel;
|
||||
j = bevel;
|
||||
ptr_left = (PixelType *)_activeSurface->getBasePtr(x + w - bevel, y);
|
||||
while (i--) {
|
||||
colorFill(ptr_left + j, ptr_left + bevel, bottom_color);
|
||||
if (j > 0) j--;
|
||||
ptr_left += pitch;
|
||||
}
|
||||
}
|
||||
|
||||
/** GENERIC LINE ALGORITHM **/
|
||||
template<typename PixelType, typename PixelFormat>
|
||||
void VectorRendererSpec<PixelType,PixelFormat>::
|
||||
|
|
|
@ -146,6 +146,7 @@ public:
|
|||
virtual void drawRoundedSquare(int x, int y, int r, int w, int h) = 0;
|
||||
|
||||
virtual void drawTriangle(int x, int y, int base, int height, TriangleOrientation orient) = 0;
|
||||
virtual void drawBeveledSquare(int x, int y, int w, int h, int bevel) = 0;
|
||||
|
||||
/**
|
||||
* Gets the pixel pitch for the current drawing surface.
|
||||
|
@ -373,6 +374,10 @@ public:
|
|||
*/
|
||||
void drawTriangle(int x, int y, int base, int height, TriangleOrientation orient);
|
||||
|
||||
void drawBeveledSquare(int x, int y, int w, int h, int bevel) {
|
||||
drawBevelSquareAlg(x, y, w, h, bevel, _fgColor, _bgColor);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see VectorRenderer::setFgColor()
|
||||
*/
|
||||
|
@ -513,6 +518,7 @@ protected:
|
|||
virtual void drawRoundedSquareAlg(int x1, int y1, int r, int w, int h, PixelType color, FillMode fill_m);
|
||||
virtual void drawSquareAlg(int x, int y, int w, int h, PixelType color, FillMode fill_m);
|
||||
virtual void drawTriangleVertAlg(int x, int y, int w, int h, bool inverted, PixelType color, FillMode fill_m);
|
||||
virtual void drawBevelSquareAlg(int x, int y, int w, int h, int bevel, PixelType top_color, PixelType bottom_color);
|
||||
|
||||
/**
|
||||
* SHADOW DRAWING ALGORITHMS
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue