今日も陽気にアレグロ技研

allegorgikenの気が向いた時の日記です

D言語

OpenVGを使ってみよう

OpenVGとは、OpenGLの2D版みたいなもんです。 PSP用のゲーム『パタポン2』のベクタグラフィックの美しさにあこがれて、 フリーゲームでもベクタグラフィックが使いたいなと思ったので、D言語でOpenVGを使ってみよう。 という企画を立ててみた。日本語のド…

ベータ版公開

以前から書いていた簡易的なオーディオライブラリ「SaintSonic」を公開します。 簡単な機能を紹介すると、・Wav, Oggの再生が可能 ・任意のループが可能 ・クロスフェードか可能 ・D言語、C言語、C++から利用可能 ・Windows専用と今のところサウンドノベル・…

D用のビルドツール

SaintSonicはC用のラッパー関数もある程度そろったので、 公開準備をしていたのですが、readmeとか真面目にかくと かなりのめんどくせえ作業でありますね。なのでとりあえず自分用に作っていたD用のビルドツールに 真面目に書いたreadmeを結わえて公開いたし…

static this()

D言語には一つのモジュール(ファイル)及びクラスごとに、 this()よりも先に呼ばれる静的コンストラクタなるものがある。今回ライブラリをLIBファイルにした後に、そいつをリンクしてビルドすると、 どうも静的コンストラクタが呼ばれていない部分がある模様…

マルチスレッド

マルチスレッドのバグは直りました。 Dのスレッドにもなんの問題もなかったみたいです。マルチスレッドをベースにオーディオエンジンを作るとなると、 若干ながらクライアントとの同期を取らなければならない部分が あるみたい。 オーディオのロードとかが…

今思えばSaintSonic内でメッセージループを備えていなかったので、 マルチスレッドでメッセージループをするようにしてみた。 D言語のstd.threadとWinAPIでのスレッド処理と 両方作ってみたところなぜかD版の挙動がおかしい。結局WinAPIを使って解決している…

オーディオライブラリ

とあるプロジェクトのためにオーディオライブラリを製作中。 オーディオライブラリといえば既存のものでも結構多いですけどね。欲しかったのは Ogg、Wavが再生可能 ループポイントを設定可能(シークだけでもOK) クロスフェードが可能(ボリューム調整だけ…