--- deliantra/Deliantra-Client/Client.xs 2006/04/09 00:06:51 1.6 +++ deliantra/Deliantra-Client/Client.xs 2006/04/10 19:34:03 1.11 @@ -8,20 +8,32 @@ #include #include +#include #include +#include +#include +#include +#include + static PangoContext *context; static PangoFontMap *fontmap; MODULE = Crossfire::Client PACKAGE = Crossfire::Client +PROTOTYPES: ENABLE + BOOT: { fontmap = pango_ft2_font_map_new (); - context = pango_context_new (); - pango_context_set_font_map (context, fontmap); + context = pango_ft2_font_map_create_context ((PangoFT2FontMap *)fontmap); } +void +lowdelay (int fd, int val = 1) + CODE: + setsockopt (fd, IPPROTO_TCP, TCP_NODELAY, &val, sizeof (val)); + char * gl_version () CODE: @@ -37,7 +49,19 @@ RETVAL void -font_render (SV *text_, int height) +set_font (char *file) + CODE: +{ + int count; + FcPattern *pattern = FcFreeTypeQuery ((const FcChar8 *)file, 0, 0, &count); + FcConfigAppFontAddFile (0, (const FcChar8 *)file); /* no idea wether this is required */ + PangoFontDescription *font = pango_fc_font_description_from_pattern (pattern, 0); + FcPatternDestroy (pattern); + pango_context_set_font_description (context, font); +} + +void +font_render (SV *text_, int height = 10) PPCODE: { STRLEN textlen; @@ -47,7 +71,7 @@ FT_Bitmap bitmap; PangoLayout *layout; PangoFontDescription *font = pango_context_get_font_description (context); - pango_font_description_set_absolute_size (font, 40 * PANGO_SCALE); + pango_font_description_set_absolute_size (font, height * PANGO_SCALE); layout = pango_layout_new (context); pango_layout_set_markup (layout, text, textlen); @@ -78,3 +102,12 @@ PUSHs (sv_2mortal (newSViv (h))); PUSHs (sv_2mortal (retval)); } + +MODULE = Crossfire::Client PACKAGE = Crossfire::Client::Texture + +void +texture_quad (SV *self, double x0, double y0, double w, double h) + CODE: +{ + //glBegin +}