Crusius:

On Mon, 06 Nov 2000, [EMAIL PROTECTED] wrote:

> first bringing the happines of anti-aliased truetype/postscript fonts

Maybe you would like to try my libft for this.  I understand you probably have
your own subroutines but nevertheless you may like it.  It might serve GGI well
as a whole to get your feedback.

 -- 
Lee Brown Jr.
[EMAIL PROTECTED]

/*
        libft
*/
#ifndef _GGI_FT_H
#define _GGI_FT_H

#include <freetype/freetype.h>
#include <freetype/ftglyph.h>
#include <ggi/ggi.h>
#include "ft_types.h"

__BEGIN_DECLS

/*
        Initialization
*/
int             ftInit(void);
void    ftExit(void);

/*
        Attaching
*/
int ftAttach(ggi_visual_t vis);
int ftDetach(ggi_visual_t vis);

/*
        Constructor
*/
ft_font_t       ftInitFont(FT_Face ftface);
void            ftRemoveFont(ft_font_t font);

/*
        util
*/
uint32* ftCharS2GlyphS(ft_font_t font, const char* string, size_t n);

/*
        Caching
*/
int             ftFillFontCache(ft_font_t font);
void    ftClearFontCache(ft_font_t font);

int             ftCacheChar(ft_font_t font, uint32 char_code);
int             ftCacheGlyph(ft_font_t font, uint32 index);
int             ftCacheCharS(ft_font_t font, const char* string);
int             ftCacheGlyphS(ft_font_t font, const uint32* indices, size_t num);

/*
        Printing
*/
ggi_pixel* ftMapColors(ggi_visual_t vis, ggi_color* fg, ggi_color* bg);

int ftPrintChar(ggi_visual_t vis, ft_font_t font, uint32 char_code, sint32 x, sint32 
y,const ggi_pixel* pix);
int ftPrintGlyph(ggi_visual_t vis, ft_font_t font, uint32 index, sint32 x, sint32 y, 
const ggi_pixel* pix);
int ftPrintCharS(ggi_visual_t vis, ft_font_t font, const char* string, sint32 x, 
sint32 y, const ggi_pixel* pix);
int ftPrintGlyphS(ggi_visual_t vis, ft_font_t font, const uint32* indices, size_t num, 
sint32 x, sint32 y, const ggi_pixel* pix);

/*
        Dimensions
*/
int ftCharDim(ft_font_t font, uint32 char_code, ft_font_dim* dim);
int ftGlyphDim(ft_font_t font, uint32 index, ft_font_dim* dim);
int ftCharSDim(ft_font_t font, const char* string, ft_font_dim* dim);
int ftGlyphSDim(ft_font_t font, const uint32* indices, size_t num, ft_font_dim* dim);

/*
        Advances
*/
int ftCharAdv(ft_font_t font, uint32 char_code, sint32* adv);
int ftGlyphAdv(ft_font_t font, uint32 index, sint32* adv);
int ftCharSAdv(ft_font_t font, const char* string, sint32* adv);
int ftGlyphSAdv(ft_font_t font, const uint32* indices, size_t num, sint32* adv);

/*
        Bitmaps
*/
int ftCharBitmap(ft_font_t font, uint32 char_code, void* buf);
int ftGlyphBitmap(ft_font_t font, uint32 index, void* buf);
int ftCharSBitmap(ft_font_t font, const char* string, void* buf);
int ftGlyphSBitmap(ft_font_t font, const uint32* indices, size_t num, void* buf);

__END_DECLS

#endif

Reply via email to