switch (RrPlanarBevelType(sur)) {
case RR_SUNKEN_OUTER:
- glBegin(GL_LINES);
- glEnd();
+ RrBevel(RrSurfaceX(sur), RrSurfaceY(sur),
+ RrSurfaceWidth(sur), RrSurfaceHeight(sur),
+ 0, 0, 0);
break;
case RR_SUNKEN_INNER:
- glBegin(GL_LINES);
- glEnd();
+ RrBevel(RrSurfaceX(sur), RrSurfaceY(sur),
+ RrSurfaceWidth(sur), RrSurfaceHeight(sur),
+ 0, 1, 0);
break;
case RR_RAISED_OUTER:
- glColor4f(1.0, 1.0, 1.0, 0.25);
- glBegin(GL_LINES);
- glVertex2i(RrSurfaceX(sur) + 1, RrSurfaceY(sur) + 1);
- glVertex2i(RrSurfaceX(sur) + 1,
- RrSurfaceY(sur) + RrSurfaceHeight(sur) - 2);
-
-
- glVertex2i(RrSurfaceX(sur) + 1,
- RrSurfaceY(sur) + RrSurfaceHeight(sur) - 2);
- glVertex2i(RrSurfaceX(sur) + RrSurfaceWidth(sur) - 2,
- RrSurfaceY(sur) + RrSurfaceHeight(sur) - 2);
-
- glColor4f(0.0, 0.0, 0.0, 0.25);
- glVertex2i(RrSurfaceX(sur) + RrSurfaceWidth(sur) - 2,
- RrSurfaceY(sur) + RrSurfaceHeight(sur) - 2);
- glVertex2i(RrSurfaceX(sur) + RrSurfaceWidth(sur) - 2,
- RrSurfaceY(sur) + 1);
-
- glVertex2i(RrSurfaceX(sur) + RrSurfaceWidth(sur) - 2,
- RrSurfaceY(sur) + 1);
- glVertex2i(RrSurfaceX(sur) + 1, RrSurfaceY(sur) + 1);
- glEnd();
+ RrBevel(RrSurfaceX(sur), RrSurfaceY(sur),
+ RrSurfaceWidth(sur), RrSurfaceHeight(sur),
+ 0, 0, 1);
break;
case RR_RAISED_INNER:
- glBegin(GL_LINES);
- glEnd();
+ RrBevel(RrSurfaceX(sur), RrSurfaceY(sur),
+ RrSurfaceWidth(sur), RrSurfaceHeight(sur),
+ 0, 1, 1);
break;
case RR_BEVEL_NONE:
break;
*w = 0;
*h = 0;
}
+
+void RrBevel(int x, int y, int w, int h, int bwidth, int inset, int raise)
+{
+ int offset = bwidth + inset;
+ h--; w--;
+
+ if (raise)
+ glColor4f(1.0, 1.0, 1.0, 0.25);
+ else
+ glColor4f(0.0, 0.0, 0.0, 0.25);
+
+ glBegin(GL_LINES);
+ glVertex2i(x + offset, y + offset);
+ glVertex2i(x + offset, y + h - offset);
+
+ glVertex2i(x + offset, y + h - offset);
+ glVertex2i(x + w - offset, y + h - offset);
+
+ if (!raise)
+ glColor4f(1.0, 1.0, 1.0, 0.25);
+ else
+ glColor4f(0.0, 0.0, 0.0, 0.25);
+
+ glVertex2i(x + w - offset, y + h - offset);
+ glVertex2i(x + w - offset, y + offset);
+
+ glVertex2i(x + w - offset, y + offset);
+ glVertex2i(x + offset, y + offset);
+ glEnd();
+}
+
void RrPlanarPaint(struct RrSurface *sur, int absx, int absy);
+void RrBevel(int x, int y, int w, int h, int bwidth, int inset, int raise);
+
void RrPlanarMinSize(struct RrSurface *sur, int *w, int *h);
#endif