diff options
author | Ole Loots <ole@monochrom.net> | 2013-09-15 01:44:04 +0200 |
---|---|---|
committer | Ole Loots <ole@monochrom.net> | 2013-10-06 01:24:14 +0200 |
commit | 2c0bcc39bdcac27668034f0c56d4919d681b3bfe (patch) | |
tree | b20b48b2f97e7b0064d44d111ae24bac38a02614 /atari/plot/fontplot.c | |
parent | 569b74817271b84f9ebb61e379db57061032ffab (diff) | |
download | netsurf-2c0bcc39bdcac27668034f0c56d4919d681b3bfe.tar.gz netsurf-2c0bcc39bdcac27668034f0c56d4919d681b3bfe.tar.bz2 |
Added plot_get/set_text_plotter and comments
Diffstat (limited to 'atari/plot/fontplot.c')
-rw-r--r-- | atari/plot/fontplot.c | 183 |
1 files changed, 99 insertions, 84 deletions
diff --git a/atari/plot/fontplot.c b/atari/plot/fontplot.c index b80965bb7..d3420b40b 100644 --- a/atari/plot/fontplot.c +++ b/atari/plot/fontplot.c @@ -1,106 +1,121 @@ -/*
- * Copyright 2010 Ole Loots <ole@monochrom.net>
- *
- * This file is part of NetSurf, http://www.netsurf-browser.org/
- *
- * NetSurf is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
- *
- * NetSurf is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
+/* + * Copyright 2010 Ole Loots <ole@monochrom.net> + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include "atari/plot/fontplot.h" -const struct s_font_driver_table_entry font_driver_table[] =
+const struct s_font_driver_table_entry font_driver_table[] = { -#ifdef WITH_VDI_FONT_DRIVER
- {"vdi", ctor_font_plotter_vdi, 0},
+#ifdef WITH_VDI_FONT_DRIVER + {"vdi", ctor_font_plotter_vdi, 0}, #endif #ifdef WITH_FREETYPE_FONT_DRIVER {"freetype", ctor_font_plotter_freetype, 0}, #endif -#ifdef WITH_INTERNAL_FONT_DRIVER
+#ifdef WITH_INTERNAL_FONT_DRIVER {"internal", ctor_font_plotter_internal, 0}, -#endif
- {(char*)NULL, NULL, 0}
+#endif + {(char*)NULL, NULL, 0} }; -void dump_font_drivers(void)
-{
- int i = 0;
- while( font_driver_table[i].name != NULL ) {
- printf("%s -> flags: %d\n",
- font_driver_table[i].name,
- font_driver_table[i].flags
- );
- i++;
- }
+void dump_font_drivers(void) +{ + int i = 0; + while( font_driver_table[i].name != NULL ) { + printf("%s -> flags: %d\n", + font_driver_table[i].name, + font_driver_table[i].flags + ); + i++; + } } -
-/*
- Create an new text plotter object
-*/
+ +/* + * Create an new text plotter object + * Available: "vdi", "freetype" + * @param vdihandle the vdi handle to act upon, + * @param name selector ID (string) of the font plotter. + * @flags flags configration flags of the plotter, + * available flags: + * FONTPLOT_FLAG_MONOGLYPH - Enable 1 bit font plotting + * @param error set to != 0 when errors occur +*/ FONT_PLOTTER new_font_plotter( int vdihandle, char * name, unsigned long flags, - int * error)
-{
- int i=0;
- int res = 0-ERR_PLOTTER_NOT_AVAILABLE;
- FONT_PLOTTER fplotter = (FONT_PLOTTER)malloc( sizeof(struct s_font_plotter) );
- if( fplotter == NULL ) {
- *error = 0-ERR_NO_MEM;
- return( NULL );
+ int * error) +{ + int i=0; + int res = 0-ERR_PLOTTER_NOT_AVAILABLE; + FONT_PLOTTER fplotter; + + /* allocate the font plotter instance: */ + fplotter = (FONT_PLOTTER)malloc( sizeof(struct s_font_plotter) ); + if( fplotter == NULL ) { + *error = 0-ERR_NO_MEM; + return( NULL ); } - memset( fplotter, 0, sizeof(FONT_PLOTTER));
- fplotter->vdi_handle = vdihandle;
+ + /* Initialize the font plotter with the requested settings: */ + memset( fplotter, 0, sizeof(FONT_PLOTTER)); + fplotter->vdi_handle = vdihandle; fplotter->name = name; - fplotter->flags = 0;
+ fplotter->flags = 0; fplotter->flags |= flags; - for( i = 0; ; i++) {
- if( font_driver_table[i].name == NULL ) {
- res = 0-ERR_PLOTTER_NOT_AVAILABLE;
- break;
- } else {
- if( strcmp(name, font_driver_table[i].name) == 0 ) {
- if( font_driver_table[i].ctor ) {
- res = font_driver_table[i].ctor( fplotter );
- *error = 0;
- } else {
- res = 0-ERR_PLOTTER_NOT_AVAILABLE;
- *error = res;
- return (NULL);
- }
- break;
- }
- }
- }
- if( res < 0 ) {
- free( fplotter );
- *error = res;
- return( NULL );
- }
- return( fplotter );
+ + /* Find the selector string in the font plotter table: */ + /* And bail out when the font plotter is not available: */ + for( i = 0; ; i++) { + if( font_driver_table[i].name == NULL ) { + res = 0-ERR_PLOTTER_NOT_AVAILABLE; + break; + } else { + if( strcmp(name, font_driver_table[i].name) == 0 ) { + if( font_driver_table[i].ctor ) { + res = font_driver_table[i].ctor( fplotter ); + *error = 0; + } else { + res = 0-ERR_PLOTTER_NOT_AVAILABLE; + *error = res; + return (NULL); + } + break; + } + } + } + if( res < 0 ) { + free( fplotter ); + *error = res; + return( NULL ); + } + return( fplotter ); } -/*
- Free an font plotter
-*/
-int delete_font_plotter(FONT_PLOTTER p)
-{
- if( p ) {
- p->dtor(p);
- free( p );
- p = NULL;
- }
- else
- return( -1 );
- return( 0 );
+/* + Free an font plotter +*/ +int delete_font_plotter(FONT_PLOTTER p) +{ + if( p ) { + p->dtor(p); + free( p ); + p = NULL; + } + else + return( -1 ); + return( 0 ); } |