]> git.sur5r.net Git - cc65/commitdiff
Preparations for use of vectorfonts.
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 1 Nov 2009 21:49:09 +0000 (21:49 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 1 Nov 2009 21:49:09 +0000 (21:49 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@4414 b7a2c559-68d2-44c3-8de9-860c34a00d81

include/tgi.h
include/tgi/tgi-vectorfont.h [new file with mode: 0644]

index a56272ae1d10120eb8de3bc1add6f4cb9a0572ca..c430042a5e7b66a22fe52296a1975d075a5c0f83 100644 (file)
 
 
 
-/* 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 (file)
index 0000000..7eba266
--- /dev/null
@@ -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
+
+
+