AB開発
abdev 25 Comments »DirectXの扱いにようやく慣れてきました。と同時に、ABDXの3D描画部分がほぼ完成しました。ユーザーはCOMを意識することなく、すぐにでも3D対象物の生成、移動、消滅などを行うことができます。これをまとめてβ4をリリースしましょうかね…。あ、そうだ!ABDXの解説ファイルを書かねばいけないんだった(-。-
AB開発
abdev 21 Comments »ActiveBasic独自のDirectXライブラリの開発、本格的に始めました。ライブラリ名が決まっていないので、コードネームをABDXとでもしておきましょう(なんかいいタイトルないかな)。
さて、その内容なのですが、別途ABDXのライブラリを読み込んで…というものではなく、統合開発環境埋め込み型(RADツールのような感じ)にしようと考えています。RADツールのような感じといっても、視覚的な操作は一切なく、コーディングメインです…。開発は下のような手順になります。
- メニューの「新規作成」をクリックし、プロジェクトを選択する
- プロジェクト名を入力し、アプリタイプを「DirectX対応アプリ」にする
- コーディングを始める
3番のコーディングを始める時点で、ABDXを使えるようになっています。要するに、「DirectX対応アプリ」のプロジェクトを生成した時点で自動的にABDX自身のソースコードがプロジェクトの一部として生成されるわけです。これは、ウィンドウアプリのプロジェクトを作成した際に、ノーマルウィンドウ(厳密にはCallback.wbp、MakeWindow.wbp、MainWnd.sbp)が自動生成されてすぐにでもウィンドウプログラミングを行えるようになるのと同じようなものだと思ってもらってよいです。
ABDXの内容
私を含め、初心者プログラマーはCOMプログラミングが苦手です。故に、「DirectXはCOMインターフェイスをベースに…」と話が展開していく時点でイヤになってしまうことが多いです。そこで、ABDXは、COMインターフェイスを意識しないライブラリでなければなりません。目指すところはCOMインターフェイスを隠蔽し、尚かつDirectXをフルコントロールできるライブラリというところでしょうか。しかも、ABDXが提供する機能(関数)はユーザーが理解しやすいものでなければならない点も重要です。
実際にDirectGraphicsを扱ってみると、まずはIDirect3D9インターフェイスの生成を行い、それを元にIDirect3DDevice9インターフェイスを生成します。後者のIDirect3DDevice9インターフェイスを用いて、やっとDirectGraphicsが提供する描画機能を扱えることになりますが、それなら最初からIDirect3DDevice9インターフェイスを生成してくれればいいじゃんという疑問がでてきます。色々な要因があってのことでしょう。とにかく、IDirect3D9の次にIDirect3DDevice9だって決まっているのです。このように一度理解してしまえばなんのことはないのですが、ABを初めてダウンロードして腕試しにABDXで「Hello World!」でもやってみるかという状況ではかなり酷な内容でもあります。
この、COMとしてのDirectXとABユーザーとの間のワンクッションがABDXになります。ABDXが生成された時点で、初期化及び終了処理は自動的に定義されるので、すぐにでも描画部分からコーディングすることができます。しかも、そのコーディングは、命令単位で行われるため、N88BASICから移行してきたユーザー、初心者ユーザーにも理解しやすい内容であるといえます。因みに、DirectXで「Hello World!」をやりたいときは、ABDXを利用すれば非常に簡単です。
- プロジェクトを新規作成(DirectX対応アプリにチェック)
- “プロジェクト名.abp”のコーディング画面を開く
- RenderProc関数(描画を担当するコールバック関数)の1行目にdx_DrawText(x,y,”Hello World!”,D3DCOLOR_ARGB(255,255,255))と打つ
では、晩酌中ではありますが、引き続きがんばります。
学園祭には行きませんが…
abdev 学園祭には行きませんが… はコメントを受け付けていませんうちの大学も学園祭シーズンです!夏休みでもないのに、バイト&授業の無い奇跡の4連休が出来上がってしまいました(ワーイワーイ)
2004-10-27
abdev 41 Comments »コード補完機能、型の別名宣言機能の搭載作業が完了しました。あとはヘルプファイルの整備を行ってβ3にしようと思っています。開発環境や言語仕様がかたまってきたので、そろそろDirectXライブラリを本格的に作らねばなりません。ここからが本番です。
2004-10-22
abdev 2004-10-22 はコメントを受け付けていませんコード補完機能の搭載が一段落したら、次は型宣言(C言語で言うtypedefに相当するもの)の機能を追加してみようと考えているところです。この機能を追加する理由は、Win32API関数に引渡すハンドル類、その他32ビット符号無し整数型がすべてDWordとなると、ちょっとわかりづらいところにあります。この型宣言機能が搭載されれば、更にC/C++に劣らない環境に仕上がると思います(反響が怖いですが…)
とにかく今日もバイトなので、帰ってからが勝負です。
2004-10-21
abdev 32 Comments »コード補完機能、てこずっていながらも、なんとかモノになってきました。コンパイラの構文解析をまたもや作らされているような感じです。しかも、動作速度優先、最適化無しの天然ソースコード解析型です。
Recent Comments