Вывод координат точек с динамического массива в OpenGL

Возникла проблема с репрезентацией значений динамических массивов определенных и полученных в классе App (посредством вызова функций - этот аспект проверен) в графическом режиме в рамках OpenGL. В сети натолкнулся на подобную проблему (прикладываю код со своим комментарием чуть ниже). Однако, решение затрагивает вопрос статически определенных массивов и приведение их к типу GLFloat не получает необходимого отклика у меня в плане написания нужных строк. Да и честно говоря - я не понимаю, почему этот шаг нужен. И нужен ли (ранее работал с точками и иными моментами - glut.h совершенно не ругался на float? Прикладываю cвой простой вариант цикл прохождения по массивам (А и B в классе App - это - x и y в функции), он описан в: void Display(int *x, int *y, int n) в первом сегменте кода.

 #include <glut.h> 

using namespace std;

void Display(int *x, int *y, int n);

class App
{
public:
    void run(int argc, char **argv)
    {
        setlocale(0, "");
        glutInit(&argc, argv);
        glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
        glutInitWindowSize(1000, 1000);       //Указываем размер окна
        glColor3f(1, 1, 1);
        glutInitWindowPosition(100, 100); //Позиция окна
        glutCreateWindow("ТЕST");        //Имя окна

        cout << "Количество точек в двухмерном (прямоугольном) декартовом пространстве(x;y):";
        cin >> n;

        A = new int[n]; // Икс-координаты точек
        RandomFill(A, n); // генерация данных в файле
        input_geometryX(A, n);

        B = new int[n]; //y-координаты точек
        RandomFill(B, n);    // генерация данных в файл      
        input_geometryY(B, n);

        alldist(A, B, n);  //большая функция обработки и нахождения расстояний между точками

        glutDisplayFunc(Draw);

        glutMainLoop();

        delete[] A;
        delete[] B;
    }

private:
    static void Draw()
    {
        Display(A, B, n);
    }

    static int* A;
    static int* B;
    static int n;
};

int* App:: A = NULL;
int* App:: B = NULL;
int App:: n = 0;



int main(int argc, char **argv)
{   //setlocale (LC_ALL,"Russian");
    setlocale (0, "");
  // .....





void Display(int *x, int *y, int n)
    {


    glBegin( GL_POINTS );
    glColor3d(1,0,0); 
    glPointSize(8);

    for ( int i = 0; i < n; ++i )
    {
        glVertex2f( x[i], y[i] );

    }
    glEnd();


    glFlush(); //перенос всего нарисованного в экран    


    }

Возможное решение проблемы (однако пример со статическим определением массива):

GLint NumberOfPoints = 10;  // в нашем случае можно n
GLfloat x[10],y[10];  // как тогда переопределить массивы динамические

for(int i = 0; i < NumberOfPoints; i++){
    x[i] = y[i] = (GLfloat) i;
}

glBegin( GL_POINTS );

for ( int i = 0; i < NumberOfPoints; ++i )
{
    glVertex2f( x[i], y[i] );

}
glEnd();

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