Skip to content

Instantly share code, notes, and snippets.

@n00ner
Created April 24, 2022 19:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save n00ner/57d52fa6b3cf0c5124f778b7aed7fef5 to your computer and use it in GitHub Desktop.
Save n00ner/57d52fa6b3cf0c5124f778b7aed7fef5 to your computer and use it in GitHub Desktop.
class EngineActivity : AppCompatActivity() {
lateinit var engine: Engine
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_engine)
engine = Engine()
val renderView = findViewById<SurfaceView>(R.id.renderView)
engine.initEngine()
renderView.setZOrderOnTop(true);
renderView.holder.addCallback(object: SurfaceHolder.Callback{
override fun surfaceCreated(p0: SurfaceHolder) {
engine.createSwapChain(p0.surface)
Choreographer.getInstance().postFrameCallback(FrameCallback())
}
override fun surfaceChanged(p0: SurfaceHolder, p1: Int, p2: Int, p3: Int) {
engine.createSwapChain(p0.surface)
}
override fun surfaceDestroyed(p0: SurfaceHolder) {
}
})
}
inner class FrameCallback : Choreographer.FrameCallback {
override fun doFrame(frameTimeNanos: Long) {
// Schedule the next frame
Choreographer.getInstance().postFrameCallback(this)
engine.renderFrame()
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment