【问题标题】:Call GLKView render on request根据请求调用 GLKView 渲染
【发布时间】:2015-10-30 20:11:58
【问题描述】:

我使用外部渲染器创建应用程序,如何按请求调用重绘?例如,在 Android 上,我可以使用 requestRenderer() 和 RENDERMODE_WHEN_DIRTY 渲染模式来完成。

我有下一个代码:

import UIKit
import GLKit
class RendererViewController: GLKViewController {

    var rendererView: GLKView!
    var filename: String!
    override func viewDidLoad() {
        super.viewDidLoad()
        self.rendererView = self.view as! GLKView
        self.rendererView.context = EAGLContext(API: .OpenGLES2)
        self.rendererView.drawableDepthFormat = GLKViewDrawableDepthFormat.Format24
        self.setupGL()

    }

    func setupGL(){
        EAGLContext.setCurrentContext(self.rendererView.context)
         RendererBridge.initLLG()
        self.rendererView.bindDrawable()
        let wight = self.rendererView.drawableWidth
        let height = self.rendererView.drawableHeight
         RendererBridge.open(Int32(wight), hei: Int32(height), filepath: filename)
         RendererBridge.createRenderer(Int32(wight), hei: Int32(height))
    }



    deinit{
        if EAGLContext.currentContext() == self.rendererView.context{
            EAGLContext.setCurrentContext(nil)
        }
    }

    override func glkView(view: GLKView, drawInRect rect: CGRect) {
            RendererBridge.renderFrame()
    }

}

【问题讨论】:

    标签: ios swift opengl-es-2.0 glkit glkview


    【解决方案1】:

    我已经通过接下来的步骤完成了:

    1. 为 GLKView 启用 setNeedsDisplay
    2. 将 GLKViewController 更改为暂停:self.pause = true
    3. 致电self.view.setNeedsDisplay

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-28
      • 2017-08-09
      • 1970-01-01
      • 1970-01-01
      • 2019-07-08
      相关资源
      最近更新 更多