From 944749e07f031971afd2150d206918beee5ceb3a Mon Sep 17 00:00:00 2001 From: uz Date: Sun, 1 Nov 2009 21:49:09 +0000 Subject: [PATCH] Preparations for use of vectorfonts. git-svn-id: svn://svn.cc65.org/cc65/trunk@4414 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- include/tgi.h | 27 ++++++++++++- include/tgi/tgi-vectorfont.h | 76 ++++++++++++++++++++++++++++++++++++ 2 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 include/tgi/tgi-vectorfont.h diff --git a/include/tgi.h b/include/tgi.h index a56272ae1..c430042a5 100644 --- a/include/tgi.h +++ b/include/tgi.h @@ -53,7 +53,15 @@ -/* Constants used for tgi_textstyle */ +/* Color constants */ +#define TGI_COLOR_BLACK 0 +#define TGI_COLOR_WHITE 1 + +/* Font constants for use with tgi_textstyle */ +#define TGI_FONT_BITMAP 0 +#define TGI_FONT_VECTOR 1 + +/* Direction constants for use with tgi_textstyle */ #define TGI_TEXT_HORIZONTAL 0 #define TGI_TEXT_VERTICAL 1 @@ -63,6 +71,9 @@ extern const char tgi_stddrv[]; /* The default tgi mode for a platform */ extern const unsigned char tgi_stdmode; +/* A vector font definition */ +typedef struct tgi_vectorfont tgi_vectorfont; + /*****************************************************************************/ @@ -104,6 +115,20 @@ void __fastcall__ tgi_done (void); * the driver! */ +const tgi_vectorfont* __fastcall__ tgi_load_vectorfont (const char* name); +/* Load a vector font into memory and return it. In case of errors, NULL is + * returned and an error is set, which can be retrieved using tgi_geterror. + */ + +void __fastcall__ tgi_register_vectorfont (const tgi_vectorfont* font); +/* Register a vector font for use. More than one vector font can be loaded, + * but only one can be active. This function is used to tell which one. Call + * with a NULL pointer to unregister the currently registered font. + */ + +void tgi_free_vectorfont (const tgi_vectorfont* font); +/* Free a vector font that was previously loaded. */ + unsigned char __fastcall__ tgi_geterror (void); /* Return the error code for the last operation. This will also clear the * error. diff --git a/include/tgi/tgi-vectorfont.h b/include/tgi/tgi-vectorfont.h new file mode 100644 index 000000000..7eba266c1 --- /dev/null +++ b/include/tgi/tgi-vectorfont.h @@ -0,0 +1,76 @@ +/*****************************************************************************/ +/* */ +/* tgi-vectorfont.h */ +/* */ +/* TGI vector font definitions */ +/* */ +/* */ +/* */ +/* (C) 2009, Ullrich von Bassewitz */ +/* Roemerstrasse 52 */ +/* D-70794 Filderstadt */ +/* EMail: uz@cc65.org */ +/* */ +/* */ +/* This software is provided 'as-is', without any expressed or implied */ +/* warranty. In no event will the authors be held liable for any damages */ +/* arising from the use of this software. */ +/* */ +/* Permission is granted to anyone to use this software for any purpose, */ +/* including commercial applications, and to alter it and redistribute it */ +/* freely, subject to the following restrictions: */ +/* */ +/* 1. The origin of this software must not be misrepresented; you must not */ +/* claim that you wrote the original software. If you use this software */ +/* in a product, an acknowledgment in the product documentation would be */ +/* appreciated but is not required. */ +/* 2. Altered source versions must be plainly marked as such, and must not */ +/* be misrepresented as being the original software. */ +/* 3. This notice may not be removed or altered from any source */ +/* distribution. */ +/* */ +/*****************************************************************************/ + + + +#ifndef _TGI_VECTORFONT_H +#define _TGI_VECTORFONT_H + + + +/*****************************************************************************/ +/* Data */ +/*****************************************************************************/ + + + +#define TGI_VF_FIRSTCHAR 0x20 /* First char in file */ +#define TGI_VF_LASTCHAR 0x7E /* Last char in file */ +#define TGI_VF_CCOUNT (TGI_VF_LASTCHAR - TGI_VF_FIRSTCHAR + 1) + +#define TGI_VF_VERSION 0x00 /* File version number */ + +/* TCH file header */ +struct tgi_vectorfont_header { + unsigned char magic[3]; /* "TCH" */ + unsigned char version; /* Version number */ + unsigned size; /* Font data size */ +}; + +/* Font data loaded directly from file */ +struct tgi_vectorfont { + unsigned char top; /* Height of char */ + unsigned char baseline; /* Character baseline */ + unsigned char bottom; /* Descender */ + unsigned char widths[TGI_VF_CCOUNT]; /* Char widths */ + unsigned char* chars[TGI_VF_CCOUNT]; /* Pointer to character defs */ + unsigned char vec_ops[1]; /* Actually dynamic */ +}; + + + +/* End of tgi-vectorfont.h */ +#endif + + + -- 2.39.5