]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - draw.h
allow to freely place the chat panel when con_chatrect is 1 (squashed commit of fruit...
[xonotic/darkplaces.git] / draw.h
diff --git a/draw.h b/draw.h
index e1092f5a2578c2057bb9dd3dbab746af121536c1..2c9ceb31cac658d025630dc253f0f3479457aaac 100644 (file)
--- a/draw.h
+++ b/draw.h
@@ -92,6 +92,7 @@ DRAWFLAG_MIPMAP = 0x100 // ONLY R_BeginPolygon()
 
 typedef struct ft2_settings_s
 {
+       float scale, voffset;
        // cvar parameters (only read on loadfont command)
        int antialias, hinting;
        float outline, blur, shadowx, shadowy, shadowz;
@@ -104,7 +105,6 @@ typedef struct dp_font_s
        rtexture_t *tex;
        float width_of[256]; // width_of[0] == max width of any char; 1.0f is base width (1/16 of texture width); therefore, all widths have to be <= 1 (does not include scale)
        float maxwidth; // precalculated max width of the font (includes scale)
-       float scale; // scales the font (without changing line height!)
        char texpath[MAX_QPATH];
        char title[MAX_QPATH];
 
@@ -118,18 +118,26 @@ typedef struct dp_font_s
 }
 dp_font_t;
 
-#define MAX_FONTS 16
-extern dp_font_t dp_fonts[MAX_FONTS];
-#define FONT_DEFAULT     (&dp_fonts[0]) // should be fixed width
-#define FONT_CONSOLE     (&dp_fonts[1]) // REALLY should be fixed width (ls!)
-#define FONT_SBAR        (&dp_fonts[2]) // must be fixed width
-#define FONT_NOTIFY      (&dp_fonts[3]) // free
-#define FONT_CHAT        (&dp_fonts[4]) // free
-#define FONT_CENTERPRINT (&dp_fonts[5]) // free
-#define FONT_INFOBAR     (&dp_fonts[6]) // free
-#define FONT_MENU        (&dp_fonts[7]) // should be fixed width
-#define FONT_USER        (&dp_fonts[8]) // userdefined fonts
-#define MAX_USERFONTS (MAX_FONTS - (FONT_USER - dp_fonts))
+typedef struct dp_fonts_s
+{
+       dp_font_t *f;
+       int maxsize;
+}
+dp_fonts_t;
+extern dp_fonts_t dp_fonts;
+
+#define MAX_FONTS         16 // fonts at the start
+#define FONTS_EXPAND       8  // fonts grow when no free slots
+#define FONT_DEFAULT     (&dp_fonts.f[0]) // should be fixed width
+#define FONT_CONSOLE     (&dp_fonts.f[1]) // REALLY should be fixed width (ls!)
+#define FONT_SBAR        (&dp_fonts.f[2]) // must be fixed width
+#define FONT_NOTIFY      (&dp_fonts.f[3]) // free
+#define FONT_CHAT        (&dp_fonts.f[4]) // free
+#define FONT_CENTERPRINT (&dp_fonts.f[5]) // free
+#define FONT_INFOBAR     (&dp_fonts.f[6]) // free
+#define FONT_MENU        (&dp_fonts.f[7]) // should be fixed width
+#define FONT_USER(i)     (&dp_fonts.f[8+i]) // userdefined fonts
+#define MAX_USERFONTS    (dp_fonts.maxsize - 8)
 
 // shared color tag printing constants
 #define STRING_COLOR_TAG                       '^'