Nuclide
Software Development Kit for id Technology
font.h
1/*
2 * Copyright (c) 2016-2022 Vera Visions LLC.
3 *
4 * Permission to use, copy, modify, and distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
7 *
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
13 * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
14 * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15*/
16
26typedef enum
27{
33
36typedef enumflags
37{
38 AF_LEFT,
39 AF_TOP,
40 AF_RIGHT,
41 AF_BOTTOM
42} alignflags_t;
43#define AF_NONE 0
44#define AF_DEFAULT (AF_TOP | AF_LEFT)
45
47typedef struct
48{
49 int iID;
50 int iScaleX;
51 int iScaleY;
52 vector vecColor;
53 float flAlpha;
54 int iFlags;
55 string hexColor;
56} font_s;
57
62void Font_Load(string strFile, font_s &fntNew);
63
64/* standard drawing */
70void Font_DrawText(vector vecOrigin, string strText, font_s fnt);
77void Font_DrawText_A(vector vecOrigin, string strText, float a, font_s fnt);
84void Font_DrawText_RGB(vector vecOrigin, string strText, vector col, font_s fnt);
93void Font_DrawText_RGBA(vector vecOrigin, string strText, vector col, float a, font_s fnt);
94
95/* right aligned variants */
98void Font_DrawRText(vector vecOrigin, string strText, font_s fnt);
101void Font_DrawRText_A(vector vecOrigin, string strText, float a, font_s fnt);
104void Font_DrawRText_RGB(vector vecOrigin, string strText, vector col, font_s fnt);
107void Font_DrawRText_RGBA(vector vecOrigin, string strText, vector col, float a, font_s fnt);
108
116void Font_DrawField(vector vecOrigin, vector vecSize, string strText, font_s fnt, alignflags_t iAlignFlags);
117
126void Font_DrawFieldAtHeight(vector vecOrigin, vector vecSize, int iTextHeight, string strText, font_s fnt, alignflags_t iAlignFlags);
127
132string Font_RGBtoHex(vector vecColor);
133
139int Font_GetHeight(font_s fnt);
140
154float Font_StringWidth(string strText, bool hasColor, font_s fnt);
155
166float Font_GetID(font_s fnt);
167 // end of client
int Font_GetHeight(font_s fnt)
Returns the height of a specified font in pixels.
Definition: font.qc:214
void Font_Load(string strFile, font_s &fntNew)
Load a desired .font definition into memory.
Definition: font.qc:24
void Font_DrawField(vector vecOrigin, vector vecSize, string strText, font_s fnt, alignflags_t iAlignFlags)
Draws a textfield with line wrapping.
Definition: font.qc:175
void Font_DrawRText_A(vector vecOrigin, string strText, float a, font_s fnt)
Right-aligned variant of Font_DrawText_A.
Definition: font.qc:154
void Font_DrawText_RGBA(vector vecOrigin, string strText, vector col, float a, font_s fnt)
Draw tinted and alpha blended text on the screen at the desired position with a desired font.
Definition: font.qc:139
void Font_DrawRText_RGBA(vector vecOrigin, string strText, vector col, float a, font_s fnt)
Right-aligned variant of Font_DrawText_RGBA.
Definition: font.qc:168
void Font_DrawText_RGB(vector vecOrigin, string strText, vector col, font_s fnt)
Draw tinted text on the screen at the desired position with a desired font.
Definition: font.qc:131
drawflag_t
Flags for 2D drawing operations.
Definition: font.h:27
void Font_DrawRText(vector vecOrigin, string strText, font_s fnt)
Right-aligned variant of Font_DrawText.
Definition: font.qc:147
void Font_DrawText(vector vecOrigin, string strText, font_s fnt)
Draw text on the screen at the desired position with a desired font.
Definition: font.qc:115
float Font_StringWidth(string strText, bool hasColor, font_s fnt)
Returns the width of a series of characters in pixels.
Definition: font.qc:220
void Font_DrawText_A(vector vecOrigin, string strText, float a, font_s fnt)
Draw alpha-blended text on the screen at the desired position with a desired font.
Definition: font.qc:123
void Font_DrawFieldAtHeight(vector vecOrigin, vector vecSize, int iTextHeight, string strText, font_s fnt, alignflags_t iAlignFlags)
Draws a textfield with line wrapping at a custom text height.
Definition: font.qc:186
string Font_RGBtoHex(vector vecColor)
Converts a normalized RGB color vector to a hex color string.
Definition: font.qc:197
void Font_DrawRText_RGB(vector vecOrigin, string strText, vector col, font_s fnt)
Right-aligned variant of Font_DrawText_RGB.
Definition: font.qc:161
typedef enumflags
Defines the valid alignment flags for text fields.
Definition: font.h:37
float Font_GetID(font_s fnt)
Get the internal font id.
Definition: font.qc:18
@ DRAWFLAG_ADDITIVE
Render with an additive blend mode.
Definition: font.h:29
@ DRAWFLAG_MODULATE
Not implemented in FTEQW.
Definition: font.h:30
@ DRAWFLAG_2XMODULATE
Not implemented in FTEQW.
Definition: font.h:31
@ DRAWFLAG_NORMAL
The default.
Definition: font.h:28
Representation of a font.
Definition: api_func.h:39