Edited at

iOSアプリ開発:OpenGLで使う画像

More than 3 years have passed since last update.


現象

数年前開発してた頃は、iOSでのOpenGLを使う際画像は2の冪乗じゃないと駄目!と思ってました。

この頃はAppleが公開してたサンプルのimageUtil.mを使ってテストしてました。


調査

調べてみると、今はGLKitのGLKTextureLoaderを使えば2の冪乗じゃなくても使えました。


対応

このように実装すると、textureInfoに様々な情報が設定され、glBindTextureで使える情報も得られます。


Test.m

// Load texture

NSString* filePath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"png"];
GLKTextureInfo* textureInfo =
[GLKTextureLoader textureWithContentsOfFile:filePath options:nil error:nil];
if (textureInfo) {
NSLog(@"Texture Loaded. name = %d size = (%d x %d)", textureInfo.name, textureInfo.width, textureInfo.height);
}
glBindTexture(GL_TEXTURE, textureInfo.name);