Ablage der Pixeldaten in CImage
-
Hallo,
ich nehme CImage um Bilddaten zu laden, welche ich in OpenGL brauche.
So nun bekomme ich immer Speicherzugriffsfehlern, wenn die Texturgröße 128 oder 256 ist. Ab 512 geht es seltsamerweise.CImage image; image.LoadFromResource(AfxGetApp()->m_hInstance,path.c_str()); if (image.IsNull()) { return 0; } void* address = (BYTE*)image.GetBits(); GLenum format = GL_RGB; if (image.GetPitch() < 0) { address = image.GetPixelAddress(image.GetWidth() - 1,image.GetHeight() - 1); format = GL_BGR_EXT; } glTexImage2D(GL_TEXTURE_2D,0,3,image.GetWidth(),image.GetHeight(),0,format,GL_UNSIGNED_BYTE,address);Ich habe mal die Anfangs- und Endadresse des Feldes in BYTE umgewandelt und die DIfferenz genommen, um die Anzahl zu bekommen. DIese ist dann aber kleiner, als was eigentlich an Pixeln da sein muss. Daher nehm ich an, bei meiner Adresse stimmt irgendwas nicht. Weis jemand, was ich da falsch mache?