Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.datoh.lifekt.desktop
- import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application
- import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration
- import com.badlogic.gdx.Gdx
- import com.badlogic.gdx.Screen
- import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Graphics
- import com.badlogic.gdx.graphics.Color
- import com.badlogic.gdx.graphics.GL20
- import com.badlogic.gdx.graphics.g2d.Batch
- import com.badlogic.gdx.graphics.g2d.SpriteBatch
- import com.badlogic.gdx.scenes.scene2d.Stage
- import com.badlogic.gdx.utils.viewport.ScreenViewport
- import com.badlogic.gdx.utils.viewport.Viewport
- import imgui.ImGui
- import imgui.destroy
- import imgui.impl.LwjglGL3
- import ktx.app.KtxGame
- import ktx.app.KtxScreen
- import ktx.inject.Context
- import uno.glfw.GlfwWindow
- class Game(private val stage: Stage, private val batch: Batch)
- : KtxScreen {
- override fun render(delta: Float) {
- Gdx.gl.glClearColor(Color.GRAY.r, Color.GRAY.g, Color.GRAY.b, Color.GRAY.a)
- Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT or GL20.GL_DEPTH_BUFFER_BIT)
- LwjglGL3.newFrame()
- with(ImGui) {
- text("KtxSampleApp")
- render()
- }
- }
- }
- class Application
- : KtxGame<Screen>() {
- private val context = Context()
- private var contextImGui: imgui.Context? = null
- override fun create() {
- val window = GlfwWindow((Gdx.graphics as Lwjgl3Graphics).window.windowHandle)
- contextImGui = imgui.Context()
- LwjglGL3.init(window, false)
- context.register {
- bindSingleton<Viewport>(ScreenViewport())
- bindSingleton<Batch>(SpriteBatch())
- bindSingleton(Stage(inject(), inject()))
- bindSingleton(this@Application)
- bindSingleton(Game(inject(), inject()))
- }
- addScreen(context.inject<Game>())
- setScreen<Game>()
- }
- override fun dispose() {
- contextImGui?.destroy()
- LwjglGL3.shutdown()
- super.dispose()
- }
- }
- fun main(args: Array<String>) {
- Lwjgl3Application(Application(), Lwjgl3ApplicationConfiguration().apply {
- setTitle("KtxSampleApp")
- setWindowedMode(800, 600)
- setResizable(false)
- })
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement