Commit ae944d5
Create plugin interface for the rendering classes
Changed files (3)
modifiedlibbirdfont/BirdFont.valaaddedlibbirdfont/Renderer/Drawing.valamodifiedlibbirdfont/Renderer/FontCache.vala
Diff
@@ -366,9 +366,18 @@ public class BirdFont { public static Font current_font; public static GlyphCollection current_glyph_collection; - public BirdFont () { + public static Drawing? drawing = null;+ + public BirdFont () {+ set_defaul_drawing_callbacks (); } + void set_defaul_drawing_callbacks () {+ if (drawing == null) {+ drawing = new Drawing ();+ }+ } + /** * @param arg command line arguments * @param program path@@ -716,4 +725,8 @@ public static File get_child (File folder, string file_name) { return File.new_for_path (f + n); } +public static void set_drawing_callbacks (Drawing callbacks) {+ BirdFont.drawing = callbacks;+}+ }new file mode 100644@@ -0,0 +1,50 @@+/*+ Copyright (C) 2014 Johan Mattsson++ This library is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 3 of the + License, or (at your option) any later version.++ This library is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details.+*/++namespace BirdFont {++/** Interface for creating drawing callbacks. */+[Compact]+[CCode (ref_function = "bird_font_drawing_ref", unref_function = "bird_font_drawing_unref")]+public class Drawing {+ + public int iterator_refcount = 1;+ + public Drawing () {+ }++ public void new_path (double x, double y) {+ }++ public void curve_to (double xb, double yb, double xc, double yc, double xd, double yd) {+ }++ public void close_path (double x, double y) {+ }++ public unowned Drawing @ref () {+ iterator_refcount++;+ return this;+ }+ + public void unref () {+ if (--iterator_refcount == 0) {+ this.free ();+ }+ }+ + private extern void free ();+}++}@@ -31,7 +31,7 @@ public class FontCache { bool ok; if (file_name == "") {- stderr.printf ("No file name provided.");+ stderr.printf ("No file name provided.\n"); return null; } @@ -42,7 +42,7 @@ public class FontCache { f.set_file (file_name, false); ok = f.load (); if (!ok) {- stderr.printf ("Can't load %s", file_name);+ stderr.printf ("Can't load %s\n", file_name); return null; }