97 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /******************************Module*Header*******************************\
 | ||
|  *
 | ||
|  * Module Name:  font.h
 | ||
|  *
 | ||
|  * Author:    Frido Garritsen
 | ||
|  *
 | ||
|  * Purpose:    Define the font cache structures.
 | ||
|  *
 | ||
|  * Copyright (c) 1996 Cirrus Logic, Inc.
 | ||
|  *
 | ||
|  * $Log:   X:/log/laguna/nt35/displays/cl546x/FONT.H  $
 | ||
| * 
 | ||
| *    Rev 1.5   20 Aug 1996 11:04:56   noelv
 | ||
| * Bugfix release from Frido 8-19-96
 | ||
| * 
 | ||
| *    Rev 1.0   14 Aug 1996 17:16:36   frido
 | ||
| * Initial revision.
 | ||
| * 
 | ||
| *    Rev 1.4   25 Jul 1996 15:53:12   bennyn
 | ||
| * 
 | ||
| * Modified for DirectDraw support
 | ||
|  * 
 | ||
|  *    Rev 1.3   05 Mar 1996 11:59:46   noelv
 | ||
|  * Frido version 19
 | ||
|  * 
 | ||
|  *    Rev 1.3   28 Feb 1996 22:39:06   frido
 | ||
|  * Removed bug in naming ulFontCountl.
 | ||
|  * 
 | ||
|  *    Rev 1.2   03 Feb 1996 12:22:20   frido
 | ||
|  * Added text clipping.
 | ||
|  * 
 | ||
|  *    Rev 1.1   25 Jan 1996 12:49:38   frido
 | ||
|  * Added font cache ID counter to FONTCACHE structure.
 | ||
|  * 
 | ||
|  *    Rev 1.0   23 Jan 1996 15:14:52   frido
 | ||
|  * Initial release.
 | ||
|  *
 | ||
| \**************************************************************************/
 | ||
| 
 | ||
| #define  BYTES_PER_TILE  128   // Number of bytes per tile line.
 | ||
| #define  LINES_PER_TILE  16    // Number of lines per tile.
 | ||
| 
 | ||
| #define CACHE_EXPAND_XPAR  0x105501F0  // DRAWBLTDEF register value.
 | ||
| 
 | ||
| // support routines
 | ||
| 
 | ||
| extern BYTE Swiz[];
 | ||
| 
 | ||
| void AddToFontCacheChain(PDEV*       ppdev,
 | ||
|                          FONTOBJ*    pfo,
 | ||
|                          PFONTCACHE  pfc);
 | ||
| 
 | ||
| VOID AllocGlyph(
 | ||
|   PFONTCACHE  pfc,    // Pointer to font cache.
 | ||
|   GLYPHBITS*  pgb,    // Pointer to glyph to cache.
 | ||
|   PGLYPHCACHE  pgc      // Pointer to glyph cache structure.
 | ||
| );
 | ||
| 
 | ||
| long GetGlyphSize(
 | ||
|   GLYPHBITS*  pgb,    // Pointer to glyph.
 | ||
|   POINTL*    pptlOrigin,  // Pointer to return origin in.
 | ||
|   DWORD*    pcSize    // Pointer to return size of glyph in.
 | ||
| );
 | ||
| 
 | ||
| BOOL AllocFontCache(
 | ||
|   PFONTCACHE  pfc,    // Pointer to font cache.
 | ||
|   long    cWidth,    // Width (in bytes) to allocate.
 | ||
|   long    cHeight,  // Height to allocate.
 | ||
|   POINTL*    ppnt    // Point to return cooridinate in.
 | ||
| );
 | ||
| 
 | ||
| VOID FontCache(
 | ||
|   PFONTCACHE  pfc,    // Pointer to font cache.
 | ||
|   STROBJ*    pstro    // Pointer to glyphs.
 | ||
| );
 | ||
| 
 | ||
| VOID ClipCache(
 | ||
|   PFONTCACHE  pfc,    // Pointer to font cache.
 | ||
|   STROBJ*    pstro,    // Pointer to glyphs.
 | ||
|   RECTL    rclBounds  // Clipping rectangle.
 | ||
| );
 | ||
| 
 | ||
| VOID DrawGlyph(
 | ||
|   PDEV*    ppdev,    // Pointer to physical device.
 | ||
|   GLYPHBITS*  pgb,    // Pointer to glyph to draw.
 | ||
|   POINTL    ptl      // Location of glyph.
 | ||
| );
 | ||
| 
 | ||
| VOID ClipGlyph(
 | ||
|   PDEV*    ppdev,    // Pointer to physical device.
 | ||
|   GLYPHBITS*  pgb,    // Pointer to glyph to draw.
 | ||
|   POINTL    ptl,    // Location of glyph.
 | ||
|   RECTL    rclBounds  // Clipping rectangle.
 | ||
| );
 | ||
| 
 | ||
| #define PACK_XY(x, y)    ((WORD)(x) | ((DWORD)(y) << 16))
 | ||
|  |