ピクセル位置を指定して描画する
2次元な文字情報など(いわゆるHUDか)を描画するときに
必要になるがよく忘れるのでメモ。
// 座標系を一時的に変更 setupView_(viewportWidth, viewportHeight); glPointSize(5.0f); glBegin(GL_POINTS); glColor3f(1.0f, 0, 0); // 左上原点のピクセル座標で描画 glVertex2i(x, y); glEnd(); // 元に戻す restoreView_();
//! @param[in] w viewport width //! @param[in] h viewport height void setupView_(int w, int h) { glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); /* glOrtho(0, w, -h, 0, -1.0, 1.0); glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); // Y軸反転 glScalef(1, -1, 1); */ // よりベターな方法 // 参考 // http://risky-safety.org/~zinnia/sdl/sourcetour/extra1/ glOrtho(0, viewWidth, viewHeight, 0, -1.0, 1.0); glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); } void restoreView_() { glPopMatrix(); glMatrixMode(GL_PROJECTION); glPopMatrix(); }
もっとスマートなやり方はあると思うけどとりあえず動く。