読者です 読者をやめる 読者になる 読者になる

S.F. Page

Programming,Music,etc...

Boost

Boost.Context はじめました - C++でゲームプログラミング

Boost.Context はじめました - C++でゲームプログラミング. Boost.Context面白そうだな。。

Boost.Context ファイルの継続的な読み込み - Faith and Brave - C++で遊ぼう

Boost.Context ファイルの継続的な読み込み - Faith and Brave - C++で遊ぼう. 敵の動きなんかにも使えるよね。継続が使えると状態変数を減らせるのでコードがすっきりするのだ。

Boost.Contextの動作確認 - Faith and Brave - C++で遊ぼう

Boost.Contextの動作確認 - Faith and Brave - C++で遊ぼう. Boost.Contextによる継続の実装例。別名コルーチンとか呼ばれるやつ。そういえばBoost.Coroutineとかどうなったんだろうね。

Bootstrap失敗

Boost 1.49.0を解凍してBootstrap.batを起動したところコンパイルエラー。ビルドツールの作成に失敗。VC++11にはまだ対応してないのかな。とりあえずビルドはいいか。VC++11の標準ライブラリは充実しているし、Boostもヘッダのみで使用できるものも多いしね。

まずはBoostをビルドしてみるか

Windows 8上でまずはBoostをビルドしてみることにする。

Boost 1.49.0のビルド完了

Boost 1.49.0のビルド完了。今作っているWindowsラッパーでビルドできるかテスト。正常に完了した。 続いて座標変換のところを整理して頭に入れてコードを修正していこうか。。

Boost Version 1.49.0

Version 1.49.0. 出た、1.49.0。しかしatomicやlockfreeは入ってなかったか。次のバージョンかな。でもheapはちょっと興味をそそられるライブラリ名だ。少し覗いてみようか。。

Boost.Geomertyを使ってみたい。

Boost.Geometryって良いライブラリらしい。ぜひ使ってみたい!ウィンドウの矩形同士の重なり部分の判定とかとても簡単にできそうなので。まあでも矩形同士程度ならそんな難しくないんだけれどね。。

Boost.ScopeExit

Boost.ScopeExitの解説スライド。昨日のBoost.勉強会 #8大阪でのもの。ちょっと使ってみようかなと思った。 Scope Exit View more presentations from Akira Takahashi

Boost

久しぶりにBoostの一覧を見たけれどいやー巨大ですな。Boost Poolとか存在すら知らなかった。

ちょっといろいろおさらいとか。考え事とか。

シーケンスエディタは本格的にUIを作るのでUI周りのAPIのおさらいとかをBoost MSMの学習と並行して行なっている。High DPIとか、DirectWrite、Direct2Dなど。歳をとるとほうっておくとどんどん脳から情報が失われていくので維持が本当に大変だ。 画面イメー…

Boost MSMをどう実装に持っていくかを考えている

サンプルコードはなんとか読めるようになったけれど、これをどう実際のコードに持っていくかを考えている。状態を値から型で保持するので(メタだから当たり前だけど)考え方を変えなくてはいけない。今の既存のコードは変数で状態を持っていて、スレッドセ…

Boost.MSMの使い方

Boost Meta State Machine (MSM)のドキュメントを読んだけれど英語のせいもあってかピンとこない。日本語のドキュメントを探すとすごい深堀りしている方を発見。その中の資料がすごくわかりやすかった。 Boost勉強会#6札幌の発表資料事前公開 上記ドキュメン…

Boost.StateChartとMeta State Machine

シーケンスエディタの状態遷移を書くのにBoost.StateChartが使えないか試してみようと思う。 またMeta State Machineとかもあるようでなんか面白そうだが、私に理解できるだろうか。

Boostライブラリの中で使っているもの

Boostライブラリの中で使っているもの。なにげに色々使っている。やっぱり便利だから。私は完全に利用者の立場で、中身についてはよくわからない。 Format 一番よく使う。これを使うようになってprintf系の関数はまったく使わなくなってしまった。formatした…

Boost.Atomicが採択されていた。

Boost.Atomicが採択されていた。このライブラリはC++11のatomicライブラリのエミュレーション・ライブラリである。Boost.Lockfreeライブラリの内部実装で使われているもの。

Boost 1.48.0リリース

そういえばBoostに線形代数計算ライブラリ(uBlas)があったなと思ってドキュメントをチラ見するとバージョンがVersion 1.48.0に上がっていることに気がついた。 「Faith and Brave - C++で遊ぼう」→「boost.jp」でリリースノートをチェック。早速ビルドするか…

設定内容を保存する

