summaryrefslogtreecommitdiff
path: root/sly.scm
diff options
context:
space:
mode:
authorDavid Thompson <davet@gnu.org>2015-06-14 20:56:03 -0400
committerDavid Thompson <davet@gnu.org>2015-06-14 20:58:52 -0400
commitc23f81b59db98d7af4fd91a41c9b366823662083 (patch)
tree61e2bdb80e1d8e74419c813c74bef04ae44d36ff /sly.scm
parent0ec98c95075e09567ef05a84dae8f6de40920202 (diff)
Add composite (sly) module.
* sly.scm: New file. * Makefile.am (SOURCES): Add it. * sandbox.in: Use new module. * examples/common.scm: Likewise. * examples/font.scm: Likewise. * README ("Example"): Update example.
Diffstat (limited to 'sly.scm')
-rw-r--r--sly.scm60
1 files changed, 60 insertions, 0 deletions
diff --git a/sly.scm b/sly.scm
new file mode 100644
index 0000000..b92536a
--- /dev/null
+++ b/sly.scm
@@ -0,0 +1,60 @@
+;;; Sly
+;;; Copyright (C) 2015 David Thompson <davet@gnu.org>
+;;;
+;;; This program is free software: you can redistribute it and/or
+;;; modify it under the terms of the GNU General Public License as
+;;; published by the Free Software Foundation, either version 3 of the
+;;; License, or (at your option) any later version.
+;;;
+;;; This program 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
+;;; General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see
+;;; <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+;;
+;; Composite module that exports commonly used public modules.
+;;
+;;; Code:
+
+(define-module (sly)
+ #:use-module (sly window)
+ #:use-module (sly render font)
+ #:export (sly-init))
+
+(eval-when (eval load compile)
+ (begin
+ (define %public-modules
+ '((sly agenda)
+ (sly game)
+ (sly signal)
+ (sly window)
+ (sly repl)
+ (sly utils)
+ (sly render color)
+ (sly render font)
+ (sly render sprite)
+ (sly render texture)
+ (sly render model)
+ (sly render camera)
+ (sly render scene)
+ (sly input keyboard)
+ (sly input mouse)
+ (sly math)
+ (sly math rect)
+ (sly math transform)
+ (sly math vector)))
+
+ (for-each (let ((i (module-public-interface (current-module))))
+ (lambda (m)
+ (module-use! i (resolve-interface m))))
+ %public-modules)))
+
+(define* (sly-init #:key (fonts? #t))
+ "Initialize Sly's global state, such as the OpenGL context."
+ (open-window)
+ (when fonts? (enable-fonts)))