gpt4 book ai didi

iphone - 从 iPhone 中的 C++ 代码将图像加载到 OpenGL ES

转载 作者:行者123 更新时间:2023-12-03 21:24:20 24 4
gpt4 key购买 nike

我正在创建一个 iPhone 游戏,我需要将 PNG 文件中的图像加载到 OpenGL 中(并将其绑定(bind)为纹理)。我正在使用函数 glTexImage2D 来实现这个目标。

我知道如何使用 UIImage 将图像加载到 OpenGL 中(通过将其转换为 CGImage,然后绘制到上下文中)。

如何从 C++ 代码中调用我的 Objective-C 代码(我在 .mm 文件中编码)?

这是我正在使用的代码,它可以在 Objective-C 中运行:

NSString *path = [[NSBundle mainBundle] pathForResource:@"texture" ofType:@"png"];
NSData *texData = [[NSData alloc] initWithContentsOfFile:path];
UIImage *image = [[UIImage alloc] initWithData:texData];
if (image == nil)
NSLog(@"Do real error checking here");

GLuint width = CGImageGetWidth(image.CGImage);
GLuint height = CGImageGetHeight(image.CGImage);
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
void *imageData = malloc( height * width * 4 );
CGContextRef context = CGBitmapContextCreate( imageData, width, height, 8, 4 * width, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big );
CGColorSpaceRelease( colorSpace );
CGContextClearRect( context, CGRectMake( 0, 0, width, height ) );
CGContextTranslateCTM( context, 0, 0 );
CGContextDrawImage( context, CGRectMake( 0, 0, width, height ), image.CGImage );

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, imageData);

CGContextRelease(context);

free(imageData);
[image release];
[texData release];

有没有办法从 C++ 代码调用这些 UI 和 Core Graphics 函数?我必须包含哪些文件?

提前谢谢您。

最佳答案

解决了问题。不得不手动查找并添加Core Graphics框架。

关于iphone - 从 iPhone 中的 C++ 代码将图像加载到 OpenGL ES,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1986631/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com