Я пытаюсь повернуть 2D-матрицу пикселей, но ничего на самом деле не происходит. Мое происхождение - это сохраненный bitmap[w x h x 3]
. Почему не показано, что изображение повернуто? Вот функция отображения:openGL 2D-пиксельное вращение
void display()
{
uint32_t i = 0,j = 0,k = 0;
unsigned char pixels[WINDOW_WIDTH * WINDOW_HEIGHT * 3];
memset(pixels, 0, sizeof(pixels));
for(j = bitmap_h -1; j > 0; j--) {
for(i = 0; i < bitmap_w; i++) {
pixels[k++]=bitmap[j][i].r;
pixels[k++]=bitmap[j][i].g;
pixels[k++]=bitmap[j][i].b;
}
}
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glRotatef(90,0,0,1);
glDrawPixels(g_img.descriptor.size_w, g_img.descriptor.size_h, GL_RGB, GL_UNSIGNED_BYTE, &pixels);
glutSwapBuffers();
}
* «ничего на самом деле не происходит» *. Программа не запускается? Или изображение не отображается? Или отображается невращающееся изображение? –
Если вы посмотрите 'glRotatef', он говорит - *" умножить текущую матрицу на матрицу вращения *. У вас есть текущая матрица? –
'memset (pixels, 0, sizeof (pixels))' zeros-out размер типа 'pixels' - который должен быть указателем. Вы, скорее всего, хотите '* pixels'. – Olaf