gfx/graphite2/src/gr_font.cpp

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

michael@0 1 /* GRAPHITE2 LICENSING
michael@0 2
michael@0 3 Copyright 2010, SIL International
michael@0 4 All rights reserved.
michael@0 5
michael@0 6 This library is free software; you can redistribute it and/or modify
michael@0 7 it under the terms of the GNU Lesser General Public License as published
michael@0 8 by the Free Software Foundation; either version 2.1 of License, or
michael@0 9 (at your option) any later version.
michael@0 10
michael@0 11 This program is distributed in the hope that it will be useful,
michael@0 12 but WITHOUT ANY WARRANTY; without even the implied warranty of
michael@0 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
michael@0 14 Lesser General Public License for more details.
michael@0 15
michael@0 16 You should also have received a copy of the GNU Lesser General Public
michael@0 17 License along with this library in the file named "LICENSE".
michael@0 18 If not, write to the Free Software Foundation, 51 Franklin Street,
michael@0 19 Suite 500, Boston, MA 02110-1335, USA or visit their web page on the
michael@0 20 internet at http://www.fsf.org/licenses/lgpl.html.
michael@0 21
michael@0 22 Alternatively, the contents of this file may be used under the terms of the
michael@0 23 Mozilla Public License (http://mozilla.org/MPL) or the GNU General Public
michael@0 24 License, as published by the Free Software Foundation, either version 2
michael@0 25 of the License or (at your option) any later version.
michael@0 26 */
michael@0 27 #include "graphite2/Font.h"
michael@0 28 #include "inc/Font.h"
michael@0 29
michael@0 30
michael@0 31 using namespace graphite2;
michael@0 32
michael@0 33 extern "C" {
michael@0 34
michael@0 35 void gr_engine_version(int *nMajor, int *nMinor, int *nBugFix)
michael@0 36 {
michael@0 37 if (nMajor) *nMajor = GR2_VERSION_MAJOR;
michael@0 38 if (nMinor) *nMinor = GR2_VERSION_MINOR;
michael@0 39 if (nBugFix) *nBugFix = GR2_VERSION_BUGFIX;
michael@0 40 }
michael@0 41
michael@0 42 gr_font* gr_make_font(float ppm/*pixels per em*/, const gr_face *face)
michael@0 43 {
michael@0 44 return gr_make_font_with_advance_fn(ppm, 0, 0, face);
michael@0 45 }
michael@0 46
michael@0 47
michael@0 48 gr_font* gr_make_font_with_ops(float ppm/*pixels per em*/, const void* appFontHandle/*non-NULL*/, const gr_font_ops * font_ops, const gr_face * face/*needed for scaling*/)
michael@0 49 { //the appFontHandle must stay alive all the time when the gr_font is alive. When finished with the gr_font, call destroy_gr_font
michael@0 50 if (face == 0) return 0;
michael@0 51
michael@0 52 Font * const res = new Font(ppm, *face, appFontHandle, font_ops);
michael@0 53 return static_cast<gr_font*>(res);
michael@0 54 }
michael@0 55
michael@0 56 gr_font* gr_make_font_with_advance_fn(float ppm/*pixels per em*/, const void* appFontHandle/*non-NULL*/, gr_advance_fn getAdvance, const gr_face * face/*needed for scaling*/)
michael@0 57 {
michael@0 58 const gr_font_ops ops = {sizeof(gr_font_ops), getAdvance, NULL};
michael@0 59 return gr_make_font_with_ops(ppm, appFontHandle, &ops, face);
michael@0 60 }
michael@0 61
michael@0 62 void gr_font_destroy(gr_font *font)
michael@0 63 {
michael@0 64 delete font;
michael@0 65 }
michael@0 66
michael@0 67
michael@0 68 } // extern "C"
michael@0 69
michael@0 70
michael@0 71
michael@0 72

mercurial