LINUX.ORG.RU

Ошибка: invalid conversion from ‘const char*’ to ‘const unsigned char*’ [-fpermissive]

 


0

1

Всем привет! Я пытаюсь вывести текст:

glutBitmapString(GLUT_BITMAP_HELVETICA_18, «text to render»);

Ошибка в этой строке, ошибка: error: invalid conversion from ‘const char*’ to ‘const unsigned char*’ [-fpermissive]


Ответ на: комментарий от fsb4000

Спасибо. Теперь ошибки нет, но ни чего не выводит, фон у меня черный, не помню сам он черным рисуется или я указывал. Вот код:

glRasterPos2i(1, 1); glColor4f(0.0f, 0.5f, 1.0f, 1.0f); glutBitmapString(GLUT_BITMAP_HELVETICA_18, reinterpret_cast<const unsigned char *>( «text to render» ) );

wadic2
() автор топика
Последнее исправление: wadic2 (всего исправлений: 1)
Ответ на: комментарий от unDEFER

Мне нужно в 3d. Но пока нужно в 2d. Весь мой код в 2d. У меня все работает, а вот текст выводит, но выводит в центре (0.0). К примеру glVertex2f(0,5, 0) работает как надо. Мне нужно чтобы система координат была одна и та же для всех функций. В том числе для функции:

glRasterPos2i(0.5, 0);

Что за система координат у этой функции? Не нашел в инете. Странно работает эта функция. Нашел заморочки с подобными функциями: glOrtho(). Почему такие заморочки с этой функцией? Можно сделать также просто как glVertex2f()? Можно заменить эту функцию, если что?

Еще вопрос. Это все я делаю меню, оно готово, нужно надписи выводить в кнопки. Вопрос такой. Я правильно понимаю, что графику можно выводить в 3д, а меню сделать в 2д? Ну так проще, не нужно мне меню в 3д.

wadic2
() автор топика
Последнее исправление: wadic2 (всего исправлений: 1)
Ответ на: комментарий от wadic2

как код этой матрицы выглядит?

В памяти компьютера как двухмерный массив.

Что за система координат у этой функции?

Конкретно эта функция, насколько я понимаю, меняет смещение именно в растре, у него система координат привязана к изображению, а не к выводу.

Можно заменить эту функцию, если что?

Можно её вообще не юзать. Лично я не помню чтобы она мне хоть раз понадобилась.

можно выводить в 3д, а меню сделать в 2д?

Это сколько угодно. Я так делал в своей игре. А если ещё экран на части порубать, то можно и более хитрые вещи запилить.

unDEFER ★★★★★
()
Ответ на: комментарий от unDEFER

В памяти компьютера как двухмерный массив. - не в памяти, а в коде.

Конкретно эта функция, насколько я понимаю, меняет смещение именно в растре, у него система координат привязана к изображению. - я не разбираюсь. Что значит в растре и изображение? Ересь. Я знаю что такое растровый рисунок (не в контексте openGL).

Лично я не помню чтобы она мне хоть раз понадобилась. - чем Вы пользуетесь? Есть аналогичная функция в freeglut?

wadic2
() автор топика
Ответ на: комментарий от wadic2

В памяти компьютера как двухмерный массив. - не в памяти, а в коде.

Если хотите в коде матрицу, то glMultMatrix, но всякие glTranslate/glRotate удобней.

Что значит в растре и изображение?

В данном случае это одно и тоже (синонимы, чтобы не повторяться). Я так понял у вас картинка со шрифтом и glRaster указывает смещение символа.

чем Вы пользуетесь? Есть аналогичная функция в freeglut?

Я на SDL писал, с GLUT опыта не имел. Для текста использовал команды glBegin(GL_POLYGON), glTexCoord2f, glVertex3f.

Если хотите, можете взглянуть на этот код здесь:

https://github.com/unDEFER/dizzy-omega/blob/master/source/unde/games/renderer.d#L322

unDEFER ★★★★★
()
Ответ на: комментарий от unDEFER

Я так понял у вас картинка со шрифтом и glRaster указывает смещение символа. - у меня нет картинки со шрифтом, мне шрифт не нужен, мне достаточно стандартного текста, которые уже (все хорошо) выводит glutBitmapString(). glRaster - Вы имеете в виду glRasterPos2i()? Как я сказал, шрифта нет, вот более или менее полный код:

glRasterPos2i(0.5, 0); glColor4f(0.0f, 0.5f, 1.0f, 1.0f); glutBitmapString(GLUT_BITMAP_HELVETICA_18, reinterpret_cast<const unsigned char *>( «text to render» ) );

wadic2
() автор топика
Ответ на: комментарий от wadic2

у меня нет картинки со шрифтом

Ну у вас нету, видимо у glut есть.. Bitmap с надписью. Мне кажется вы можете успешно удалить glRasterPos2i из своего кода без потери работоспособности.

unDEFER ★★★★★
()
Ответ на: комментарий от unDEFER

Мне кажется вы можете успешно удалить glRasterPos2i из своего кода без потери работоспособности - он же не просто так там, в чем и проблема. Мне нужно координаты задавать надписи, а эта функция и задает координаты, только коряво задает, по сути не задает. Я читал документацию по glRasterPos2i(), но не понял. Документация на английском. Я ни знаю английского. Нужно понять в каком виде подавать параметры в эту функцию. По идее должно быть так: glRasterPos2i(0.5, 0); То есть стандартные координаты openGl, но не работает, упрямо выводит только в центр окна, хоть что пиши в координатах: 0 или 0.5, все-равно в центр выводит.

wadic2
() автор топика