Add logging around opengl es context creation. Ensure we can access project settings prior to creating our gl es context, so we can properly determine which driver to use.
(cherry picked from commit 440706814a
)
This commit is contained in:
parent
0d8492cf9e
commit
dbf2f0c31e
|
@ -615,18 +615,6 @@ static int frame_count = 0;
|
||||||
|
|
||||||
// Create a full-screen window
|
// Create a full-screen window
|
||||||
window = [[UIWindow alloc] initWithFrame:rect];
|
window = [[UIWindow alloc] initWithFrame:rect];
|
||||||
// window.autoresizesSubviews = YES;
|
|
||||||
//[window setAutoresizingMask:UIViewAutoresizingFlexibleWidth |
|
|
||||||
// UIViewAutoresizingFlexibleWidth];
|
|
||||||
|
|
||||||
// Create the OpenGL ES view and add it to the window
|
|
||||||
GLView *glView = [[GLView alloc] initWithFrame:rect];
|
|
||||||
printf("glview is %p\n", glView);
|
|
||||||
//[window addSubview:glView];
|
|
||||||
glView.delegate = self;
|
|
||||||
// glView.autoresizesSubviews = YES;
|
|
||||||
//[glView setAutoresizingMask:UIViewAutoresizingFlexibleWidth |
|
|
||||||
// UIViewAutoresizingFlexibleWidth];
|
|
||||||
|
|
||||||
OS::VideoMode vm = _get_video_mode();
|
OS::VideoMode vm = _get_video_mode();
|
||||||
|
|
||||||
|
@ -641,6 +629,12 @@ static int frame_count = 0;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// WARNING: We must *always* create the GLView after we have constructed the
|
||||||
|
// OS with iphone_main. This allows the GLView to access project settings so
|
||||||
|
// it can properly initialize the OpenGL context
|
||||||
|
GLView *glView = [[GLView alloc] initWithFrame:rect];
|
||||||
|
glView.delegate = self;
|
||||||
|
|
||||||
view_controller = [[ViewController alloc] init];
|
view_controller = [[ViewController alloc] init];
|
||||||
view_controller.view = glView;
|
view_controller.view = glView;
|
||||||
window.rootViewController = view_controller;
|
window.rootViewController = view_controller;
|
||||||
|
|
|
@ -285,16 +285,26 @@ static void clear_touches() {
|
||||||
kEAGLDrawablePropertyColorFormat,
|
kEAGLDrawablePropertyColorFormat,
|
||||||
nil];
|
nil];
|
||||||
|
|
||||||
// Create our EAGLContext, and if successful make it current and create our framebuffer.
|
// Create a context based on the gl driver from project settings
|
||||||
context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3];
|
if (GLOBAL_GET("rendering/quality/driver/driver_name") == "GLES3") {
|
||||||
|
context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3];
|
||||||
if (!context || ![EAGLContext setCurrentContext:context] || ![self createFramebuffer]) {
|
NSLog(@"Setting up an OpenGL ES 3 context. Based on Project Settings \"rendering/quality/driver/driver_name\"");
|
||||||
|
} else if (GLOBAL_GET("rendering/quality/driver/driver_name") == "GLES2") {
|
||||||
context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
|
context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
|
||||||
gles3_available = false;
|
gles3_available = false;
|
||||||
if (!context || ![EAGLContext setCurrentContext:context] || ![self createFramebuffer]) {
|
NSLog(@"Setting up an OpenGL ES 2 context. Based on Project Settings \"rendering/quality/driver/driver_name\"");
|
||||||
[self release];
|
}
|
||||||
return nil;
|
if (!context) {
|
||||||
}
|
NSLog(@"Failed to create OpenGL ES context!");
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
if (![EAGLContext setCurrentContext:context]) {
|
||||||
|
NSLog(@"Failed to set EAGLContext!");
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
if (![self createFramebuffer]) {
|
||||||
|
NSLog(@"Failed to create frame buffer!");
|
||||||
|
return nil;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Default the animation interval to 1/60th of a second.
|
// Default the animation interval to 1/60th of a second.
|
||||||
|
|
Loading…
Reference in New Issue