我注意到在非视网膜设备(iPad 2 和 iPad Mini)上运行的 iPhone 应用程序现在默认以 iPhone Retina Graphics (2x) 呈现(如果应用程序具有视网膜资产)。
目前在 Retina Graphics 上运行 iPhone 应用程序但没有 Retina 屏幕的设备:
- 平板电脑 2
- 小型平板电脑
对于运行 iPhone 应用程序且负载中包含视网膜图形的非视网膜设备,现在没有缩放选项。这很棒,但是我一直在尝试让我的 Openframeworks iOS 环境与新的视网膜窗口一起使用,并且它仍在渲染非视网膜 OpenGL 窗口(因为设备本身不是高 dpi 2x 比例)。
环境:
- 开放框架 0.8 https://github.com/openframeworks/openFrameworks
- Xcode 5.0.1
- 目标:iOS7
当前主要.mm
ofAppiOSWindow * window = new ofAppiOSWindow();
NSInteger glViewW = [UIScreen mainScreen].bounds.size.height;
NSInteger glViewH = [UIScreen mainScreen].bounds.size.width;
// glViewW returns 768
// glViewH returns 1024
window->enableRendererES2();
// [UIScreen mainScreen] is used by enableRetina to check for scale dpi.
window->enableRetina();
window->enableDepthBuffer();
ofSetupOpenGL(ofPtr<ofAppBaseWindow>(window), 320, 480, OF_FULLSCREEN);
window->startAppWithDelegate("AppDelegate");
主 ViewController 运行打开 (GameViewController.mm)
- (BOOL)createGLView {
if(self.glView != nil) {
return NO;
}
app = new GameEngineApp();
app->setDelegate(self);
NSInteger glViewW = [UIScreen mainScreen].bounds.size.height;
NSInteger glViewH = [UIScreen mainScreen].bounds.size.width;
// glViewW returns 320
// glViewH returns 480
CGRect glViewRect = CGRectMake(0, 0, glViewW, glViewH);
self.glView = [[[ofxiOSEAGLView alloc] initWithFrame:glViewRect
andApp:app] autorelease];
self.glView.delegate = self;
self.glView.multipleTouchEnabled = NO;
[appContainer insertSubview:self.glView atIndex:0];
[self.glView layoutSubviews];
[self.glView setup];
[self.glView startAnimation];
return YES;
}
有人知道吗?我正在研究一些解决方案,可能很快就会修复。