SPS - SDL Presentation System

概要

SDLベースのプレゼンテーションシステムです。 現時点では未完成部分も多いです

SPSの目指しているもの

移植性

SDLをベースとしたライブラリを主に使用しており、 Windows/Linux/FreeBSD/NetBSD/MacOS Xなど多くのプラットホームでの動作が 確認されています。クロスプラットホーム性も確保されています

描画はOpenGL/SDL共にサポートし、性能と消費リソースのバランスを 選択することができます。

余談ですが、SPSの初期バージョンはNetBSDで開発されました。 その後、メインプラットホームをMacOS Xに移行し、現在は coLinux内のクロスコンパイラ(mingw32)でテストしています。

ビジュアル

リソースが潤沢にある環境では可能な限り派手に、制限のある環境では 慎しく、自分のプレゼンを繰返し見ても飽きが来ないようなシステムを 目指しています。

画面遷移(トランジション)部分のモジュール性を高め、自作が手軽に できるようになっています。

汎用性

SPS自体は、プレゼンテーションのソースとなるファイルの形式を規定していません。 現在は参考実装としてHikiベースの実装を用意しています。

簡単なアダプタを用意することにより、例えば.mgpをSPSで表示といったことも 可能です。

SPSの仕組

製作当初の考えかたについては 製作当時の日誌が 参考になるかもしれません。

クイックツアー

プレゼンソース:

! 前提環境(1)
!! SDL
!!! スプライトの素
!!! 入出力
!!! イベント
!!! スレッド
!! SDL_ttf
!!! レンダリング

変換されたソース:

sps_beginpage(" 前提環境(1)")
sps_beginline()
sps_puttext(" 前提環境(1)", 0)
sps_endline()
sps_moveto(0, 1)
sps_puthbar(1)
sps_hmargin(3)
sps_moveto(0, 2)
sps_moveto(0, 2)
sps_hmargin(5)
sps_beginline()
sps_puttext("○ SDL", 1)
sps_endline()
(長いので略)

実行結果:
spsによる実行結果

ページ記述言語 = lua

前節でうっすらと触れた通り、SPSでは実際にプレゼンテーションを 記述する形式を規定しておらず、ひとつ低いレベルで描画専用指示言語を 規定しています。

SPSにおけるページ記述言語はluaとなっています。プレゼンテーションを Hikiソースとして作成した場合、 そのソースをluaソースにコンパイルし、SPSはそちらを解釈して レンダリングを行うという仕組になっています。

luaの位置付けは、TeX組版におけるDVIのようなイメージが近いかもしれません。

依存するもの

SDL / SDL_image / SDL_ttf

基本的な動作のために必須です。

LUA(liblua, liblualib)

同上

OpenGL(オプショナル)

派手な動作のために必要です。

ソース

Windowsバイナリは近日中に用意します。 あるいは↓のリンクのshinhさんのプレゼンテーションをご利用下さい。

sps-20051206.zip

src/parser.rb は TAKEUCHI Hitoshi さんによるHikiのソースの一部です。

BUGS

リンク


戻る