Jeg kender ikke noget til de funktioner, du bruger, men en anden måde - ganske vist temmelig besværlig, så det er muligvis ikke en løsning, du vil bruge - er at putte billedet på en polygon som "texture", og derefter rotere det med glRotatef funktionen. Hvis du ikke ved så meget om OpenGL, så kan du snuppe koden fra dkTekno's OpenGL-artikel her på siden:
http://udvikleren.dk/C/Article.aspx/136/Information om glRotatef funktionen:
http://msdn2.microsoft.com/en-us/library/ms537148.aspxHer har jeg lavet en funktion til at putte texture på en polygon. Du skal dog ændre den en lille smule hist og pist.
void CreateTexture ()
{
FILE* f;
int w = 256, h = 256;
int size = w * h * 3;
GLubyte bits [size];
GLenum type = GL_TEXTURE_2D;
f = fopen ("bricks.bmp", "rb");
fread (&bits, size, 1, f);
fclose (f);
glGenTextures (1, &textureId);
glBindTexture (type, textureId);
glTexParameteri(GL_TEXTURE_2D, 0, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, 0, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexEnvi (type, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glTexImage2D (type, 0, 3, w, h, 0, GL_RGB, GL_UNSIGNED_BYTE, bits);
free (bits);
}
Variablen "textureID" er en global GLuint, altså
GLuint textureID;
i starten af .cpp-filen.
Indlæg senest redigeret d. 03.04.2008 21:03 af Bruger #8985