設定ダイアログの内容をファイルに保存して、起動時に読み込み反映するコードを追加した。 保存のコードはBoost.Serializationを使用して実装した。以前このライブラリを使っていたのだけれどすっかり忘れてしまっていたので思い出しながらの実装。デストラ…

非同期ファイル読み込みにとりかかろうとしている

ファイル読み込み部分を非同期バージョンに変更しようとした矢先のこの暑さ。朝から朦朧としている。年寄りにはきついのだ、暑さは。 wasapi共有モードでは異なるさまざまなサンプル・フォーマットへの対応が楽にできそうな感じがしたのだがそうでもないこと…

イベントと条件変数

メインスレッドからファイル読み込みスレッドとWASAPI出力スレッドを起動するようにした。単純にスレッドを起動しただけで中身は実装し始めたところだ。 ソースコード メインスレッドから起動したスレッドは初期化したらすぐに休眠し、メインスレッドから指…

Boost.Threadを復習中

Boost.Threadを使ってファイル読み込みスレッドをWASAPI出力スレッドを作ろうとしているところ。 少し前に私が使っていたころとメソッドが変わっていたりしているので、そのあたりを復習がてら勉強している。 スレッドは起動時に立ち上げて眠らせておき、必…

boost.lockfreeのring_bufferを使ってみることにする。

boost.lockfreeのexamplesを見るとなんとなく使い方がわかったので、スレッド間データ共有用のバッファとしてring_bufferを使うことにした。 ring_bufferはenqueueで値を入れ、dequeueで値を取り出す。この値をメモリブロックへのポインタとする。ストレージ…

Boost.Lockfree

Boost.Lockfreeのドキュメントを少し覗いてみた。 ドキュメントはかなりしょぼい。そういえばFaith and Braveさんのブログの「Boost.Lockfreeが採択されました」にドキュメントの整備がこのライブラリの課題だと書いてあったな。 リファレンスのドキュメント…

準備終わり。

コード整理してスケルトンにする作業は終わり。以前書いたDirect3D11のお試しコードをコメントアウトしただけだが。コメントアウトするかコードそのものを削除するか迷ったがコメントアウトすることにした。非同期の読み込み~wasapiの再生ができたらそれを…

Boost 1.46.1のビルド

Boost 1.46.1のX64版のビルドを行った。特にいつもとかわりないが作業ログを書いておくことにした。 Boost 1.46.1のダウンロード Boostのサイトから1.46.1をダウンロードして解凍する。 Boost 1.46.1のインストール 続いてMicrosoft SDK 7.1 Command Prompt…

Boost.GILのサンプルをVC2010 x64 でビルドしてみる。

