glDrawPixels помещает каждый компонент RGB в отдельный пиксель

Как видно из названия, значения Red Green и Blue помещаются в разные слоты, благодаря чему на экране появляются полосы красного, зеленого и синего цветов.
код довольно много 🙁w а также h ширина и высота …)

unsigned int pixels[w * h * 3];
for (unsigned int i = 0; i < w * h * 3; i+=3) {
pixels[i + 0] = 0xff // Red
pixels[i + 1] = 0xff // Green
pixels[i + 2] = 0xff // Blue
}
while(windowIsOpen()) {
glClear(GL_COLOR_BUFFER_BIT);
glDrawPixels(w, h, GL_RGB, GL_UNSIGNED_BYTE, pixels);
glSwapBuffers();
}

Но, это производит и изображение как это, когда это должно быть полностью белым:
Не то, что я хочу

Любая помощь будет потрясающей! я знаю glDrawPixels устарела, но мне нужен простой способ рисовать пиксели на экране, производительность не является проблемой для этого проекта.

-1

Решение

Обратите внимание, что вы используете буфер целых чисел (sizeof (int) = 4), когда говорите своему opengl, что отправляете UNSIGNED_BYTE (sizeof (char) = 1).

Измените буфер с int на char и посмотрите, все ли в порядке.

2

Другие решения


По вопросам рекламы [email protected]