我試圖呈現一個字符串,畫面渲染,我不能讓它的工作文本不GLUT
我用freeglut
和visual studio 2013
。這是我的glutinit
:
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH | GLUT_ALPHA); // Double buffering, RGB format
glutInitWindowSize(width, heigth);
glutInitWindowPosition(0, 0);
glutCreateWindow("Project Demeter");
glClearColor(1.0, 1.0, 1.0, 1.0);
glColor3f(1.0, 1.0, 1.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0, width, heigth, 0.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glEnable(GL_BLEND);
glEnable(GL_POINT_SMOOTH);
glHint(GL_POINT_SMOOTH_HINT, GL_NICEST);
和我的文字圖畫:
void text::draw()
{
glColor3ub(_color[0], _color[1], _color[2]);
glRasterPos2f(_x, _y);
glDisable(GL_TEXTURE);
glDisable(GL_TEXTURE_2D);
for (char& c : _str)
{
glutBitmapCharacter(GLUT_BITMAP_HELVETICA_18, c);
}
}
然而,沒有什麼是畫在屏幕上,當我創建一個文本,例如:
float clr[3] = { 0, 0, 0 };
text* txt = new text(&DrawList, "test1234", clr, 600, 600);
沒有人知道是什麼即時通訊做錯了,我該如何解決這個問題?
編輯:請求將構造:
text::text(std::list<item*>* BaseList, const string str, const float color[3], int x, int y)
:item(BaseList)
{
if (str == "")
{
assert(0);
}
_str = str;
_x = x;
_y = y;
if (!color) { // When a null pointer is passed to this function
_color[0] = 0;// black is used
_color[1] = 0;
_color[2] = 0;
}
else { //else copy it over
copy_array(color, _color);
}
}
EDIT2:所以我測試了它在Windows 8機器上,並且它的工作呢?跆拳道?即時通訊使用W7。這很奇怪。
發佈您的文本ctor代碼。 – Anonymous
在這裏播放Captain明顯,但是你在繪製幀的結尾調用'glutSwapBuffers()'嗎?背景顏色是否顯示? –
@ReetoKoradi是的,我使用它,但沒有顯示在這裏,是的一切都顯示出來(線條和像素) – WillieWonka