2010-01-01から1年間の記事一覧

bufferstreamの話

前回のvectorstreamと同じで、interprocessのstreamsのもう1つ、bufferstreamの話。 bufferstream? "buffer"については皆さんが普段思ってる通りで良いと思います。何かしらのデータを溜めておくための領域。bufferstreamは固定サイズバッファにデータを読…

vectorstreamの話

今日はinterprocessのstreamsの話。vector/bufferstreamと2つあるのですが、今回はvectorstreamだけ。 vectorの定義 interprocessの当該章では"vectorとは要素が連続しているコンテナである"ようです(意訳かも)。std::vectorは言わずもがなですが、std::basi…

offset_ptrの話

最近のネタ4作目ぐらい。Boost.interprocessの様々なクラス内ではoffset_ptrなるスマートポインタが使用されています。よく見るのはoffset_ptrでtypedefしてvoid_pointerなんてされてるところが多いようです。offset_ptrで何ができるかというとずばり、"ポイ…

SQLite3 インストールメモ(Windows&VisualStudio)

コマンドライン実行はいらないのでCとC++に組み込んで使えればとりあえずよしとしてインストールする。1.SQLite公式ページのダウンロード SQLite Download Page に行き、Source Codeからsqlite-amalgamation-.zipというファイルとBibaries for Windowsのとこ…

しばらくboost.interprocessネタで書いていこう。

前回boost.interprocessでオブジェクトをファイル上に作って遊びましたが、どうも配列も作成できるらしいです。こんな感じで。 static const size_t N = 5; // N 個の配列として作成 Type* arr = mfile.construct<Type>("Name")[N](Allocator); // proxyを束縛して</type>…

boost.interprocessさん凄いです

この記事は C++ Advent Calendar 2010 の参加記事です。詳細は以下。 C++ Advent Calendar jp 2010 : ATND 今日はクリスマスですし、みなさんお忙しいと思いますし、それに僕はあんまり変態的な事を書けませんので…。*1 そんな中であまりTwitter上であまり話…

managed_mapped_fileの方が楽でした

前回記事の続きで、boost.interprocessのmanagedの方が楽でしたよ、という話。 Class template basic_managed_mapped_file - 1.45.0 作成されてなかったら指定サイズで作成してしまう、とかmapped_regionを作らずともそれがそれ自体がマッピングオブジェクト…

memory mapped filesについて

最近なんか抽象的な事しか書いてない気がしてきたのでboostの奴でちょろっと。 boost.interprocessってあんまりTwitter上でネタにならないような気がしますね*1 boost.interprocessにはmemory mapped filesという機能があります。簡単に言うとファイルに対し…

全ゲ連第8回だそうです

講演者募集 - 第08回 全日本学生ゲーム開発者連合(全ゲ連)交流会 - 全日本学生ゲーム開発者連合(全ゲ連) 公式サイト2月12日にやるそうで、僕は2回目の参加になりそうなのですが、高専カンファinサレジオ2と被ってやばいどうしようって感じです。 参加す…

shared_ptrを使って通信した方が楽

ストリーミング再生でスレッドを回す必要があったりなど、まあスレッドを使わねばならない場合というのは比較的多いと思います。 僕はWinAPIなどの面倒なスレッドライブラリを使う気力がまったく持って起きませんのでboost.Threadを使うわけですが、Mutexを…

ネタがない

C++

最近は早く寝て早く起きる(大体朝4時ぐらいに起きる)のが良い感じです。 睡眠時間も多いし、健康的です。後はランニングとか運動しましょうね。 多宗教だけどゲッタをconstメソッドにするぐらいは守ってほしい この間多宗教だからうんぬんかんぬん言ってた…

明日は東京都議会ですね。

C++

前回の記事内積と外積だって一応operatorで計算したいですよ - krustf の雑記がアレな反響を頂いたような気がしますが、私は別に面白がってやってるだけなので自己責任で使ってくださいね? グラムシュミットの直交化法をC++で書いてみた。 今日講義を受けて…

内積と外積だって一応operatorで計算したいですよ

C++

と思ってみると既に ベクトルの内積と外積 - 名古屋313の日記 にあるのですが。 operator*だけでやってるとどっちだかぱっと見て分かりづらいという話で。 今回は内積と外積だけに絞ってみると、外積はoperator*で良いです。内積をoperator,でできるよう…

HNKスペシャル『ゲーム革命』見ました

