Спасибо, раскрутите. Я получил такой же совет по gamedev.net , поэтому я реализовал следующий алгоритм:
typedef struct
{
GLfloat R, G, B;
} color_t;
color_t *array1d;
void InitScreenArray()
{
long screenX = scene.camera.vres;
long screenY = scene.camera.hres;
array1d = (color_t *)malloc(screenX * screenY * sizeof(color_t));
}
void SetScreenColor(int x, int y, float red, float green, float blue)
{
int screenX = scene.camera.vres;
int screenY = scene.camera.hres;
array1d[x + y*screenY].R = red;
array1d[x + y*screenY].G = green;
array1d[x + y*screenY].B = blue;
}
void onDisplay( )
{
glClearColor(0.1f, 0.2f, 0.3f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glRasterPos2i(0,0);
glDrawPixels(scene.camera.hres, scene.camera.vres, GL_RGB, GL_FLOAT, array1d);
glFinish();
glutSwapBuffers();
}
Мое приложение еще не работает (на экране ничего не отображается), но я думаю, что это моя вина, и этот код будет работать.