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

OpenGLSimpleShaderAdapter

やあ子供たち。 以前VertexAttribArrayHelper(VAAH)というものを作りました。これはつまり、glVertexAttribPointer()やglBufferDate()など、何かと解り難いOpenGLAPIの呼び出しをラップして、固定パイプラインと呼ばれる、旧API(glBegin(), glVertex3f(), …

glm 0.9.6 perspective 事件簿

↑この法線マップもどき何か変だと思った君、センスある! やあ子供たち。GLM使っているか。GLMだよ。 http://glm.g-truc.net/0.9.8/index.html そうだね、OpenGLのいろいろなものがDeprecatedになってしまった今、GLMはほとんど手放せない存在感を発揮してい…

やっとAirPlayできるようになった。

やあ子供たち。 MZK-MF300N 使ってるか。おじさんは、昔、WindowsVista64ビットに対応している無線LAN子機がなかなか見つからない中、珍しく対応している商品があったので以降ずっとこれを使っているわけだが、AppleのAirPlayが使えずに、何が原因か途方にく…

C++で利用可能な乱数発生オプションを知ろう。

C++

やあ子供たち。rand()使ってるか。おじさんはこれまでコンピュータが発生してくれる乱数についてあまり深く考えたことなかったけど、世の中にはランダムに何かを決めて統計的に正しい結果を出そうというアルゴリズムが結構あるね。モンテカルロシミュレーシ…

template< class Func > void draw_with_brush_and_pen(CDC& dc, const COLORREF& col, const COLORREF& col2, const int line_width, Func draw_func) { CBrush myBrush(col); CBrush* oldBrush = dc.SelectObject(&myBrush); CPen myPen(PS_SOLID, line_wi…

静的ライブラリ作成時の備忘録

C++

やあ子供たち。日々自分を高めているか。夏休みの宿題はもうやったかな。何事も毎日こつこつと確実に前進することが大事だぞ。それは生きることの意味でもあるんだからよく考えて日々を送るようにしろ。 ところで今日はWindowsの静的ライブラリ(.lib)をVis…

ありそうでなかった高速行読み込み

char* my_fgets(FILE* fp) { char* result = static_cast<char*>(malloc(1)); result[0] = '\0'; size_t sz = 0; const int AppopriateChunkSize = 16; char s[AppopriateChunkSize + 1]; while (!0) { if (!fgets(s, AppopriateChunkSize, fp)) { result = nullptr</char*>…

さようならmem_fun1(VisualC++2015の国から)

C++

やあ子供たち。英語と親しんでいるか。英語が読めない日本の大人や子供たちはそんなんでどうやってプログラミングとか勉強するんだろうとおじさんはとても心配しているというか、不思議に思っているんだよ。 さあ今日はmem_fun1の話だ。VisualStudio2015に喜…

char s[234]; sprintf_s(s, 234, "%d", cnt);

glm::vec3 a(0, 0, 0); glm::vec3 b(1, 1, 1); float tak = glm::distance2(a, b); float tak2 = glm::distance(a, b); tak= 3; tak2 = 1.732....

削除フラグは正しく処理しよう

template< class C > void ProcessDeleteFlag(C& l) { typedef C::value_type T; auto pivot = partition(l.begin(), l.end(), [](T t) { return t->getDeleteFlag()==false; }); for_each(pivot, l.end(), [](T o) { delete o;}); l.erase(pivot, l.end());…