/***********************************************************************************
           Copyright 1998, NEC Electronics Inc. All rights reserved.  

Information and source code samples contained herein are provided "as-is", 
without representations or warranties, and are subject to change without notice.
NEC Electronics Inc. cannot support modifications or derivative works created from
the sample source code provided. Developers may use, reproduce, and modify portions 
or entire sections of the sample source code for the purposes of creating Dreamcast 
applications.  Developers may only commercially distribute the executable or binary 
portions of the sample source code.  Sample source code contained herein may not be 
appropriate for use under all circumstances.  Please consult Developer documentation
provided along with your Dreamcast unit for additional information and suggestions.
************************************************************************************/

#if !defined(__DRAWTEXT_H__)
#define __DRAWTEXT_H__


/* Screen printing functions */

void diagPrintf			( char *format, ... );
void diagPrintString    ( char *string );
void diagPrintStringAt  ( int x, int y, char *string );

/* State setting functions */

void diagSetBGColor( unsigned char r, unsigned char g, unsigned char b );	/* foreground color */
void diagSetFGColor( unsigned char r, unsigned char g, unsigned char b );	/* background color */
void diagUseBackBuffer();			/* Print to back buffer (standard method) */
void diagUseFrontBuffer();			/* Print to front buffer (for error messages) */
void diagUseSolidBackground();		/* block draw- foreground & background are drawn */
void diagUseTransparentBackground(); /* only foreground is drawn */
void diagSetXY( int x, int y ); 	/* relative to border */
void diagSetScreenMargin( int nCharacters );  /* bring in top,left,right, and bottom border by a # of characters; prevent's text from going into monitor's overscan area; 0 = none */
void diagSetPixelDoubling( int bDoubleX, int bDoubleY );   /* draw text as 8x8, 8x16, 16x8, or 16x16 */

void diagPreserveState();	/* store x,y,colors,mode,etc (for error reporting) */
void diagRestoreState();	/* restore previously saved state */

/* Other functions */

/* This function is used to replace the bitmap of one character in the character set */
/* Characters are 8x8 1 bit images. They are defined by the bitmask in the 8 bytes array */
void diagReplaceCharacter( char c, unsigned char character[8] );

#endif
