Проблема прорисовки сплайнов OpenGL

На некоторых компьютерах не отображаются сплайны OpenGL. Возможно, проблема в видеокарте?

Код:

… …
// Количество контрольных точек.
const int g_QuantityOfPoints = 30;
// Указатель на массив контрольных точек.
float      *g_ControlsPoints;

… …

void CBezier2DView::OnDraw(CDC* /*pDC*/)
{
    int   k;
    float t;

    // Очистка буфера цвета.
    glClear (GL_COLOR_BUFFER_BIT);
    // Рисуем контрольные точки
    glColor3f(0.1f, 0.1f, 0.9f);
    glBegin(GL_POINTS);
    for (k = 0; k < g_QuantityOfPoints; k++)
        glVertex3fv(&g_ControlsPoints[k*3]);
    glEnd();
    

    glEnable(GL_MAP1_VERTEX_3);//отображаем сплайн
    glMap1f (
        // Контрольные точки задаются тремя координатами
        GL_MAP1_VERTEX_3,
        // Нижнее значение параметрической координаты u
        0.,
        // Верхнее значение параметрической координаты u
        1.0,
        // Шаг между контрольными точками
        3,
        // Количество контрольных точек
        g_QuantityOfPoints,
        // Массив контрольных точек
        (const float*)g_ControlsPoints
    );

    // Рисуем кривую Безье
    glColor3f(0.7f, 0.1f, 0.1f);
    glBegin(GL_LINE_STRIP);
    for (k = 0; k <= 60; k++)
    {
        // Вычисляем параметрическую координату, диапазон
        // изменения которой, задан командой glMap1f.
        t = (GLfloat)k/60.0;
        glEvalCoord1f(t);
    }
    glEnd();

    // До сих пор рисование осуществлялось в буфер freim(а).
    // После окончания рисования перемещаем изображение на 
    // экран.
    SwapBuffers(::wglGetCurrentDC());
}


Ответы (0 шт):