glkView和更新方法有什么区别?

时间:2015-10-09 06:01:59

标签: ios objective-c glkit

在对java.io.IOException: open failed: EACCES (Permission denied)进行子类化时,它有两种方法:

  • private File createImageFile() throws IOException { String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); String imageFileName = "JPEG_" + timeStamp + "_"; File storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); File image = File.createTempFile(imageFileName, ".jpg", storageDir); currentPhotoPath = image.getAbsolutePath(); return image; }
  • GLKViewController

这两种方法似乎都被称为每帧。文档内容如下:

  

作为在委托中实现- (void)update方法的替代方法,您的子类可以提供更新方法。该方法必须具有以下签名:

     

- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect

我应该在代码中覆盖哪一个,以及哪些应该包含绘制调用?

1 个答案:

答案 0 :(得分:1)

此主题回答:Difference between glkView:drawInRect: and glkViewControllerUpdate:? OpenGL ES 2 - iOS

引用:

关于update()视图控制器调用其委托的glkViewControllerUpdate:方法。您的代理人应更新不涉及将结果呈现到屏幕的帧数据。

关于drawInRect:GLKView对象使其OpenGL ES上下文成为当前上下文,并将其framebuffer绑定为OpenGL ES呈现命令的目标。然后,您的委托方法应该绘制视图的内容。