Boost.GILのサンプルをVC2010 x64で動かそうしているがうまく動かない。 libjpeg,libpngのx64ビルド自体は少しハマったけれどうまくいった。 Boost.GILのサンプルgil1.cppをx64でビルドするところまではうまくいくけれど、pngデータを書きだす部分(libpng内…

Boost 1.44.0 - ビルド完了

Boost 1.44.0のビルド完了。 すこし試してみるかな。。

Boost 1.44.0 - ビルド

Boost 1.44.0をダウンロードした。 時間がかかると思っていたけど、ソースコードは40MBくらいしかないのでうちの遅い回線(下り640Kbps)でも10分程度でダウンロードできた。サイズを1桁思い違いをしてました。。 あとはいつもの通りにビルド。 1.ソースコ…

Boost 1.44.0

ようやくダウンロード開始。 すでにVC2010でBoostをビルドしている人を発見。 とりあえずビルドしてみるか。。 光回線の工事進捗連絡は来ない。。やっぱり9月中旬ごろかな。。

Boost 1.44.0

コンパイルしてみたいけど時間がない。。 でもfilesystemが日本語対応したっていうのが気になる。パスをunicodeで渡せるようになったのかな? ちょっと試してみたいけどその前にコンパイルしないと。。 でも今自宅の回線がとても遅くなっていてダウンロード…

Boost 1.44.0

おお、Boost1.44.0がリリースされている! http://www.boost.org/users/download/version_1_44_0 Boost.ASIOやら正規表現を使ってリンク追跡クライアントソフトを作ってみたいと思っている今日この頃である。 最新PCパーツはTWOTOP

boost 1.43.0

Boostライブラリ1.43.0がリリースされていた。 http://www.boost.org/users/news/version_1_43_0 今週末あたりビルドするかな。。

boost1.42.0

boost 1.42.0がリリースされていた。 http://www.boost.org/users/download/version_1_42_0 uuidが追加されたようだ。

Coroutine(4)

Boost.Coroutineの実装を見つつ、得られた成果を自分で作ったFiberコードに反映しようとしているが、なかなか思うようにはかどらない。 読むにあたっての前提知識が不足しているから。例えばmplやBOOST PPなど。あとboost.functionの実装についても知ってお…

Coroutine(2)

Coroutineへの探求は少し横道をそれながらもつづいている。 昨日作ったfiberサンプルに少し手を入れてみるとかしながら、Boost.Coroutineのコードをにらめっこしている最中。 // FiberTest.cpp // #define _WIN32_WINNT 0x0600 #define _CRTDBG_MAP_ALLOC #i…

Fibers

ちょっとFiberについてテストをしてみた。 fiberルーチン上でHeapを確保したらどうなるか? // FiberTest.cpp // #define _WIN32_WINNT 0x0600 #include <iostream> #include <exception> #include <memory> #include <string> #include <map> #include <locale> #include <fstream> #include <algorithm> #include <functional> #include </functional></algorithm></fstream></locale></map></string></memory></exception></iostream>

Coroutine(1)

Boost.Coroutineのソースコード読みを行っているが、なかなか骨が折れるのである。メタプログラミング全開というわけではないけども、そこそこメタプロなライブラリなので、私にはちとキツイ。 しかしここでブレークスルーしておかないと、今後の私の人生が…

Boost.asio

気がついたらBoost.asioでWindowsの非同期ファイルI/Oがサポートされていた(最初から?)。 http://www.boost.org/doc/libs/1_40_0/doc/html/boost_asio/overview/windows/stream_handle.html

Boost.Assignment

ptr_vectorの初期化にBoost.Assignemntを使ってみようとして午前中四苦八苦していた。 こうしたかったのだ。 boost::ptr_vector<WAVEFORMATEX> WASAPI::impl::wave_formats_ = ptr_list_of</waveformatex>

Boost 1.40.0

Boost 1.40.0が2009年8月にリリースされていたのを知った。 http://www.boost.org/users/news/version_1_40_0 早速バージョンアップを行った。

Boost 1.38

Boost 1.38.0がリリースされていた。。。 またビルドしなきゃ。。。 昔よく見ていたLet's Boostも中身が更新されていた。 http://www.kmonos.net/alang/boost/

Boost 1.37.0

Boost 1.37.0をビルド。 とりあえず、--build-type=completeでビルドしてみた。 下記のような手順でビルドしてみたが、いまいち自信なし。 (1)user-config.jamに using mpi ; を追加 (2)Visual Studio 2008コマンドプロンプトで下記コマンドを実行し、…

Boost.Thread

1.34と比較して、かなり変わっているような気がする。 http://www.boost.org/doc/libs/1_35_0/doc/html/thread/changes.html

Boost Assignment

コンテナの値設定を楽にするライブラリ。 http://www.boost.org/libs/assign/doc/index.html#tutorial

Boost 1.3.4

ptr_containerもシリアライズできるようになっていた。 しかし、nvp_wrapperをかませていないので、xml_oarchiveでアーカイブしようとするとコンパイルエラーになってしまう。 とりあえずライブラリのコードを修正しておいた。 http://www.boost.org/libs/pt…

Boost 1.3.4 リリース

Boost 1.3.4 がリリースされていたので、現在ビルド中。 ビルド方法が少し簡単になっていた。 <自分が使っている範囲でわかったこと> ・ptr_map::iteratorが指す個々の値が、keyと値のpairになっていた。 これは従来のstd::mapと同じインターフェースにす…

boost::pimpl_ptr

pimplイディオムの実装をサポートするライブラリ。 ·pimplイディオムに必要な操作を自動提供 ·pimplイディオムのメモリ管理の自動化 ·pimplクラスのディープコピー ·pimplクラスのディープコンペア ·ポリシーを通じて拡張可能

Boost Vault Files

昨日はBoost Valut Filesを覗いていた。 http://boost-consulting.com/vault/

Boost Iostream (4)

2.1.3. Writing a container_sinkの勉強メモ ・書き込みのみを行うものはSinkと呼ぶ。 ・Sinkクラス中には下記の型定義を行う。 -キャラクタタイプを示す、char_type。 -デバイスがサポートするI/O操作を示すcategory 例)typedef sink_tag category;//書…

Boost.Iostream(3)

2.1.2. Writing a container_sourceの勉強メモ http://www.boost.org/libs/iostreams/doc/tutorial/container_source.html #include <iosfwd> // streamsize #include <boost/iostreams/categories.hpp> // source_tag namespace io = boost::iostreams; class my_source { public: //キャラクタタイ</boost/iostreams/categories.hpp></iosfwd>…