1
iOSプラットフォームのテクスチャにUIImageを読み込もうとしています。私はStackOverflowのトリックを行うコードスニペットを見つけましたが、問題は、表示されているテクスチャを逆さまにして表示するときです。UIImageからテクスチャへの変換では、テクスチャが垂直方向に反転されます
int numComponents = 4;
UIImage* image = [UIImage imageNamed:@"Test.png"];
CGImageRef imageRef = [image CGImage];
int width = CGImageGetWidth(imageRef);
int height = CGImageGetHeight(imageRef);
//Allocate texture data
GLubyte* textureData = (GLubyte *)malloc(width * height * numComponents);
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
NSUInteger bytesPerPixel = 4;
NSUInteger bytesPerRow = bytesPerPixel * width;
NSUInteger bitsPerComponent = 8;
CGContextRef context = CGBitmapContextCreate(textureData, width, height,
bitsPerComponent, bytesPerRow, colorSpace,
kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
CGColorSpaceRelease(colorSpace);
CGContextDrawImage(context, CGRectMake(0, 0, width, height), imageRef);
CGContextRelease(context);
//texture setup
GLuint textureID;
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glGenTextures(1, &textureID);
glBindTexture(GL_TEXTURE_2D, textureID);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, textureDataMirrored);
私はUIImageを次の行(データを読む前)でミラーリングしようとしましたが、それも動作しませんでした。実際には何の効果もありません。
ここで間違っていることを教えてください。ありがとうございました。
http://stackoverflow.com/questions/506622/cgcontextdrawimage-draws-image-upside-down-when-passed-uiimage-cgimageの可能重複 –
感謝..それは完全に答えなかったが、解決に私を導いた。 – kal21
必要に応じて独自のソリューションを受け入れることができます。 – coder