ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/Deliantra-Client/Client.xs
(Generate patch)

Comparing deliantra/Deliantra-Client/Client.xs (file contents):
Revision 1.103 by root, Sun Jun 4 23:05:05 2006 UTC vs.
Revision 1.110 by root, Sat Jun 10 02:22:33 2006 UTC

85static PangoFontMap *ft2_fontmap, *cairo_fontmap; 85static PangoFontMap *ft2_fontmap, *cairo_fontmap;
86 86
87static void 87static void
88substitute_func (FcPattern *pattern, gpointer data) 88substitute_func (FcPattern *pattern, gpointer data)
89{ 89{
90 FcPatternAddBool (pattern, FC_HINTING , 1); 90 FcPatternAddBool (pattern, FC_HINTING, 1);
91#ifdef FC_HINT_STYLE
92 FcPatternAddBool (pattern, FC_HINT_STYLE, FC_HINT_FULL);
93#endif
91#ifdef _WIN32 94#ifdef _WIN32
92 FcPatternAddBool (pattern, FC_AUTOHINT, 1); 95 FcPatternAddBool (pattern, FC_AUTOHINT, 1);
93#else 96#else
94 FcPatternAddBool (pattern, FC_AUTOHINT, 0); 97 FcPatternAddBool (pattern, FC_AUTOHINT, 0);
95#endif 98#endif
418} 421}
419 422
420void 423void
421pango_init () 424pango_init ()
422 CODE: 425 CODE:
423{
424 // delayed, so it can pick up new fonts added by AddFontResourceEx 426 // delayed, so it can pick up new fonts added by AddFontResourceEx
427{
428 {
425 ft2_fontmap = pango_ft2_font_map_new (); 429 ft2_fontmap = pango_ft2_font_map_new ();
426 pango_ft2_font_map_set_default_substitute ((PangoFT2FontMap *)ft2_fontmap, substitute_func, 0, 0); 430 pango_ft2_font_map_set_default_substitute ((PangoFT2FontMap *)ft2_fontmap, substitute_func, 0, 0);
427 ft2_context = pango_ft2_font_map_create_context ((PangoFT2FontMap *)ft2_fontmap); 431 ft2_context = pango_ft2_font_map_create_context ((PangoFT2FontMap *)ft2_fontmap);
428 432 }
433 {
434 cairo_font_options_t *fopt = cairo_font_options_create ();
429 cairo_fontmap = pango_cairo_font_map_get_default (); 435 cairo_fontmap = pango_cairo_font_map_get_default ();
430 cairo_context = pango_cairo_font_map_create_context ((PangoCairoFontMap *)cairo_fontmap); 436 cairo_context = pango_cairo_font_map_create_context ((PangoCairoFontMap *)cairo_fontmap);
437#ifdef _WIN32
438 // cairo looks like shit eaten twice on windows
439 cairo_font_options_set_antialias (fopt, CAIRO_ANTIALIAS_NONE);
440#else
441 cairo_font_options_set_antialias (fopt, CAIRO_ANTIALIAS_GRAY);
442#endif
443 cairo_font_options_set_hint_style (fopt, CAIRO_HINT_STYLE_FULL);
444 cairo_font_options_set_hint_metrics (fopt, CAIRO_HINT_METRICS_ON);
445 pango_cairo_context_set_font_options (cairo_context, fopt);
446 cairo_font_options_destroy (fopt);
447 }
431} 448}
432 449
433int 450int
434SDL_Init (U32 flags = SDL_INIT_VIDEO | SDL_INIT_AUDIO) 451SDL_Init (U32 flags = SDL_INIT_VIDEO | SDL_INIT_AUDIO)
435 452
717MODULE = CFClient PACKAGE = CFClient::Layout 734MODULE = CFClient PACKAGE = CFClient::Layout
718 735
719CFClient::Layout 736CFClient::Layout
720new (SV *class, int rgba = 0) 737new (SV *class, int rgba = 0)
721 CODE: 738 CODE:
722#if _WIN32
723 //rgba = 0;//D makes text nicer, breaks TextView
724#endif
725 New (0, RETVAL, 1, struct cf_layout); 739 New (0, RETVAL, 1, struct cf_layout);
726 740
727 RETVAL->pl = pango_layout_new (rgba ? cairo_context : ft2_context); 741 RETVAL->pl = pango_layout_new (rgba ? cairo_context : ft2_context);
728 RETVAL->rgba = rgba; 742 RETVAL->rgba = rgba;
729 RETVAL->r = 1.; 743 RETVAL->r = 1.;
773 787
774SV * 788SV *
775get_text (CFClient::Layout self) 789get_text (CFClient::Layout self)
776 CODE: 790 CODE:
777 RETVAL = newSVpv (pango_layout_get_text (self->pl), 0); 791 RETVAL = newSVpv (pango_layout_get_text (self->pl), 0);
778 SvUTF8_on (RETVAL); 792 sv_utf8_decode (RETVAL);
779 OUTPUT: 793 OUTPUT:
780 RETVAL 794 RETVAL
781 795
782void 796void
783set_foreground (CFClient::Layout self, float r, float g, float b, float a = 1.) 797set_foreground (CFClient::Layout self, float r, float g, float b, float a = 1.)
990 1004
991 if (ix == 2) 1005 if (ix == 2)
992 glBlendFunc (GL_ONE, GL_ONE_MINUS_SRC_ALPHA); 1006 glBlendFunc (GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
993 else 1007 else
994 gl_BlendFuncSeparate (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, 1008 gl_BlendFuncSeparate (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA,
995 GL_ONE_MINUS_DST_ALPHA, GL_ONE); 1009 GL_ONE , GL_ONE_MINUS_SRC_ALPHA);
996 1010
997 glEnable (GL_ALPHA_TEST); 1011 glEnable (GL_ALPHA_TEST);
998 glAlphaFunc (GL_GREATER, 0.01f); 1012 glAlphaFunc (GL_GREATER, 0.01f);
999 } 1013 }
1000 1014
1557 const_iv (GL_RESCALE_NORMAL), 1571 const_iv (GL_RESCALE_NORMAL),
1558 const_iv (GL_AND), 1572 const_iv (GL_AND),
1559 const_iv (GL_ONE), 1573 const_iv (GL_ONE),
1560 const_iv (GL_ZERO), 1574 const_iv (GL_ZERO),
1561 const_iv (GL_SRC_ALPHA), 1575 const_iv (GL_SRC_ALPHA),
1562 const_iv (GL_SRC_ALPHA_SATURATE), 1576 const_iv (GL_DST_ALPHA),
1563 const_iv (GL_ONE_MINUS_SRC_ALPHA), 1577 const_iv (GL_ONE_MINUS_SRC_ALPHA),
1564 const_iv (GL_ONE_MINUS_DST_ALPHA), 1578 const_iv (GL_ONE_MINUS_DST_ALPHA),
1579 const_iv (GL_SRC_ALPHA_SATURATE),
1565 const_iv (GL_RGB), 1580 const_iv (GL_RGB),
1566 const_iv (GL_RGBA), 1581 const_iv (GL_RGBA),
1567 const_iv (GL_UNSIGNED_BYTE), 1582 const_iv (GL_UNSIGNED_BYTE),
1568 const_iv (GL_UNSIGNED_SHORT), 1583 const_iv (GL_UNSIGNED_SHORT),
1569 const_iv (GL_UNSIGNED_INT), 1584 const_iv (GL_UNSIGNED_INT),

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines