Nuclide
Software Development Kit for id Tech
font.h
Go to the documentation of this file.
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
45typedef struct
46{
47 int iID;
48 int iScaleX;
49 int iScaleY;
50 vector vecColor;
51 float flAlpha;
52 int iFlags;
53} font_s;
54
59void Font_Load(string strFile, font_s &fntNew);
60
61/* standard drawing */
67void Font_DrawText(vector vecOrigin, string strText, font_s fnt);
74void Font_DrawText_A(vector vecOrigin, string strText, float a, font_s fnt);
81void Font_DrawText_RGB(vector vecOrigin, string strText, vector col, font_s fnt);
90void Font_DrawText_RGBA(vector vecOrigin, string strText, vector col, float a, font_s fnt);
91
92/* right aligned variants */
95void Font_DrawRText(vector vecOrigin, string strText, font_s fnt);
98void Font_DrawRText_A(vector vecOrigin, string strText, float a, font_s fnt);
101void Font_DrawRText_RGB(vector vecOrigin, string strText, vector col, font_s fnt);
104void Font_DrawRText_RGBA(vector vecOrigin, string strText, vector col, float a, font_s fnt);
105
113void Font_DrawField(vector vecOrigin, vector vecSize, string strText, font_s fnt, alignflags_t iAlignFlags);
114
123void Font_DrawFieldAtHeight(vector vecOrigin, vector vecSize, int iTextHeight, string strText, font_s fnt, alignflags_t iAlignFlags);
124
129string Font_RGBtoHex(vector vecColor);
130
136int Font_GetHeight(font_s fnt);
137
151float Font_StringWidth(string strText, bool hasColor, font_s fnt);
152
163float Font_GetID(font_s fnt);
164 // 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: font.h:46
int iFlags
Rendering flags that the font posesses.
Definition: font.h:52
int iScaleX
Suggested maximum width of a character in the font.
Definition: font.h:48
int iScaleY
Maximum height of a chracter in the font.
Definition: font.h:49
vector vecColor
Suggested default color of the font.
Definition: font.h:50
float flAlpha
Suggested default alpha of the font.
Definition: font.h:51
int iID
Internal ID, will be passed to 'drawfont' before rendering text.
Definition: font.h:47