今回はDirect3D9用のテクスチャをメモリ上に置かれたファイルデータから読み込む方法についてのメモ書きです。 Direct3D9のテクスチャ(IDirect3DTexture9)オブジェクトを画像ファイルから読み込む関数として、D3DXCreateTextureFromFile()が用意されています。 HRESUL...
プログラミング( 2 )
Category
CocoaFrameworkのNSImageオブジェクトをメモリ上の画像ファイルデータから作成する方法についてのメモ書きです。 これが出来るようになると、例えば汎用ストリームから画像データを読み込む処理も実現できるようになります。 サポートしている画像ファイルの形式はBMPやPNG、JPEGなどです。 画像データは既に...
前回のこちらの記事でMacPortsを使ってboostをインストールする方法を紹介しました。 今回はboostのソースを一からビルドしてMacにインストールする方法について書き記したいと思います。 ■インストール 以下サイトにアクセスし、boostのソースをダウンロードします。 http://www.boost.or...
MacでC++向けライブラリのboostを使えるようにするための手順についてのメモ書きです。 ■インストール boostのインストール方法には以下の二通りあります。 ・ソースファイルをダウンロードしてビルドする ・MacPortsを使う 結論から言うと、2つ目のMacPortsを使ってインストールしたほうが劇的に楽...
boost::shared_ptrのキャストについてのメモ書きです。 ■アップキャスト これは暗黙の型変換で行えます。 class A {}; class B : public A {}; boost::shared_ptr a(new A()); boost::shared_ptr b; b = a; ■static...
COMオブジェクトをスマートポインタで管理する方法のメモ書きです。 boost::shared_ptrはnew/deleteでインスタンス生成・開放するオブジェクトに対して使えますが、 COMオブジェクトのようにReleaseでオブジェクトを開放するものに対しては使えません。 そこで、boost::intrusive_...
VisualStudioのビルドで嵌ったことについてのメモです。 VS2013を使っていて、同じ名前のソースファイルが無いにもかかわらず以下のエラーが表示されてしまうことがあります。 1>DebugSource.obj : warning LNK4042: オブジェクトの指定が重複しています。余分なものは無視されます...
WinAPIでウィンドウをクライアント領域の矩形でウィンドウの位置とサイズを変更する方法についてのメモです。 ウィンドウの位置とサイズはSetWindowPos()関数で変更します。 BOOL SetWindowPos( HWND hWnd, // ウィンドウのハンドル HWND hWndInsertAfter, //...
WindowsアプリケーションからPCMデータをリサンプリングする方法についてのメモ書きです。 リサンプリング処理はプログラマが直に書いても良いですが、出来れば楽したいのでAPIを用いて実現できないかどうかと考えていました。 結果、ACMを用いれば実現できることが分かりました。 ACM自体はMP3データのデコードでも使...
前回の記事の続きです。 アプリケーション上で保持しているPCMデータをWAVEファイルとして保存するプログラムについての解説です。 WAVEファイルの構造につきましてはこちらをご覧ください。 WAVEファイルはRIFF形式で保存され、フォーマットチャンクとデータチャンクが最低限必要になります。 まず、RIFFチャンクの...