一応、大学のサークルでゲーム作ってる身なので最初っから拝見させていただきました。 アメリカの平均的なゲームプレイ者(購入者だっけ?)が40歳程度には驚きました。見ている途中にもつぶやきましたが、日本じゃ多分20歳ぐらいだと思ってます(調べてない…

非常にまずい

C++

C++ Advent Calender 2010に参加して19日目に僕でその日ってクリスマスと気付いて嬉しいような悲しいような。兎にも角にも現在5日目ですが、みんなネタが濃すぎて場違いな気がしてきて非常に危機感を感じておりますどうも。 『今のうちに書けるなら書いとこ…

仕様書とか書ける気がしない

ここ最近大学サークル内でのゲーム開発企画でなぜかプログラム班長に選ばれてしまい、プログラマ向け仕様書やら最低限のコーディング規約やらその他プログラマの為の環境整備やらで忙殺されてます。おかげでNornを書く時間がなくて大変な目に…orz 一番困るの…

Luabindビルドしましょうか(Windows用)

Luabindは使っていたんですが、「やっぱりビルドしなきゃダメだろ」と思いやってみることに。今回の話はWindows上で、D:\Systemの中にLuaとかLuabindとかBoostが入っていることにしてます。 今回はDLL版のライブラリはビルドしません(別にいらないと思った)…

Voiceは何ができるかについてのメモ

各々のVoiceは何ができるのか、みたいなのはわかりますが、全般的にどういった機能があるのか。 というのを最近真面目に調べたのでメモ的な気分を含ませて書きます。そういえば、 krustf:うわー書いてあった。 - 「XAudio2 グラフ内のオーディオ データは、…

XAPOのインターフェイスを自動生成したい

というのも、XAPOの処理は基本的なものであればXAPO::Processをオーバーライドしてちょっとした操作をするだけだからです。 それ以外のメソッドはCXAPOBaseなどが用意する基本的な処理だけで十分事足ります。 // ゲイン値を半分にするだけ class gain_cut : …

音響処理(というかその手の計算)が得意な人募集したいレベル

現在XAPO APIの実装をしてます。 実装自体は比較的楽で、各メソッドの説明の通りの動作をするだけで良かった。 後はパラメータをスレッドセーフにするための処理をどう記述するとかもあるんですが、それよりも重大な事が。私が音響処理にそこまで精通してな…

スレッドを使わないでストリーミング再生 - XAudio2

ついでに書きます。スレッドを何とか使わない方向でストリーミング再生をしたい。 これはIXAudio2VoiceCallback::OnBufferStart/Endを用いるのが楽かも知れません。IXAudio2VoiceCallback::OnBufferStart IXAudio2VoiceCallback::OnBufferEnd2つのメソッドの…

頑張ってストリーミング再生させてみる - XAudio2

ストリーミング再生となるとサブスレッドを用意する必要があります。ただ、_beginthreadexだとか、_beginthreadだとか、BeginThreadだとか面倒です。もっと手軽にかけないの?ということで今回はboost.threadを使いましょう。boost.threadで関数オブジェクト…

MMIO を爆発させる

C++

WAVEファイルの解析にMMIO使ってましたけど、あれに依存するのもなんだか嫌になってきたので手動でガリガリ解析することにしました。昔は面倒だったんですが、今見ると全然普通でしたね。wav ファイルフォーマットWAVEFORMATEXの全データをfmtチャンクから取…

unique_ptr のデリータ指定

C++

25日の記事のコメントで default_delete の特殊化で解決する方法を教えていただきました。ありがとうございます。個人的メモとして今の所知ってる unique_ptr のデリータ指定方法を纏めておきます。 1.関数オブジェクトを渡す一番メジャーな方法。関数オブ…

問題は片付けてもキリがないもの

「人生は勉強である」に似たような何かを感じますが、それは置いといて。 作ってたライブラリを利用者に障って欲しくないものを名前空間を2重にして隠しました。krustf::detail::*の中に。 これで分かってる人ぐらいしか使わないでしょう。多分。 フェードの…

最近の悩み

C++

前回の記事のクラスのお陰で製作中のライブラリの問題を半分ぐらい駆逐できました。という訳でいい加減にサウンドライブラリの作成を始めてます。std::unique_ptrのお陰で相当楽できてますが、デリータを指定すると変数型が以上に長い。ボイス用のやつを用意…

多分、こんなんでいいはず。

C++

先日書いた記事 - Singletonクラスのアクセスを簡単にマルチスレッド対応させたい - krustf の雑記 で書きましたけど、最終的に今書いてるライブラリに追加したものです。 MSVC10, boost1.44.0で動作確認しました。 #include <utility> #include <boost/thread/mutex.hpp> // マルチスレッド /</boost/thread/mutex.hpp></utility>…

Singletonクラスのアクセスを簡単にマルチスレッド対応させたい

C++

Singletonクラスを作るたびにそのクラスのメンバ変数としてMutexとかを宣言したくないんです。冗長だし。Lock, UnLockの方法もきっと面倒なんですよね。アクセスするたびにロックを手動で書くような。そういったものを書かせないで、これまでみたいにget_ins…

やっぱり中途半端に理解した知識を話してはいけない

C++

と、僕なんかよりC++0xの規格に詳しい友人と話して思いました。ようは、 rvalue で const Hoge&& ってなんであるのよ。って話なのですが。const Hoge&& は const Hoge& に暗黙的に変換されるらしい(?)。N1377にも書いてあった気がする。恐らく、解釈的に…

DXライブラリには普通に使えるのにドキュメントに載ってない関数が多い気がする

C++

恐らく、初心者向けを謳っているので小難しいものは隠したかったのかも知れないのですが。まるぺけつくろーどっとコムには「高速フォント描画」っていう記事があって、そいつはD3DXFontだと拡張性に乏しかったり、描画命令を送るたびにフォント作ってたりあ…