应用程序崩溃,因为glGetString
我正在运行cocos2d-iphone 1.0.0,并按照本教程的说明使用cocos2d。 不幸的是,每当我尝试向CCLayer添加TMX Tiled Map时,我都会遇到“SIGABRT”崩溃错误。 我把这个问题追溯到-(BOOL)checkForGLExtension:(NSString *)searchName
,甚至进一步在这个函数内NSString *extensionsString = [NSString stringWithCString:glExtensions encoding: NSASCIIStringEncoding];
这是checkForGLExtension函数:
- (BOOL) checkForGLExtension:(NSString *)searchName { // For best results, extensionsNames should be stored in your renderer so that it does not // need to be recreated on each invocation. NSLog(@"%@", glExtensions); NSString *extensionsString = [NSString stringWithCString:glExtensions encoding: NSASCIIStringEncoding]; NSLog(@"%@", extensionsString); NSArray *extensionsNames = [extensionsString componentsSeparatedByString:@" "]; }
encoding:
NSString *extensionsString = [NSString stringWithCString:glExtensions encoding: NSASCIIStringEncoding];
一部分NSString *extensionsString = [NSString stringWithCString:glExtensions encoding: NSASCIIStringEncoding];
很可能使应用程序崩溃。 我在我的日志中也收到GL_VENDOR
, GL_VERSION
, GL_RENDERER
,甚至是glExtensions
。
回顾OpenGLES.framework中的gl.h显示了这一点:
/* StringName */ #define GL_VENDOR 0x1F00 #define GL_RENDERER 0x1F01 #define GL_VERSION 0x1F02 #define GL_EXTENSIONS 0x1F03
其中所有这些都是NULL。
注意:我不知道iOS开发:)
从glGetString中获取NULL通常意味着OpenGL上下文没有绑定或创build不正确。 你应该检查一下。 还用glGetError检查GL错误。