Advertisement
Guest User

Untitled

a guest
May 16th, 2018
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 2.21 KB | None | 0 0
  1. package com.datoh.lifekt.desktop
  2.  
  3. import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application
  4. import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration
  5. import com.badlogic.gdx.Gdx
  6. import com.badlogic.gdx.Screen
  7. import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Graphics
  8. import com.badlogic.gdx.graphics.Color
  9. import com.badlogic.gdx.graphics.GL20
  10. import com.badlogic.gdx.graphics.g2d.Batch
  11. import com.badlogic.gdx.graphics.g2d.SpriteBatch
  12. import com.badlogic.gdx.scenes.scene2d.Stage
  13. import com.badlogic.gdx.utils.viewport.ScreenViewport
  14. import com.badlogic.gdx.utils.viewport.Viewport
  15. import imgui.ImGui
  16. import imgui.destroy
  17. import imgui.impl.LwjglGL3
  18. import ktx.app.KtxGame
  19. import ktx.app.KtxScreen
  20. import ktx.inject.Context
  21. import uno.glfw.GlfwWindow
  22.  
  23. class Game(private val stage: Stage, private val batch: Batch)
  24.     : KtxScreen {
  25.     override fun render(delta: Float) {
  26.         Gdx.gl.glClearColor(Color.GRAY.r, Color.GRAY.g, Color.GRAY.b, Color.GRAY.a)
  27.         Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT or GL20.GL_DEPTH_BUFFER_BIT)
  28.  
  29.         LwjglGL3.newFrame()
  30.         with(ImGui) {
  31.             text("KtxSampleApp")
  32.             render()
  33.         }
  34.     }
  35. }
  36.  
  37. class Application
  38.     : KtxGame<Screen>() {
  39.     private val context = Context()
  40.     private var contextImGui: imgui.Context? = null
  41.  
  42.     override fun create() {
  43.         val window = GlfwWindow((Gdx.graphics as Lwjgl3Graphics).window.windowHandle)
  44.         contextImGui = imgui.Context()
  45.  
  46.         LwjglGL3.init(window, false)
  47.  
  48.         context.register {
  49.             bindSingleton<Viewport>(ScreenViewport())
  50.             bindSingleton<Batch>(SpriteBatch())
  51.             bindSingleton(Stage(inject(), inject()))
  52.             bindSingleton(this@Application)
  53.             bindSingleton(Game(inject(), inject()))
  54.         }
  55.  
  56.         addScreen(context.inject<Game>())
  57.         setScreen<Game>()
  58.     }
  59.  
  60.     override fun dispose() {
  61.         contextImGui?.destroy()
  62.         LwjglGL3.shutdown()
  63.         super.dispose()
  64.     }
  65. }
  66.  
  67. fun main(args: Array<String>) {
  68.     Lwjgl3Application(Application(), Lwjgl3ApplicationConfiguration().apply {
  69.         setTitle("KtxSampleApp")
  70.         setWindowedMode(800, 600)
  71.         setResizable(false)
  72.     })
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement