1 /************************************************************************** 2 * 3 * Copyright 2010 LunarG, Inc. All Rights Reserved. 4 * 5 * Permission is hereby granted, free of charge, to any person obtaining a 6 * copy of this software and associated documentation files (the 7 * "Software"), to deal in the Software without restriction, including 8 * without limitation the rights to use, copy, modify, merge, publish, 9 * distribute, sub license, and/or sell copies of the Software, and to 10 * permit persons to whom the Software is furnished to do so, subject to 11 * the following conditions: 12 * 13 * The above copyright notice and this permission notice (including the 14 * next paragraph) shall be included in all copies or substantial portions 15 * of the Software. 16 * 17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 18 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 19 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 20 * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR 21 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 22 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 23 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 24 * 25 **************************************************************************/ 26 27 #ifndef _TEXT_H 28 #define _TEXT_H 29 30 #include "vg_context.h" 31 #include "cso_cache/cso_hash.h" 32 33 struct vg_font; 34 struct vg_image; 35 struct path; 36 37 struct vg_font *font_create(VGint glyphCapacityHint); 38 void font_destroy(struct vg_font *font); 39 40 void font_set_glyph_to_path(struct vg_font *font, 41 VGuint glyphIndex, 42 struct path *path, 43 VGboolean isHinted, 44 const VGfloat glyphOrigin[2], 45 const VGfloat escapement[2]); 46 47 void font_set_glyph_to_image(struct vg_font *font, 48 VGuint glyphIndex, 49 struct vg_image *image, 50 const VGfloat glyphOrigin[2], 51 const VGfloat escapement[2]); 52 53 void font_clear_glyph(struct vg_font *font, 54 VGuint glyphIndex); 55 56 void font_draw_glyph(struct vg_font *font, 57 VGuint glyphIndex, 58 VGbitfield paintModes, 59 VGboolean allowAutoHinting); 60 61 void font_draw_glyphs(struct vg_font *font, 62 VGint glyphCount, 63 const VGuint *glyphIndices, 64 const VGfloat *adjustments_x, 65 const VGfloat *adjustments_y, 66 VGbitfield paintModes, 67 VGboolean allowAutoHinting); 68 69 VGint font_num_glyphs(struct vg_font *font); 70 71 #endif /* _TEXT_H */ 72