(ОС: Windows 7, компилятор: компилятор Visual Studio 2010 C ++)
У меня есть правильно работающая программа OpenGL, которая рисует некоторые сферы и модели, применяет некоторые шейдеры и т. Д. И т. Д.
Теперь я подумал, что было бы неплохо добавить некоторый текст, поэтому я добавил следующие три строки в свой метод рисования:
glColor3f(0.5f, 0.5f, 0.5f);
glRasterPos2f(0, 0);
glutBitmapString(GLUT_BITMAP_HELVETICA_12, (unsigned char*)"some text");
Теперь каким-то образом все это заставляет мою программу застревать в бесконечности "цикл нарушения прав доступа, который я не могу исправить.Я даже прокомментировал весь другой код отрисовки, чтобы просто вывести текст, и он все еще выдает ошибку нарушения доступа, я в недоумении, потому что, похоже, это никак не повлияет.Так у кого-нибудь есть какие-нибудь указатели;)) о том, как решить эту проблему?
Я мог бы опубликовать весь свой код отрисовки, но я даже попробовал пустой проект, так что я почти уверен, что это не остальная частьcode.
Редактировать: Я пытался еще больше сузить ошибку, и кажется, что glRasterPos2f выбрасывает нарушение доступа (как ни странно).Это не между вызовами glBegin и glEnd, и нет ошибки OpenGL.
Edit2: После некоторого совета я попробовал следующий код, я избавился от нарушения доступа, но все еще неттекст отображается
glColor3f(0.5f, 0.5f, 0.5f);
glRasterPos2f(0.0f, 0.0f);
std::string str("Hello World");
char* p = new char[strlen(str.c_str() + 1)];
strcpy(p, str.c_str());
glutBitmapString(GLUT_BITMAP_HELVETICA_12, (const unsigned char*)p);