110gc -- DataScope Graphics Component
Copyright (C) 1997 Zoroyoshi
(Free software; see the GNU Library General Public License)
Version 1 リリースノート
このソフトウェアは、GNU Library General Public License に従い 再配布や改変が可能な無保証のフリーソフトウェアです。 詳しくは同包してあるファイル gnu-lgpl.txt を参照してください。
このグラフィックスライブラリでは、単なる矩形範囲のbitbltではなく、 領域のコピーを行なうことができます。 領域とは、複数の矩形で定義されており、 これにより、丸い形にコピーしたり、あるいは、 前面にあるウィンドウを避けて描画する、といったことができます。
110gcには、単なるコピーの他、 対象ビットマップとのandなどの各種演算コピー、 領域のパターン塗りつぶしなども行なうことができます。 また、領域同士を演算するルーチン、 可変長データである領域を扱うためのメモリ管理ルーチンも用意されています。
ただし、一般に思われるようなグラフィックライブラリの機能、 つまり、ななめの線を引いたり、円を描いたりすることはできません。 また、現在のバージョンでは、文字の出力を行なう機能もありません。
gc.h は、ソースファイルにインクルードして使います。 gc.h 自体は、他に何もインクルードしませんので、 好きなディレクトリに置くことができます。 開発キットの標準インクルードディレクトリ %THOME%\include に置くのもよい考えです。
gc.lib は、ライブラリとして、tulink のコマンドファイルに指定します。 アプリケーション開発の作業ディレクトリ、あるいは、 開発キットの標準ライブラリディレクトリ %THOME%\lib に置いてください。
gcconv.exeは、Windowsのビットマップファイルを、 110gcで用いるビットマップあるいは領域データ形式へ変換するためのツールです。 コマンドパスが通った場所に置いてください。
実行前に、開発キットの環境変数 THOME 及び THOME900 のセット、及び、 開発キットの実行プログラムへの PATH をセットしておいてください。 さらに、環境変数 DOS4G=quiet とセットしておくと、 うっとおしいメッセージが抑制されます。
gcconv自体のソースファイルはgcconvの中のgcconv.cだけですので、 MSC5.0なら、cl gcconv.c のようにして再作成して下さい。 特にMSC依存部分はありませんので (stricmp/strincmpぐらいかな?)、 他のコンパイラでも大丈夫だと思います。
再作成には、ディレクトリ potapota\ に移動し、 DS110開発キット用の環境変数を整えた後、 nmakeを実行してください。 ここで作成される.S24ファイルは、 AppLoader1.0以前でDSX形式に変換することはできません。 変換しようとするとディスク領域を食い潰すので注意してください。 これは、.ABSから.S24へ変換する際に手抜きで実行しているからです。 AppLoader1.1以降に付属の S24toDSX を使用するか、 手抜きでないように.ABS から .S24 を作ってから、S24toDSXにかけてください。
手抜きのS24ファイルでも変換できるバージョンを小田桐さんにいただきました。 こちらからダウンロードできます。
A. このソフトウェアは単独で動作するようなものじゃございません。 DS110のプログラム作成をしない人には全く無意味です。 グラフィックライブラリとは、 画面に絵を描くためのサブルーチンであり、 他のプログラムから呼び出されて動作します。 WindowsのGDIルーチン群とか、MacOSのQuickDrawとかに相当します。 んじゃそのレベルのライブラリなんだ、というと、 全くそのレベルには届いておりませぬ。
Q. gnu-lgpl.txtを読むのが面倒なんですけど、しかも英語だし。
A. 読むのが面倒だって? ほんとに面倒だよ、まったく。 ←アメリカ流ツッコミ。
110gcのソースコードを改変しないでリンクして使う限りは、
出来上がったゲーム等のドキュメントのどっかに、
「フリーライブラリの 110gc を使ってます」
ぐらいでいいんじゃないの?
作ったゲームのソースコードを公開する必要もないし、
そのゲームをシェアウェアとして販売するもよし。
Q. 確か97年8月末には完成予定じゃなかったの? 開発に時間がかかりすぎでは?
アセンブラとかで組み始めると1クロックを節約するのが なんだか楽しみになってしまって、よくないですね。 メモリを詰め直すルーチンなんて、 C言語版は動作チェックを含めて1日しかかからなかったのに、 アセンブラに書き直されたのが5日後だしね。 実はアセンブラで書いたルーチンのうち半分はスピードに関係ない部分なんだけど、 なんだか意地になってる部分も大いにあります。
Q. グラフィックライブラリと呼ぶにはあまりに低機能では?
A. いや、さ、あのね、なんかDS110もうつまんなくなってきちゃって、 まあどうでもよくなっちゃったからさ、まあ完全版のイメージはあるんだけど、 そんなの完成するの待ってたらすげー時間がかかっちゃうからさ、 まあなんとか他の人に使ってもらえる部分が出来たから公開しただけでさ、 ええ、低機能のいいわけにしか聞こえないっていうかもしれないけどさ、 あ、カップ焼きそばにお湯入れっぱなしだった、やべーやべー … ぐずぐずだよ、あーあ。
Q. その割にはあんまり速くないのでは?
A. …いいの。いいの。使ってくれる人だけ使ってくれれば。 ふぃ〜ん。
z@apps.atjp.jp (ぞろよし)までよろしくお願いします。