crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QGLWidget проблемы с renderText
soaup
  опции профиля:
сообщение 14.8.2014, 13:18
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 3.6.2014
Пользователь №: 4152

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте! Такая проблема. Рисую фигуру из линий, и текст с помощью renderText в paintGL:
void glwindow::paintGL() {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    //Рисунок
    glBegin(GL_LINES);
    glColor4f(1, 1, 1, 1);
    glVertex2f(0, this->height()-scale);
    glVertex2f(0, this->height());
    for (int i=1; i<10; i++) {
        glVertex2f(i*len_view/10, this->height()-scale);
        glVertex2f(i*len_view/10, this->height()-scale/3);
    }
    for (int i=1; i<100; i++) {
        glVertex2f(i*len_view/100, this->height()-scale);
        glVertex2f(i*len_view/100, this->height()-scale/2);
    }
    glVertex2f(len_view, this->height()-scale);
    glVertex2f(len_view, this->height());
    glEnd();
    //Текст
    int step = (max_fr - min_fr)/10;
    for (int i=1; i<10; i++) {
        renderText(0 + i*(len_view/10), this->height(), -1, QString::number(min_fr + i*step));
    }
}


При этом перестает применяться QGLFormat с настроенным сглаживанием. И линии в некоторых местах виджета рисуются с неправильными слегка координатыми (сдвинулись по Y на пару пикселей). Что может быть не так?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
soaup
  опции профиля:
сообщение 14.8.2014, 14:51
Сообщение #2


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 3.6.2014
Пользователь №: 4152

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(soaup @ 14.8.2014, 14:18) *
Здравствуйте! Такая проблема. Рисую фигуру из линий, и текст с помощью renderText в paintGL:
void glwindow::paintGL() {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    //Рисунок
    glBegin(GL_LINES);
    glColor4f(1, 1, 1, 1);
    glVertex2f(0, this->height()-scale);
    glVertex2f(0, this->height());
    for (int i=1; i<10; i++) {
        glVertex2f(i*len_view/10, this->height()-scale);
        glVertex2f(i*len_view/10, this->height()-scale/3);
    }
    for (int i=1; i<100; i++) {
        glVertex2f(i*len_view/100, this->height()-scale);
        glVertex2f(i*len_view/100, this->height()-scale/2);
    }
    glVertex2f(len_view, this->height()-scale);
    glVertex2f(len_view, this->height());
    glEnd();
    //Текст
    int step = (max_fr - min_fr)/10;
    for (int i=1; i<10; i++) {
        renderText(0 + i*(len_view/10), this->height(), -1, QString::number(min_fr + i*step));
    }
}


При этом перестает применяться QGLFormat с настроенным сглаживанием. И линии в некоторых местах виджета рисуются с неправильными слегка координатыми (сдвинулись по Y на пару пикселей). Что может быть не так?


А нет, справился. Надо было добавить glEnable(GL_MULTISAMPLE) после кода выше.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 27.4.2024, 2:29