5c16e9df442a6a66c91f8cbf52f7543cb9cb4517 braney Mon Dec 6 16:34:22 2021 -0800 add new function to the graphics library to put text in a box that is used by the logo function of wiggle draws diff --git src/inc/memgfx.h src/inc/memgfx.h index c7297c1..6dc76bd 100644 --- src/inc/memgfx.h +++ src/inc/memgfx.h @@ -17,51 +17,53 @@ #if defined(__sgi__) || defined(__sgi) || defined(__powerpc__) || defined(sparc) || defined(__ppc__) || defined(__s390__) || defined(__s390x__) // BIGENDIAN machines: #define MEMGFX_BIGENDIAN 1 #define MG_WHITE 0xffffffff #define MG_BLACK 0x000000ff #define MG_RED 0xff0000ff #define MG_GREEN 0x00ff00ff #define MG_BLUE 0x0000ffff #define MG_CYAN 0x00ffffff #define MG_MAGENTA 0xff00ffff #define MG_YELLOW 0xffff00ff #define MG_GRAY 0x808080ff +#define MG_BROWN 0xa000a0ff #define MAKECOLOR_32_A(r,g,b,a) (((unsigned int)a) | ((unsigned int)b<<8) | ((unsigned int)g << 16) | ((unsigned int)r << 24)) #define MAKECOLOR_32(r,g,b) (((unsigned int)0xff) | ((unsigned int)b<<8) | ((unsigned int)g << 16) | ((unsigned int)r << 24)) #define COLOR_32_RED(c) (((c)>>24)&0xff) #define COLOR_32_GREEN(c) (((c)>>16)&0xff) #define COLOR_32_BLUE(c) (((c)>>8)&0xff) #define COLOR_32_ALPHA(c) (((c))&0xff) #else // LITTLE ENDIAN machines: #define MG_WHITE 0xffffffff #define MG_BLACK 0xff000000 #define MG_RED 0xff0000ff #define MG_GREEN 0xff00ff00 #define MG_BLUE 0xffff0000 #define MG_CYAN 0xffffff00 #define MG_MAGENTA 0xffff00ff #define MG_YELLOW 0xff00ffff #define MG_GRAY 0xff808080 +#define MG_BROWN 0xff00a0a0 #define MAKECOLOR_32_A(r,g,b,a) (((unsigned int)a<<24) | ((unsigned int)b<<16) | ((unsigned int)g << 8) | (unsigned int)r) #define MAKECOLOR_32(r,g,b) (((unsigned int)0xff<<24) | ((unsigned int)b<<16) | ((unsigned int)g << 8) | (unsigned int)r) #define COLOR_32_RED(c) ((c)&0xff) #define COLOR_32_GREEN(c) (((c)>>8)&0xff) #define COLOR_32_BLUE(c) (((c)>>16)&0xff) #define COLOR_32_ALPHA(c) (((c)>>24)&0xff) #endif #define MG_WRITE_MODE_NORMAL 0 #define MG_WRITE_MODE_MULTIPLY (1 << 0) struct rgbColor { unsigned char r, g, b; @@ -273,30 +275,34 @@ MgFont *mgTimes8Font(); MgFont *mgTimes10Font(); MgFont *mgTimes12Font(); MgFont *mgTimes14Font(); MgFont *mgTimes18Font(); MgFont *mgTimes24Font(); MgFont *mgTimes34Font(); /* free Meslo font */ MgFont *mgMenloMediumFont(); void mgText(struct memGfx *mg, int x, int y, Color color, MgFont *font, char *text); /* Draw a line of text with upper left corner x,y. */ +void mgTextInBox(struct memGfx *mg, int x, int y, int width, int height, + Color color, MgFont *font, char *text); +/* Draw a line of text filling in box defined by x/y/width/height */ + void mgTextCentered(struct memGfx *mg, int x, int y, int width, int height, Color color, MgFont *font, char *text); /* Draw a line of text centered in box defined by x/y/width/height */ void mgTextRight(struct memGfx *mg, int x, int y, int width, int height, Color color, MgFont *font, char *text); /* Draw a line of text right justified in box defined by x/y/width/height */ int mgFontPixelHeight(MgFont *font); /* How high in pixels is font? */ int mgFontLineHeight(MgFont *font); /* How many pixels to next line ideally? */ int mgFontWidth(MgFont *font, char *chars, int charCount);