Решено: Open GL - Recti

Модератор: Модераторы разделов

Ответить
Аватара пользователя
AlexFilth
Сообщения: 450
Статус: Хронический ламер
ОС: GENTOO

Решено: Open GL - Recti

Сообщение AlexFilth »

Имеется вот такой код

Код: Выделить всё

void viewWindow(void)
{
glClearColor(1.0f, 1.0f, 1.0f,0.0f);  // background is light-gray
glClear(GL_COLOR_BUFFER_BIT);

    glColor3f(0,0,0);
    glutSolidSphere(0.05f,10,10);
    //glRecti(0, 0, 1, 1);
    glRecti(20,420,100,270);
glFlush();
}

Пытаюсь нарисовать прямоугольник по умной книжке.
Строка glRecti(0, 0, 1, 1); рисует квадрат на пол экрана.
Строка glRecti(20,420,100,270); не рисует ничего.

Инициализация

Код: Выделить всё

int main(int argc, char **argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB );
    glutInitWindowSize(640,640);
    glutInitWindowPosition(100, 100);
    initWindow();
    glutCreateWindow("Checkers");
    glutDisplayFunc(viewWindow);
    glutMainLoop();
return 0;
}

Функция initWindow

Код: Выделить всё

void initWindow(void)
{
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluOrtho2D(0,640.0,0,640.0);
}

Судя по книжке Хилла - оно должно отрисовывать прямоугольник, а вот на практике - нет. Не хочеться лезть на форумы game-девелоперов ибо судя по постам - 99% просто стебутся с новичков, а на 1% обычно не попадешь.
На SDL реализацию не предлагать, на SDL сделать могу, а надо на OpenGL.
-=emerge -auDn world=-
Спасибо сказали:
Аватара пользователя
Alxn1
Сообщения: 402
Статус: Красноглазик со стажем
ОС: Mavericks
Контактная информация:

Re: Решено: Open GL - Recti

Сообщение Alxn1 »

Может быть вы glViewport( 0, 0, 640, 480 ); забыли?
Спасибо сказали:
Аватара пользователя
AlexFilth
Сообщения: 450
Статус: Хронический ламер
ОС: GENTOO

Re: Решено: Open GL - Recti

Сообщение AlexFilth »

Нет :) Оказалось я спросоня перепутал порядок функций. надо было так

Код: Выделить всё

int main(int argc, char **argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB );
    glutInitWindowSize(640,640);
    glutInitWindowPosition(100, 100);

    glutCreateWindow("Checkers");
    glutDisplayFunc(viewWindow);
   initWindow();
    glutMainLoop();
return 0;
}
-=emerge -auDn world=-
Спасибо сказали:
Ответить