Вывод двумерного массива в OpenGL на монитор
Запутался в выводе двумерного массива. У меня есть двумерный массив A[100][100], заполненный случайными числами.
Я написал: glVertexPointer(2, GL_FLOAT, 0, &A);
Затем: glDrawArrays(GL_POINTS, 0, 10000);
Ошибок компилятора нет, но картинка не выводится. Что ему не нравится? Поглядите пожалуйста )
#include <iostream>
#include <glut.h>
#include <windows.h>
#include <cstdlib>
#include <math.h>
#define M 100
#define N 100
#define K 10000
#define F 500
int A[M][N] = {0};
int B[M][N] = {0};
unsigned int x, y, i, j, n, k;
using namespace std;
unsigned int getRandomNumber(int min, int max)
{
static const double fraction = 1.0 / (static_cast<double>(RAND_MAX) + 1.0);
return static_cast<unsigned int>(rand() * fraction * (max - min + 1) + min);
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glVertexPointer(2, GL_FLOAT, 0, &A);
glEnableClientState(GL_VERTEX_ARRAY);
glDrawArrays(GL_POINTS, 0, 100);
glDisableClientState(GL_VERTEX_ARRAY);
glutSwapBuffers();
}
void TimerFunction(int value)
{
glutPostRedisplay(); // перерисовываем экран
glutTimerFunc(40, TimerFunction, 1); //запускаем таймер заново.
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowPosition(50, 50);
glutInitWindowSize(800, 600);
glutCreateWindow("Проба");
glLoadIdentity();
glOrtho(0, 10, 0, 10, 0, 1);
glClearColor(1.0, 1.0, 1.0, 1.0);
glPointSize(8);
for (i = 0; i < K; i++)
{
x = getRandomNumber(0, M - 1);
y = getRandomNumber(0, N - 1);
A[x][y] = 1;
}
glutDisplayFunc(display);
glutTimerFunc(40, TimerFunction, 1);
glutMainLoop();
return 0;
}