From 94d2259dda50adec350b80931d2afdcb72156fc5 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sat, 17 Aug 2013 23:27:39 -0400 Subject: Create basic font module. --- 2d/font.scm | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 2d/font.scm (limited to '2d/font.scm') diff --git a/2d/font.scm b/2d/font.scm new file mode 100644 index 0000000..f65e08a --- /dev/null +++ b/2d/font.scm @@ -0,0 +1,54 @@ +;;; guile-2d +;;; Copyright (C) 2013 David Thompson +;;; +;;; Guile-2d 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. +;;; +;;; Guile-2d 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. +;;; +;;; You should have received a copy of the GNU Lesser General Public +;;; License along with this program. If not, see +;;; . + +;;; Commentary: +;; +;; Font rendering. +;; +;;; Code: + +(define-module (2d font) + #:use-module (figl gl) + #:use-module (srfi srfi-9) + #:use-module (system foreign) + #:use-module (2d wrappers ftgl) + #:export ( + make-font + font? + font-ftgl-font + font-size + load-font + render-font)) + +;; Font objects represent an FTGL texture font at a given size. +(define-record-type + (make-font ftgl-font size) + font? + (ftgl-font font-ftgl-font) + (size font-size)) + +(define (load-font filename size) + (let ((ftgl-font (ftgl-create-texture-font filename))) + ;; Hardcoded 72 dpi for now. + (ftgl-set-font-face-size ftgl-font size 72) + (make-font ftgl-font size))) + +(define (render-font font text color alignment) + (gl-color 1 1 1) + (ftgl-render-font (font-ftgl-font font) + text + (ftgl-render-mode all))) -- cgit v1.2.3