自習室

こもります

ソフトウェア開発について最近学んだテクニックなど(自分メモ)

clock_t が便利

#include
clock_t now_time = clock()

を使って、OpenGLなど、コマの進み方を制御すると、処理量の大小にかかわらず一定のスピードでコマを進められるから便利。わかりやすい。

//frame_length = 40; だと、25fps.
nowtime = clock();
if((nowtime-pasttime)/CLOCKS_PER_SEC*1000>frame_length)
{
	++frame;
	//以後描画処理
	//frameの数値を使って描画を行う
}

みたいな感じ。
ただ、上記のままだと、少しずつ誤差がたまっていくので

//firsttimeは、描画開始時のクロック。
nowtime = clock();
if((nowtime-firsttime)/CLOCKS_PER_SEC*1000>frame_length*(frame+1))
{
	++frame;
	//以後描画処理
	//frameの数値を使って描画を行う
}

とすると、描画スタート時からの経過時間で判断するので、累積誤差は発生しない
長いアニメーションになるとframe数がオーバーフローする可能性があるので、
定期的にframeとfirsttimeをリセットしてやると良い。


WinSock, WinSock2のバッティング

winsock2.h を使おうとしてやたらエラーが出たときの対処その2*1
[参照] http://www.02.246.ne.jp/~torutk/cxx/socket/win32_socket.html

OpenGLでテクスチャをロードするためにOpenCVのロード関数を使う

いろいろわかったつもりだったけど、やっぱりわからなくなった。なにかと原因不明のエラーが消えない。参考にしたのは
http://wiki.livedoor.jp/mikk_ni3_92/d/%A6%C1%C3%CD%A4%C8%A5%C6%A5%AF%A5%B9%A5%C1%A5%E3%A4%CE%C0%DA%A4%EA%C8%B4%A4%AD