mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-18 20:05:02 -04:00
do gui rendering more async, major gui changes, minor performance improvements
This commit is contained in:
parent
f126de8ca3
commit
3665c1c615
@ -30,8 +30,8 @@ import de.bixilon.minosoft.gui.rendering.input.key.DefaultKeyCombinations
|
|||||||
import de.bixilon.minosoft.gui.rendering.input.key.RenderWindowInputHandler
|
import de.bixilon.minosoft.gui.rendering.input.key.RenderWindowInputHandler
|
||||||
import de.bixilon.minosoft.gui.rendering.modding.events.*
|
import de.bixilon.minosoft.gui.rendering.modding.events.*
|
||||||
import de.bixilon.minosoft.gui.rendering.models.ModelLoader
|
import de.bixilon.minosoft.gui.rendering.models.ModelLoader
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.RendererManager
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.RendererManager
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.RendererManager.Companion.registerDefault
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.RendererManager.Companion.registerDefault
|
||||||
import de.bixilon.minosoft.gui.rendering.skeletal.SkeletalManager
|
import de.bixilon.minosoft.gui.rendering.skeletal.SkeletalManager
|
||||||
import de.bixilon.minosoft.gui.rendering.stats.AbstractRenderStats
|
import de.bixilon.minosoft.gui.rendering.stats.AbstractRenderStats
|
||||||
import de.bixilon.minosoft.gui.rendering.stats.ExperimentalRenderStats
|
import de.bixilon.minosoft.gui.rendering.stats.ExperimentalRenderStats
|
||||||
|
@ -29,8 +29,8 @@ import de.bixilon.minosoft.gui.rendering.RenderWindow
|
|||||||
import de.bixilon.minosoft.gui.rendering.entity.models.EntityModel
|
import de.bixilon.minosoft.gui.rendering.entity.models.EntityModel
|
||||||
import de.bixilon.minosoft.gui.rendering.entity.models.minecraft.player.LocalPlayerModel
|
import de.bixilon.minosoft.gui.rendering.entity.models.minecraft.player.LocalPlayerModel
|
||||||
import de.bixilon.minosoft.gui.rendering.modding.events.VisibilityGraphChangeEvent
|
import de.bixilon.minosoft.gui.rendering.modding.events.VisibilityGraphChangeEvent
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Renderer
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.Renderer
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.RendererBuilder
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.RendererBuilder
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.RenderSystem
|
import de.bixilon.minosoft.gui.rendering.system.base.RenderSystem
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.phases.OpaqueDrawable
|
import de.bixilon.minosoft.gui.rendering.system.base.phases.OpaqueDrawable
|
||||||
import de.bixilon.minosoft.modding.event.events.EntityDestroyEvent
|
import de.bixilon.minosoft.modding.event.events.EntityDestroyEvent
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
package de.bixilon.minosoft.gui.rendering.entity
|
package de.bixilon.minosoft.gui.rendering.entity
|
||||||
|
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Drawable
|
import de.bixilon.minosoft.gui.rendering.renderer.drawable.Drawable
|
||||||
|
|
||||||
interface ModelUpdater : Drawable {
|
interface ModelUpdater : Drawable {
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ import de.bixilon.minosoft.gui.rendering.RenderWindow
|
|||||||
import de.bixilon.minosoft.gui.rendering.framebuffer.gui.GUIFramebuffer
|
import de.bixilon.minosoft.gui.rendering.framebuffer.gui.GUIFramebuffer
|
||||||
import de.bixilon.minosoft.gui.rendering.framebuffer.world.WorldFramebuffer
|
import de.bixilon.minosoft.gui.rendering.framebuffer.world.WorldFramebuffer
|
||||||
import de.bixilon.minosoft.gui.rendering.modding.events.ResizeWindowEvent
|
import de.bixilon.minosoft.gui.rendering.modding.events.ResizeWindowEvent
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Drawable
|
import de.bixilon.minosoft.gui.rendering.renderer.drawable.Drawable
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.PolygonModes
|
import de.bixilon.minosoft.gui.rendering.system.base.PolygonModes
|
||||||
import de.bixilon.minosoft.modding.event.invoker.CallbackEventInvoker
|
import de.bixilon.minosoft.modding.event.invoker.CallbackEventInvoker
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
package de.bixilon.minosoft.gui.rendering.framebuffer
|
package de.bixilon.minosoft.gui.rendering.framebuffer
|
||||||
|
|
||||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Drawable
|
import de.bixilon.minosoft.gui.rendering.renderer.drawable.Drawable
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.BlendingFunctions
|
import de.bixilon.minosoft.gui.rendering.system.base.BlendingFunctions
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.IntegratedBufferTypes
|
import de.bixilon.minosoft.gui.rendering.system.base.IntegratedBufferTypes
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.PolygonModes
|
import de.bixilon.minosoft.gui.rendering.system.base.PolygonModes
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
package de.bixilon.minosoft.gui.rendering.framebuffer.world.overlay
|
package de.bixilon.minosoft.gui.rendering.framebuffer.world.overlay
|
||||||
|
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Drawable
|
import de.bixilon.minosoft.gui.rendering.renderer.drawable.Drawable
|
||||||
|
|
||||||
interface Overlay : Drawable {
|
interface Overlay : Drawable {
|
||||||
val render: Boolean
|
val render: Boolean
|
||||||
|
@ -15,7 +15,7 @@ package de.bixilon.minosoft.gui.rendering.framebuffer.world.overlay
|
|||||||
|
|
||||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||||
import de.bixilon.minosoft.gui.rendering.framebuffer.world.overlay.overlays.DefaultOverlays
|
import de.bixilon.minosoft.gui.rendering.framebuffer.world.overlay.overlays.DefaultOverlays
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Drawable
|
import de.bixilon.minosoft.gui.rendering.renderer.drawable.Drawable
|
||||||
|
|
||||||
class OverlayManager(
|
class OverlayManager(
|
||||||
private val renderWindow: RenderWindow,
|
private val renderWindow: RenderWindow,
|
||||||
|
@ -14,42 +14,71 @@
|
|||||||
package de.bixilon.minosoft.gui.rendering.gui
|
package de.bixilon.minosoft.gui.rendering.gui
|
||||||
|
|
||||||
import de.bixilon.kutil.concurrent.pool.DefaultThreadPool
|
import de.bixilon.kutil.concurrent.pool.DefaultThreadPool
|
||||||
|
import de.bixilon.kutil.concurrent.pool.ThreadPool
|
||||||
|
import de.bixilon.kutil.concurrent.pool.ThreadPoolRunnable
|
||||||
import de.bixilon.kutil.latch.CountUpAndDownLatch
|
import de.bixilon.kutil.latch.CountUpAndDownLatch
|
||||||
import de.bixilon.kutil.time.TimeUtil
|
import de.bixilon.kutil.time.TimeUtil
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.Pollable
|
import de.bixilon.minosoft.gui.rendering.gui.elements.Pollable
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.gui.LayoutedGUIElement
|
import de.bixilon.minosoft.gui.rendering.gui.gui.LayoutedGUIElement
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Drawable
|
import de.bixilon.minosoft.gui.rendering.renderer.drawable.AsyncDrawable
|
||||||
|
import de.bixilon.minosoft.gui.rendering.renderer.drawable.Drawable
|
||||||
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
||||||
|
|
||||||
interface GUIElementDrawer {
|
interface GUIElementDrawer {
|
||||||
val guiRenderer: GUIRenderer
|
val guiRenderer: GUIRenderer
|
||||||
var lastTickTime: Long
|
var lastTickTime: Long
|
||||||
|
|
||||||
fun drawElements(elements: Collection<GUIElement>) {
|
fun tickElements(elements: Collection<GUIElement>) {
|
||||||
val time = TimeUtil.millis
|
val time = TimeUtil.millis
|
||||||
val tickLatch = CountUpAndDownLatch(1)
|
val latch = CountUpAndDownLatch(1)
|
||||||
if (time - lastTickTime > ProtocolDefinition.TICK_TIME) {
|
if (time - lastTickTime > ProtocolDefinition.TICK_TIME) {
|
||||||
for (element in elements) {
|
for (element in elements) {
|
||||||
if (!element.enabled) {
|
if (!element.enabled) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
tickLatch.inc()
|
latch.inc()
|
||||||
DefaultThreadPool += {
|
DefaultThreadPool += ThreadPoolRunnable(priority = ThreadPool.HIGH) {
|
||||||
element.tick()
|
element.tick()
|
||||||
if (element is Pollable) {
|
if (element is Pollable) {
|
||||||
if (element.poll()) {
|
if (element.poll()) {
|
||||||
element.apply()
|
element.apply()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
tickLatch.dec()
|
latch.dec()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
lastTickTime = time
|
lastTickTime = time
|
||||||
}
|
}
|
||||||
tickLatch.dec()
|
latch.dec()
|
||||||
tickLatch.await()
|
latch.await()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun prepareElements(elements: Collection<GUIElement>) {
|
||||||
|
val latch = CountUpAndDownLatch(1)
|
||||||
|
for (element in elements) {
|
||||||
|
if (!element.enabled) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if (element !is AsyncDrawable) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if (element.skipDraw) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
element.drawAsync()
|
||||||
|
|
||||||
|
if (element is LayoutedGUIElement<*>) {
|
||||||
|
latch.inc()
|
||||||
|
element.prepare()
|
||||||
|
DefaultThreadPool += ThreadPoolRunnable(priority = ThreadPool.HIGH) { element.prepareAsync(); latch.dec() }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
latch.dec()
|
||||||
|
latch.await()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun drawElements(elements: Collection<GUIElement>) {
|
||||||
val latch = CountUpAndDownLatch(1)
|
val latch = CountUpAndDownLatch(1)
|
||||||
for (element in elements) {
|
for (element in elements) {
|
||||||
if (!element.enabled) {
|
if (!element.enabled) {
|
||||||
@ -62,12 +91,6 @@ interface GUIElementDrawer {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
element.draw()
|
element.draw()
|
||||||
|
|
||||||
if (element is LayoutedGUIElement<*>) {
|
|
||||||
latch.inc()
|
|
||||||
element.prepare()
|
|
||||||
DefaultThreadPool += { element.prepareAsync(); latch.dec() }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
latch.dec()
|
latch.dec()
|
||||||
latch.await()
|
latch.await()
|
||||||
|
@ -30,8 +30,8 @@ import de.bixilon.minosoft.gui.rendering.gui.hud.HUDManager
|
|||||||
import de.bixilon.minosoft.gui.rendering.gui.input.ModifierKeys
|
import de.bixilon.minosoft.gui.rendering.gui.input.ModifierKeys
|
||||||
import de.bixilon.minosoft.gui.rendering.input.InputHandler
|
import de.bixilon.minosoft.gui.rendering.input.InputHandler
|
||||||
import de.bixilon.minosoft.gui.rendering.modding.events.ResizeWindowEvent
|
import de.bixilon.minosoft.gui.rendering.modding.events.ResizeWindowEvent
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Renderer
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.AsyncRenderer
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.RendererBuilder
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.RendererBuilder
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.BlendingFunctions
|
import de.bixilon.minosoft.gui.rendering.system.base.BlendingFunctions
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.PolygonModes
|
import de.bixilon.minosoft.gui.rendering.system.base.PolygonModes
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.buffer.frame.Framebuffer
|
import de.bixilon.minosoft.gui.rendering.system.base.buffer.frame.Framebuffer
|
||||||
@ -45,7 +45,7 @@ import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
|||||||
class GUIRenderer(
|
class GUIRenderer(
|
||||||
val connection: PlayConnection,
|
val connection: PlayConnection,
|
||||||
override val renderWindow: RenderWindow,
|
override val renderWindow: RenderWindow,
|
||||||
) : Renderer, InputHandler, OtherDrawable {
|
) : AsyncRenderer, InputHandler, OtherDrawable {
|
||||||
private val profile = connection.profiles.gui
|
private val profile = connection.profiles.gui
|
||||||
override val renderSystem = renderWindow.renderSystem
|
override val renderSystem = renderWindow.renderSystem
|
||||||
var scaledSize: Vec2i by watched(renderWindow.window.size)
|
var scaledSize: Vec2i by watched(renderWindow.window.size)
|
||||||
@ -131,6 +131,13 @@ class GUIRenderer(
|
|||||||
return popper.onScroll(scrollOffset) || dragged.onScroll(scrollOffset) || gui.onScroll(scrollOffset)
|
return popper.onScroll(scrollOffset) || dragged.onScroll(scrollOffset) || gui.onScroll(scrollOffset)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun prepareDrawAsync() {
|
||||||
|
hud.drawAsync()
|
||||||
|
gui.drawAsync()
|
||||||
|
popper.drawAsync()
|
||||||
|
dragged.drawAsync()
|
||||||
|
}
|
||||||
|
|
||||||
override fun drawOther() {
|
override fun drawOther() {
|
||||||
hud.draw()
|
hud.draw()
|
||||||
gui.draw()
|
gui.draw()
|
||||||
|
@ -24,7 +24,6 @@ import de.bixilon.minosoft.config.key.KeyActions
|
|||||||
import de.bixilon.minosoft.config.key.KeyBinding
|
import de.bixilon.minosoft.config.key.KeyBinding
|
||||||
import de.bixilon.minosoft.config.key.KeyCodes
|
import de.bixilon.minosoft.config.key.KeyCodes
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.GUIElement
|
import de.bixilon.minosoft.gui.rendering.gui.GUIElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.GUIElementDrawer
|
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.GUIRenderer
|
import de.bixilon.minosoft.gui.rendering.gui.GUIRenderer
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
import de.bixilon.minosoft.gui.rendering.gui.elements.Element
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.elements.LayoutedElement
|
import de.bixilon.minosoft.gui.rendering.gui.elements.LayoutedElement
|
||||||
@ -39,20 +38,23 @@ import de.bixilon.minosoft.gui.rendering.gui.hud.Initializable
|
|||||||
import de.bixilon.minosoft.gui.rendering.gui.hud.elements.HUDBuilder
|
import de.bixilon.minosoft.gui.rendering.gui.hud.elements.HUDBuilder
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.input.DraggableHandler
|
import de.bixilon.minosoft.gui.rendering.gui.input.DraggableHandler
|
||||||
import de.bixilon.minosoft.gui.rendering.input.InputHandler
|
import de.bixilon.minosoft.gui.rendering.input.InputHandler
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Drawable
|
import de.bixilon.minosoft.gui.rendering.renderer.drawable.AsyncDrawable
|
||||||
|
import de.bixilon.minosoft.gui.rendering.renderer.drawable.Drawable
|
||||||
import de.bixilon.minosoft.gui.rendering.system.window.KeyChangeTypes
|
import de.bixilon.minosoft.gui.rendering.system.window.KeyChangeTypes
|
||||||
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
||||||
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
||||||
|
|
||||||
class GUIManager(
|
class GUIManager(
|
||||||
override val guiRenderer: GUIRenderer,
|
private val guiRenderer: GUIRenderer,
|
||||||
) : Initializable, InputHandler, GUIElementDrawer, DraggableHandler {
|
) : Initializable, InputHandler, DraggableHandler, Drawable, AsyncDrawable {
|
||||||
private val elementCache: MutableMap<GUIBuilder<*>, GUIElement> = mutableMapOf()
|
private val elementCache: MutableMap<GUIBuilder<*>, GUIElement> = mutableMapOf()
|
||||||
private var orderLock = SimpleLock()
|
private var orderLock = SimpleLock()
|
||||||
var elementOrder: MutableList<GUIElement> = mutableListOf()
|
var elementOrder: MutableList<GUIElement> = mutableListOf()
|
||||||
private val renderWindow = guiRenderer.renderWindow
|
private val renderWindow = guiRenderer.renderWindow
|
||||||
internal var paused = false
|
internal var paused = false
|
||||||
override var lastTickTime: Long = -1L
|
private var lastTickTime: Long = -1L
|
||||||
|
|
||||||
|
private var order: Collection<GUIElement> = emptyList()
|
||||||
|
|
||||||
override fun init() {
|
override fun init() {
|
||||||
for (element in elementCache.values) {
|
for (element in elementCache.values) {
|
||||||
@ -104,10 +106,11 @@ class GUIManager(
|
|||||||
orderLock.release()
|
orderLock.release()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun draw() {
|
override fun drawAsync() {
|
||||||
orderLock.acquire()
|
orderLock.acquire()
|
||||||
val order = elementOrder.reversed()
|
this.order = elementOrder.reversed()
|
||||||
orderLock.release()
|
orderLock.release()
|
||||||
|
|
||||||
val time = TimeUtil.millis
|
val time = TimeUtil.millis
|
||||||
val tick = time - lastTickTime > ProtocolDefinition.TICK_TIME
|
val tick = time - lastTickTime > ProtocolDefinition.TICK_TIME
|
||||||
if (tick) {
|
if (tick) {
|
||||||
@ -132,8 +135,8 @@ class GUIManager(
|
|||||||
lastTickTime = time
|
lastTickTime = time
|
||||||
}
|
}
|
||||||
|
|
||||||
if (element is Drawable && !element.skipDraw) {
|
if (element is AsyncDrawable && !element.skipDraw) {
|
||||||
element.draw()
|
element.drawAsync()
|
||||||
}
|
}
|
||||||
if (element is LayoutedGUIElement<*>) {
|
if (element is LayoutedGUIElement<*>) {
|
||||||
element.prepare()
|
element.prepare()
|
||||||
@ -143,7 +146,9 @@ class GUIManager(
|
|||||||
}
|
}
|
||||||
latch.dec()
|
latch.dec()
|
||||||
latch.await()
|
latch.await()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun draw() {
|
||||||
for ((index, element) in order.withIndex()) {
|
for ((index, element) in order.withIndex()) {
|
||||||
if (!element.enabled) {
|
if (!element.enabled) {
|
||||||
continue
|
continue
|
||||||
@ -151,6 +156,9 @@ class GUIManager(
|
|||||||
if (index != order.size - 1 && !element.activeWhenHidden) {
|
if (index != order.size - 1 && !element.activeWhenHidden) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
if (element is Drawable && !element.skipDraw) {
|
||||||
|
element.draw()
|
||||||
|
}
|
||||||
if (element is LayoutedGUIElement<*>) {
|
if (element is LayoutedGUIElement<*>) {
|
||||||
element.postPrepare()
|
element.postPrepare()
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,9 @@ import de.bixilon.minosoft.gui.rendering.gui.input.mouse.MouseActions
|
|||||||
import de.bixilon.minosoft.gui.rendering.gui.input.mouse.MouseButtons
|
import de.bixilon.minosoft.gui.rendering.gui.input.mouse.MouseButtons
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIMesh
|
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIMesh
|
||||||
import de.bixilon.minosoft.gui.rendering.input.count.MouseClickCounter
|
import de.bixilon.minosoft.gui.rendering.input.count.MouseClickCounter
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Drawable
|
import de.bixilon.minosoft.gui.rendering.renderer.drawable.AsyncDrawable
|
||||||
|
import de.bixilon.minosoft.gui.rendering.renderer.drawable.BaseDrawable
|
||||||
|
import de.bixilon.minosoft.gui.rendering.renderer.drawable.Drawable
|
||||||
import de.bixilon.minosoft.gui.rendering.system.window.KeyChangeTypes
|
import de.bixilon.minosoft.gui.rendering.system.window.KeyChangeTypes
|
||||||
import de.bixilon.minosoft.gui.rendering.util.mesh.Mesh
|
import de.bixilon.minosoft.gui.rendering.util.mesh.Mesh
|
||||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.EMPTY
|
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.EMPTY
|
||||||
@ -35,13 +37,13 @@ import de.bixilon.minosoft.util.collections.floats.DirectArrayFloatList
|
|||||||
|
|
||||||
open class GUIMeshElement<T : Element>(
|
open class GUIMeshElement<T : Element>(
|
||||||
val element: T,
|
val element: T,
|
||||||
) : HUDElement, Drawable {
|
) : HUDElement, AsyncDrawable, Drawable {
|
||||||
override val guiRenderer: GUIRenderer = element.guiRenderer
|
override val guiRenderer: GUIRenderer = element.guiRenderer
|
||||||
override val renderWindow: RenderWindow = guiRenderer.renderWindow
|
override val renderWindow: RenderWindow = guiRenderer.renderWindow
|
||||||
private val clickCounter = MouseClickCounter()
|
private val clickCounter = MouseClickCounter()
|
||||||
var mesh: GUIMesh = GUIMesh(renderWindow, guiRenderer.matrix, DirectArrayFloatList(1000))
|
var mesh: GUIMesh = GUIMesh(renderWindow, guiRenderer.matrix, DirectArrayFloatList(1000))
|
||||||
override val skipDraw: Boolean
|
override val skipDraw: Boolean
|
||||||
get() = if (element is Drawable) element.skipDraw else false
|
get() = if (element is BaseDrawable) element.skipDraw else false
|
||||||
protected var lastRevision = 0L
|
protected var lastRevision = 0L
|
||||||
protected var lastPosition: Vec2i? = null
|
protected var lastPosition: Vec2i? = null
|
||||||
protected var lastDragPosition: Vec2i? = null
|
protected var lastDragPosition: Vec2i? = null
|
||||||
@ -114,6 +116,12 @@ open class GUIMeshElement<T : Element>(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun drawAsync() {
|
||||||
|
if (element is AsyncDrawable) {
|
||||||
|
element.drawAsync()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun initMesh() {
|
fun initMesh() {
|
||||||
mesh.load()
|
mesh.load()
|
||||||
}
|
}
|
||||||
|
@ -17,20 +17,21 @@ import de.bixilon.kotlinglm.vec2.Vec2d
|
|||||||
import de.bixilon.kotlinglm.vec2.Vec2i
|
import de.bixilon.kotlinglm.vec2.Vec2i
|
||||||
import de.bixilon.kutil.time.TimeUtil
|
import de.bixilon.kutil.time.TimeUtil
|
||||||
import de.bixilon.minosoft.config.key.KeyCodes
|
import de.bixilon.minosoft.config.key.KeyCodes
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.GUIElementDrawer
|
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.GUIRenderer
|
import de.bixilon.minosoft.gui.rendering.gui.GUIRenderer
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.hud.Initializable
|
import de.bixilon.minosoft.gui.rendering.gui.hud.Initializable
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.input.mouse.MouseActions
|
import de.bixilon.minosoft.gui.rendering.gui.input.mouse.MouseActions
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.input.mouse.MouseButtons
|
import de.bixilon.minosoft.gui.rendering.gui.input.mouse.MouseButtons
|
||||||
import de.bixilon.minosoft.gui.rendering.input.InputHandler
|
import de.bixilon.minosoft.gui.rendering.input.InputHandler
|
||||||
import de.bixilon.minosoft.gui.rendering.input.count.MouseClickCounter
|
import de.bixilon.minosoft.gui.rendering.input.count.MouseClickCounter
|
||||||
|
import de.bixilon.minosoft.gui.rendering.renderer.drawable.AsyncDrawable
|
||||||
|
import de.bixilon.minosoft.gui.rendering.renderer.drawable.Drawable
|
||||||
import de.bixilon.minosoft.gui.rendering.system.window.CursorModes
|
import de.bixilon.minosoft.gui.rendering.system.window.CursorModes
|
||||||
import de.bixilon.minosoft.gui.rendering.system.window.KeyChangeTypes
|
import de.bixilon.minosoft.gui.rendering.system.window.KeyChangeTypes
|
||||||
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
||||||
|
|
||||||
class DraggedManager(
|
class DraggedManager(
|
||||||
override val guiRenderer: GUIRenderer,
|
private val guiRenderer: GUIRenderer,
|
||||||
) : Initializable, InputHandler, GUIElementDrawer {
|
) : Initializable, InputHandler, AsyncDrawable, Drawable {
|
||||||
private val clickCounter = MouseClickCounter()
|
private val clickCounter = MouseClickCounter()
|
||||||
var element: DraggedGUIElement<*>? = null
|
var element: DraggedGUIElement<*>? = null
|
||||||
set(value) {
|
set(value) {
|
||||||
@ -50,7 +51,7 @@ class DraggedManager(
|
|||||||
}
|
}
|
||||||
applyCursor()
|
applyCursor()
|
||||||
}
|
}
|
||||||
override var lastTickTime: Long = -1L
|
private var lastTickTime: Long = -1L
|
||||||
|
|
||||||
override fun init() {
|
override fun init() {
|
||||||
}
|
}
|
||||||
@ -70,7 +71,7 @@ class DraggedManager(
|
|||||||
window.cursorMode = if (element == null) CursorModes.NORMAL else CursorModes.HIDDEN
|
window.cursorMode = if (element == null) CursorModes.NORMAL else CursorModes.HIDDEN
|
||||||
}
|
}
|
||||||
|
|
||||||
fun draw() {
|
override fun drawAsync() {
|
||||||
val element = element ?: return
|
val element = element ?: return
|
||||||
val time = TimeUtil.millis
|
val time = TimeUtil.millis
|
||||||
val tick = time - lastTickTime > ProtocolDefinition.TICK_TIME
|
val tick = time - lastTickTime > ProtocolDefinition.TICK_TIME
|
||||||
@ -91,10 +92,17 @@ class DraggedManager(
|
|||||||
}
|
}
|
||||||
element.prepare()
|
element.prepare()
|
||||||
element.prepareAsync()
|
element.prepareAsync()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun draw() {
|
||||||
|
val element = element ?: return
|
||||||
|
if (!element.enabled) {
|
||||||
|
return
|
||||||
|
}
|
||||||
element.postPrepare()
|
element.postPrepare()
|
||||||
|
|
||||||
guiRenderer.setup()
|
guiRenderer.setup()
|
||||||
if (!element.enabled || element.mesh.data.isEmpty) {
|
if (element.mesh.data.isEmpty) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
element.mesh.draw()
|
element.mesh.draw()
|
||||||
|
@ -19,18 +19,19 @@ import de.bixilon.kutil.concurrent.pool.DefaultThreadPool
|
|||||||
import de.bixilon.kutil.latch.CountUpAndDownLatch
|
import de.bixilon.kutil.latch.CountUpAndDownLatch
|
||||||
import de.bixilon.kutil.time.TimeUtil
|
import de.bixilon.kutil.time.TimeUtil
|
||||||
import de.bixilon.minosoft.config.key.KeyCodes
|
import de.bixilon.minosoft.config.key.KeyCodes
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.GUIElementDrawer
|
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.GUIRenderer
|
import de.bixilon.minosoft.gui.rendering.gui.GUIRenderer
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.hud.Initializable
|
import de.bixilon.minosoft.gui.rendering.gui.hud.Initializable
|
||||||
import de.bixilon.minosoft.gui.rendering.input.InputHandler
|
import de.bixilon.minosoft.gui.rendering.input.InputHandler
|
||||||
|
import de.bixilon.minosoft.gui.rendering.renderer.drawable.AsyncDrawable
|
||||||
|
import de.bixilon.minosoft.gui.rendering.renderer.drawable.Drawable
|
||||||
import de.bixilon.minosoft.gui.rendering.system.window.KeyChangeTypes
|
import de.bixilon.minosoft.gui.rendering.system.window.KeyChangeTypes
|
||||||
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
||||||
|
|
||||||
class PopperManager(
|
class PopperManager(
|
||||||
override val guiRenderer: GUIRenderer,
|
private val guiRenderer: GUIRenderer,
|
||||||
) : Initializable, InputHandler, GUIElementDrawer {
|
) : Initializable, InputHandler, AsyncDrawable, Drawable {
|
||||||
private val poppers: MutableList<PopperGUIElement> = mutableListOf()
|
private val poppers: MutableList<PopperGUIElement> = mutableListOf()
|
||||||
override var lastTickTime: Long = -1L
|
private var lastTickTime: Long = -1L
|
||||||
|
|
||||||
|
|
||||||
fun onMatrixChange() {
|
fun onMatrixChange() {
|
||||||
@ -39,7 +40,7 @@ class PopperManager(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun draw() {
|
override fun drawAsync() {
|
||||||
val toRemove: MutableSet<PopperGUIElement> = mutableSetOf()
|
val toRemove: MutableSet<PopperGUIElement> = mutableSetOf()
|
||||||
val time = TimeUtil.millis
|
val time = TimeUtil.millis
|
||||||
val tick = time - lastTickTime > ProtocolDefinition.TICK_TIME
|
val tick = time - lastTickTime > ProtocolDefinition.TICK_TIME
|
||||||
@ -59,7 +60,7 @@ class PopperManager(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!popper.skipDraw) {
|
if (!popper.skipDraw) {
|
||||||
popper.draw()
|
popper.drawAsync()
|
||||||
}
|
}
|
||||||
latch.inc()
|
latch.inc()
|
||||||
popper.prepare()
|
popper.prepare()
|
||||||
@ -69,8 +70,13 @@ class PopperManager(
|
|||||||
latch.await()
|
latch.await()
|
||||||
|
|
||||||
poppers -= toRemove
|
poppers -= toRemove
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun draw() {
|
||||||
for (popper in poppers) {
|
for (popper in poppers) {
|
||||||
|
if (!popper.skipDraw) {
|
||||||
|
popper.draw()
|
||||||
|
}
|
||||||
popper.postPrepare()
|
popper.postPrepare()
|
||||||
|
|
||||||
guiRenderer.setup()
|
guiRenderer.setup()
|
||||||
|
@ -37,19 +37,22 @@ import de.bixilon.minosoft.gui.rendering.gui.hud.elements.other.PerformanceHUDEl
|
|||||||
import de.bixilon.minosoft.gui.rendering.gui.hud.elements.scoreboard.ScoreboardSideElement
|
import de.bixilon.minosoft.gui.rendering.gui.hud.elements.scoreboard.ScoreboardSideElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.hud.elements.tab.TabListElement
|
import de.bixilon.minosoft.gui.rendering.gui.hud.elements.tab.TabListElement
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.hud.elements.title.TitleElement
|
import de.bixilon.minosoft.gui.rendering.gui.hud.elements.title.TitleElement
|
||||||
|
import de.bixilon.minosoft.gui.rendering.renderer.drawable.AsyncDrawable
|
||||||
|
import de.bixilon.minosoft.gui.rendering.renderer.drawable.Drawable
|
||||||
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
||||||
|
|
||||||
class HUDManager(
|
class HUDManager(
|
||||||
override val guiRenderer: GUIRenderer,
|
override val guiRenderer: GUIRenderer,
|
||||||
) : GUIElementDrawer, Initializable {
|
) : GUIElementDrawer, Initializable, AsyncDrawable, Drawable {
|
||||||
val renderWindow = guiRenderer.renderWindow
|
val renderWindow = guiRenderer.renderWindow
|
||||||
|
|
||||||
private val hudElements: LockMap<ResourceLocation, HUDElement> = lockMapOf()
|
private val hudElements: LockMap<ResourceLocation, HUDElement> = lockMapOf()
|
||||||
|
|
||||||
override var lastTickTime = 0L
|
override var lastTickTime = 0L
|
||||||
|
|
||||||
var enabled: Boolean = true
|
var enabled: Boolean = true
|
||||||
|
|
||||||
|
private var values: Collection<HUDElement> = emptyList()
|
||||||
|
|
||||||
fun registerElement(hudBuilder: HUDBuilder<*>) {
|
fun registerElement(hudBuilder: HUDBuilder<*>) {
|
||||||
val hudElement = hudBuilder.build(guiRenderer)
|
val hudElement = hudBuilder.build(guiRenderer)
|
||||||
hudElements[hudBuilder.RESOURCE_LOCATION] = hudElement
|
hudElements[hudBuilder.RESOURCE_LOCATION] = hudElement
|
||||||
@ -105,10 +108,16 @@ class HUDManager(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun draw() {
|
override fun drawAsync() {
|
||||||
hudElements.lock.acquire()
|
hudElements.lock.acquire()
|
||||||
drawElements(hudElements.values)
|
this.values = hudElements.values
|
||||||
hudElements.lock.release()
|
hudElements.lock.release()
|
||||||
|
tickElements(values)
|
||||||
|
prepareElements(values)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun draw() {
|
||||||
|
drawElements(values)
|
||||||
}
|
}
|
||||||
|
|
||||||
operator fun <T : HUDElement> get(hudBuilder: HUDBuilder<T>): T? {
|
operator fun <T : HUDElement> get(hudBuilder: HUDBuilder<T>): T? {
|
||||||
|
@ -16,7 +16,7 @@ package de.bixilon.minosoft.gui.rendering.gui.hud.elements
|
|||||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.GUIRenderer
|
import de.bixilon.minosoft.gui.rendering.gui.GUIRenderer
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.hud.HUDElement
|
import de.bixilon.minosoft.gui.rendering.gui.hud.HUDElement
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Drawable
|
import de.bixilon.minosoft.gui.rendering.renderer.drawable.Drawable
|
||||||
|
|
||||||
abstract class CustomHUDElement(final override val guiRenderer: GUIRenderer) : HUDElement, Drawable {
|
abstract class CustomHUDElement(final override val guiRenderer: GUIRenderer) : HUDElement, Drawable {
|
||||||
override val renderWindow: RenderWindow = guiRenderer.renderWindow
|
override val renderWindow: RenderWindow = guiRenderer.renderWindow
|
||||||
|
@ -22,7 +22,7 @@ import de.bixilon.minosoft.gui.rendering.gui.gui.AbstractLayout
|
|||||||
import de.bixilon.minosoft.gui.rendering.gui.hud.Initializable
|
import de.bixilon.minosoft.gui.rendering.gui.hud.Initializable
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexConsumer
|
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexConsumer
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexOptions
|
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexOptions
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Drawable
|
import de.bixilon.minosoft.gui.rendering.renderer.drawable.Drawable
|
||||||
|
|
||||||
abstract class AbstractChatElement(guiRenderer: GUIRenderer) : Element(guiRenderer), Initializable, Drawable, AbstractLayout<Element> {
|
abstract class AbstractChatElement(guiRenderer: GUIRenderer) : Element(guiRenderer), Initializable, Drawable, AbstractLayout<Element> {
|
||||||
protected val connection = renderWindow.connection
|
protected val connection = renderWindow.connection
|
||||||
|
@ -54,7 +54,7 @@ class ChatElement(guiRenderer: GUIRenderer) : AbstractChatElement(guiRenderer),
|
|||||||
}
|
}
|
||||||
override var skipDraw: Boolean
|
override var skipDraw: Boolean
|
||||||
// skips hud draw and draws it in gui stage
|
// skips hud draw and draws it in gui stage
|
||||||
get() = chatProfile.hidden || active
|
get() = active || chatProfile.hidden
|
||||||
set(value) {
|
set(value) {
|
||||||
chatProfile.hidden = !value
|
chatProfile.hidden = !value
|
||||||
}
|
}
|
||||||
|
@ -26,10 +26,10 @@ import de.bixilon.minosoft.gui.rendering.gui.gui.LayoutedGUIElement
|
|||||||
import de.bixilon.minosoft.gui.rendering.gui.hud.elements.HUDBuilder
|
import de.bixilon.minosoft.gui.rendering.gui.hud.elements.HUDBuilder
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexConsumer
|
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexConsumer
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexOptions
|
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexOptions
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Drawable
|
import de.bixilon.minosoft.gui.rendering.renderer.drawable.AsyncDrawable
|
||||||
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
||||||
|
|
||||||
class BreakProgressHUDElement(guiRenderer: GUIRenderer) : Element(guiRenderer), LayoutedElement, Drawable {
|
class BreakProgressHUDElement(guiRenderer: GUIRenderer) : Element(guiRenderer), LayoutedElement, AsyncDrawable {
|
||||||
private val textElement = TextElement(guiRenderer, "").apply { parent = this@BreakProgressHUDElement }
|
private val textElement = TextElement(guiRenderer, "").apply { parent = this@BreakProgressHUDElement }
|
||||||
private val breakInteractionHandler = guiRenderer.renderWindow.inputHandler.interactionManager.`break`
|
private val breakInteractionHandler = guiRenderer.renderWindow.inputHandler.interactionManager.`break`
|
||||||
private var previousProgress = -1.0
|
private var previousProgress = -1.0
|
||||||
@ -40,7 +40,7 @@ class BreakProgressHUDElement(guiRenderer: GUIRenderer) : Element(guiRenderer),
|
|||||||
|
|
||||||
private var percent = -1
|
private var percent = -1
|
||||||
|
|
||||||
override fun draw() {
|
override fun drawAsync() {
|
||||||
val breakProgress = breakInteractionHandler.breakProgress
|
val breakProgress = breakInteractionHandler.breakProgress
|
||||||
if (this.previousProgress == breakProgress) {
|
if (this.previousProgress == breakProgress) {
|
||||||
return
|
return
|
||||||
|
@ -35,14 +35,14 @@ import de.bixilon.minosoft.gui.rendering.gui.hud.Initializable
|
|||||||
import de.bixilon.minosoft.gui.rendering.gui.hud.elements.HUDBuilder
|
import de.bixilon.minosoft.gui.rendering.gui.hud.elements.HUDBuilder
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexConsumer
|
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexConsumer
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexOptions
|
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexOptions
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Drawable
|
import de.bixilon.minosoft.gui.rendering.renderer.drawable.AsyncDrawable
|
||||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.EMPTY
|
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.EMPTY
|
||||||
import de.bixilon.minosoft.modding.event.events.scoreboard.*
|
import de.bixilon.minosoft.modding.event.events.scoreboard.*
|
||||||
import de.bixilon.minosoft.modding.event.events.scoreboard.team.TeamUpdateEvent
|
import de.bixilon.minosoft.modding.event.events.scoreboard.team.TeamUpdateEvent
|
||||||
import de.bixilon.minosoft.modding.event.invoker.CallbackEventInvoker
|
import de.bixilon.minosoft.modding.event.invoker.CallbackEventInvoker
|
||||||
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
||||||
|
|
||||||
class ScoreboardSideElement(guiRenderer: GUIRenderer) : Element(guiRenderer), LayoutedElement, Initializable, Drawable {
|
class ScoreboardSideElement(guiRenderer: GUIRenderer) : Element(guiRenderer), LayoutedElement, Initializable, AsyncDrawable {
|
||||||
private val backgroundElement = ColorElement(guiRenderer, size = Vec2i.EMPTY, color = RenderConstants.TEXT_BACKGROUND_COLOR)
|
private val backgroundElement = ColorElement(guiRenderer, size = Vec2i.EMPTY, color = RenderConstants.TEXT_BACKGROUND_COLOR)
|
||||||
private val nameBackgroundElement = ColorElement(guiRenderer, size = Vec2i.EMPTY, color = RenderConstants.TEXT_BACKGROUND_COLOR)
|
private val nameBackgroundElement = ColorElement(guiRenderer, size = Vec2i.EMPTY, color = RenderConstants.TEXT_BACKGROUND_COLOR)
|
||||||
private val nameElement = TextElement(guiRenderer, "", background = false, parent = this)
|
private val nameElement = TextElement(guiRenderer, "", background = false, parent = this)
|
||||||
@ -205,7 +205,7 @@ class ScoreboardSideElement(guiRenderer: GUIRenderer) : Element(guiRenderer), La
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun draw() {
|
override fun drawAsync() {
|
||||||
// check if content was changed, and we need to re-prepare before drawing
|
// check if content was changed, and we need to re-prepare before drawing
|
||||||
if (!cacheUpToDate) {
|
if (!cacheUpToDate) {
|
||||||
recalculateSize()
|
recalculateSize()
|
||||||
|
@ -35,7 +35,7 @@ import de.bixilon.minosoft.gui.rendering.gui.hud.Initializable
|
|||||||
import de.bixilon.minosoft.gui.rendering.gui.hud.elements.HUDBuilder
|
import de.bixilon.minosoft.gui.rendering.gui.hud.elements.HUDBuilder
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexConsumer
|
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexConsumer
|
||||||
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexOptions
|
import de.bixilon.minosoft.gui.rendering.gui.mesh.GUIVertexOptions
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Drawable
|
import de.bixilon.minosoft.gui.rendering.renderer.drawable.AsyncDrawable
|
||||||
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.EMPTY
|
import de.bixilon.minosoft.gui.rendering.util.vec.vec2.Vec2iUtil.EMPTY
|
||||||
import de.bixilon.minosoft.modding.event.events.TabListEntryChangeEvent
|
import de.bixilon.minosoft.modding.event.events.TabListEntryChangeEvent
|
||||||
import de.bixilon.minosoft.modding.event.events.TabListInfoChangeEvent
|
import de.bixilon.minosoft.modding.event.events.TabListInfoChangeEvent
|
||||||
@ -44,7 +44,7 @@ import de.bixilon.minosoft.util.KUtil.toResourceLocation
|
|||||||
import java.util.*
|
import java.util.*
|
||||||
import java.util.concurrent.locks.ReentrantLock
|
import java.util.concurrent.locks.ReentrantLock
|
||||||
|
|
||||||
class TabListElement(guiRenderer: GUIRenderer) : Element(guiRenderer), LayoutedElement, Initializable, Drawable {
|
class TabListElement(guiRenderer: GUIRenderer) : Element(guiRenderer), LayoutedElement, Initializable, AsyncDrawable {
|
||||||
val header = TextElement(guiRenderer, "", background = false, fontAlignment = HorizontalAlignments.CENTER, parent = this)
|
val header = TextElement(guiRenderer, "", background = false, fontAlignment = HorizontalAlignments.CENTER, parent = this)
|
||||||
val footer = TextElement(guiRenderer, "", background = false, fontAlignment = HorizontalAlignments.CENTER, parent = this)
|
val footer = TextElement(guiRenderer, "", background = false, fontAlignment = HorizontalAlignments.CENTER, parent = this)
|
||||||
|
|
||||||
@ -239,7 +239,7 @@ class TabListElement(guiRenderer: GUIRenderer) : Element(guiRenderer), LayoutedE
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
override fun draw() {
|
override fun drawAsync() {
|
||||||
// check if content was changed, and we need to re-prepare before drawing
|
// check if content was changed, and we need to re-prepare before drawing
|
||||||
if (needsApply) {
|
if (needsApply) {
|
||||||
forceApply()
|
forceApply()
|
||||||
|
@ -28,8 +28,8 @@ import de.bixilon.minosoft.gui.rendering.RenderConstants
|
|||||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||||
import de.bixilon.minosoft.gui.rendering.modding.events.CameraMatrixChangeEvent
|
import de.bixilon.minosoft.gui.rendering.modding.events.CameraMatrixChangeEvent
|
||||||
import de.bixilon.minosoft.gui.rendering.particle.types.Particle
|
import de.bixilon.minosoft.gui.rendering.particle.types.Particle
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.AsyncRenderer
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.AsyncRenderer
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.RendererBuilder
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.RendererBuilder
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.RenderSystem
|
import de.bixilon.minosoft.gui.rendering.system.base.RenderSystem
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.phases.SkipAll
|
import de.bixilon.minosoft.gui.rendering.system.base.phases.SkipAll
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.phases.TranslucentDrawable
|
import de.bixilon.minosoft.gui.rendering.system.base.phases.TranslucentDrawable
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
|
|
||||||
package de.bixilon.minosoft.gui.rendering.renderer
|
package de.bixilon.minosoft.gui.rendering.renderer
|
||||||
|
|
||||||
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.Renderer
|
||||||
import de.bixilon.minosoft.gui.rendering.util.mesh.LineMesh
|
import de.bixilon.minosoft.gui.rendering.util.mesh.LineMesh
|
||||||
import de.bixilon.minosoft.gui.rendering.util.mesh.Mesh
|
import de.bixilon.minosoft.gui.rendering.util.mesh.Mesh
|
||||||
|
|
||||||
|
@ -0,0 +1,26 @@
|
|||||||
|
/*
|
||||||
|
* Minosoft
|
||||||
|
* Copyright (C) 2020-2022 Moritz Zwerger
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package de.bixilon.minosoft.gui.rendering.renderer.drawable
|
||||||
|
|
||||||
|
interface AsyncDrawable : DeltaAsyncDrawable {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Functions gets called every frame
|
||||||
|
*/
|
||||||
|
fun drawAsync() {}
|
||||||
|
|
||||||
|
override fun drawAsync(millis: Long) {
|
||||||
|
drawAsync()
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
/*
|
||||||
|
* Minosoft
|
||||||
|
* Copyright (C) 2020-2022 Moritz Zwerger
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package de.bixilon.minosoft.gui.rendering.renderer.drawable
|
||||||
|
|
||||||
|
interface BaseDrawable {
|
||||||
|
val skipDraw: Boolean
|
||||||
|
get() = false
|
||||||
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
/*
|
||||||
|
* Minosoft
|
||||||
|
* Copyright (C) 2020-2022 Moritz Zwerger
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package de.bixilon.minosoft.gui.rendering.renderer.drawable
|
||||||
|
|
||||||
|
interface DeltaAsyncDrawable : BaseDrawable {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Functions gets called every frame
|
||||||
|
*/
|
||||||
|
fun drawAsync(millis: Long) = Unit
|
||||||
|
}
|
@ -11,12 +11,9 @@
|
|||||||
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package de.bixilon.minosoft.gui.rendering.renderer
|
package de.bixilon.minosoft.gui.rendering.renderer.drawable
|
||||||
|
|
||||||
interface DeltaDrawable {
|
|
||||||
val skipDraw: Boolean
|
|
||||||
get() = false
|
|
||||||
|
|
||||||
|
interface DeltaDrawable : BaseDrawable {
|
||||||
/**
|
/**
|
||||||
* Functions gets called every frame
|
* Functions gets called every frame
|
||||||
*/
|
*/
|
@ -11,7 +11,7 @@
|
|||||||
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package de.bixilon.minosoft.gui.rendering.renderer
|
package de.bixilon.minosoft.gui.rendering.renderer.drawable
|
||||||
|
|
||||||
interface Drawable : DeltaDrawable {
|
interface Drawable : DeltaDrawable {
|
||||||
|
|
@ -11,9 +11,9 @@
|
|||||||
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package de.bixilon.minosoft.gui.rendering.renderer
|
package de.bixilon.minosoft.gui.rendering.renderer.renderer
|
||||||
|
|
||||||
interface AsyncRenderer : Renderer {
|
interface AsyncRenderer : Renderer {
|
||||||
|
|
||||||
fun prepareDrawAsync() = Unit
|
fun prepareDrawAsync()
|
||||||
}
|
}
|
@ -11,7 +11,7 @@
|
|||||||
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package de.bixilon.minosoft.gui.rendering.renderer
|
package de.bixilon.minosoft.gui.rendering.renderer.renderer
|
||||||
|
|
||||||
import de.bixilon.kutil.latch.CountUpAndDownLatch
|
import de.bixilon.kutil.latch.CountUpAndDownLatch
|
||||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Minosoft
|
* Minosoft
|
||||||
* Copyright (C) 2021 Moritz Zwerger
|
* Copyright (C) 2020-2022 Moritz Zwerger
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
||||||
*
|
*
|
||||||
@ -11,7 +11,7 @@
|
|||||||
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package de.bixilon.minosoft.gui.rendering.renderer
|
package de.bixilon.minosoft.gui.rendering.renderer.renderer
|
||||||
|
|
||||||
import de.bixilon.minosoft.data.registries.CompanionResourceLocation
|
import de.bixilon.minosoft.data.registries.CompanionResourceLocation
|
||||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
@ -11,7 +11,7 @@
|
|||||||
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
* This software is not affiliated with Mojang AB, the original developer of Minecraft.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package de.bixilon.minosoft.gui.rendering.renderer
|
package de.bixilon.minosoft.gui.rendering.renderer.renderer
|
||||||
|
|
||||||
import de.bixilon.kutil.cast.CastUtil.unsafeCast
|
import de.bixilon.kutil.cast.CastUtil.unsafeCast
|
||||||
import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf
|
import de.bixilon.kutil.collections.CollectionUtil.synchronizedMapOf
|
@ -19,7 +19,7 @@ import de.bixilon.kotlinglm.vec3.Vec3
|
|||||||
import de.bixilon.kutil.time.TimeUtil
|
import de.bixilon.kutil.time.TimeUtil
|
||||||
import de.bixilon.minosoft.data.entities.EntityRotation
|
import de.bixilon.minosoft.data.entities.EntityRotation
|
||||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.DeltaDrawable
|
import de.bixilon.minosoft.gui.rendering.renderer.drawable.DeltaDrawable
|
||||||
import de.bixilon.minosoft.gui.rendering.skeletal.baked.BakedSkeletalModel
|
import de.bixilon.minosoft.gui.rendering.skeletal.baked.BakedSkeletalModel
|
||||||
import de.bixilon.minosoft.gui.rendering.skeletal.model.animations.SkeletalAnimation
|
import de.bixilon.minosoft.gui.rendering.skeletal.model.animations.SkeletalAnimation
|
||||||
import de.bixilon.minosoft.gui.rendering.skeletal.model.outliner.SkeletalOutliner
|
import de.bixilon.minosoft.gui.rendering.skeletal.model.outliner.SkeletalOutliner
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
package de.bixilon.minosoft.gui.rendering.skeletal.model.animations
|
package de.bixilon.minosoft.gui.rendering.skeletal.model.animations
|
||||||
|
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.DeltaDrawable
|
import de.bixilon.minosoft.gui.rendering.renderer.drawable.DeltaDrawable
|
||||||
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
|
||||||
|
|
||||||
abstract class CustomSkeletalAnimation(override val name: String) : SkeletalAnimation, DeltaDrawable {
|
abstract class CustomSkeletalAnimation(override val name: String) : SkeletalAnimation, DeltaDrawable {
|
||||||
|
@ -24,8 +24,8 @@ import de.bixilon.minosoft.data.text.formatting.color.RGBColor
|
|||||||
import de.bixilon.minosoft.gui.rendering.RenderConstants
|
import de.bixilon.minosoft.gui.rendering.RenderConstants
|
||||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||||
import de.bixilon.minosoft.gui.rendering.modding.events.CameraMatrixChangeEvent
|
import de.bixilon.minosoft.gui.rendering.modding.events.CameraMatrixChangeEvent
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Renderer
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.Renderer
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.RendererBuilder
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.RendererBuilder
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.*
|
import de.bixilon.minosoft.gui.rendering.system.base.*
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.buffer.frame.Framebuffer
|
import de.bixilon.minosoft.gui.rendering.system.base.buffer.frame.Framebuffer
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.phases.PreDrawable
|
import de.bixilon.minosoft.gui.rendering.system.base.phases.PreDrawable
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
package de.bixilon.minosoft.gui.rendering.system.base.phases
|
package de.bixilon.minosoft.gui.rendering.system.base.phases
|
||||||
|
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Renderer
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.Renderer
|
||||||
|
|
||||||
interface CustomDrawable : Renderer {
|
interface CustomDrawable : Renderer {
|
||||||
val skipCustom: Boolean
|
val skipCustom: Boolean
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
package de.bixilon.minosoft.gui.rendering.system.base.phases
|
package de.bixilon.minosoft.gui.rendering.system.base.phases
|
||||||
|
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Renderer
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.Renderer
|
||||||
|
|
||||||
interface OpaqueDrawable : Renderer {
|
interface OpaqueDrawable : Renderer {
|
||||||
val skipOpaque: Boolean
|
val skipOpaque: Boolean
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
package de.bixilon.minosoft.gui.rendering.system.base.phases
|
package de.bixilon.minosoft.gui.rendering.system.base.phases
|
||||||
|
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Renderer
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.Renderer
|
||||||
|
|
||||||
interface OtherDrawable : Renderer {
|
interface OtherDrawable : Renderer {
|
||||||
val skipOther: Boolean
|
val skipOther: Boolean
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
package de.bixilon.minosoft.gui.rendering.system.base.phases
|
package de.bixilon.minosoft.gui.rendering.system.base.phases
|
||||||
|
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Renderer
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.Renderer
|
||||||
|
|
||||||
interface PostDrawable : Renderer {
|
interface PostDrawable : Renderer {
|
||||||
val skipPost: Boolean
|
val skipPost: Boolean
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
package de.bixilon.minosoft.gui.rendering.system.base.phases
|
package de.bixilon.minosoft.gui.rendering.system.base.phases
|
||||||
|
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Renderer
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.Renderer
|
||||||
|
|
||||||
interface PreDrawable : Renderer {
|
interface PreDrawable : Renderer {
|
||||||
val skipPre: Boolean
|
val skipPre: Boolean
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Minosoft
|
* Minosoft
|
||||||
* Copyright (C) 2021 Moritz Zwerger
|
* Copyright (C) 2020-2022 Moritz Zwerger
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
||||||
*
|
*
|
||||||
@ -14,7 +14,7 @@
|
|||||||
package de.bixilon.minosoft.gui.rendering.system.base.phases
|
package de.bixilon.minosoft.gui.rendering.system.base.phases
|
||||||
|
|
||||||
import de.bixilon.kutil.cast.CastUtil.unsafeCast
|
import de.bixilon.kutil.cast.CastUtil.unsafeCast
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Renderer
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.Renderer
|
||||||
import kotlin.reflect.KClass
|
import kotlin.reflect.KClass
|
||||||
|
|
||||||
class RenderPhases<T : Renderer>(
|
class RenderPhases<T : Renderer>(
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
package de.bixilon.minosoft.gui.rendering.system.base.phases
|
package de.bixilon.minosoft.gui.rendering.system.base.phases
|
||||||
|
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Renderer
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.Renderer
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.BlendingFunctions
|
import de.bixilon.minosoft.gui.rendering.system.base.BlendingFunctions
|
||||||
|
|
||||||
interface TranslucentDrawable : Renderer {
|
interface TranslucentDrawable : Renderer {
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
package de.bixilon.minosoft.gui.rendering.system.base.phases
|
package de.bixilon.minosoft.gui.rendering.system.base.phases
|
||||||
|
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Renderer
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.Renderer
|
||||||
|
|
||||||
interface TransparentDrawable : Renderer {
|
interface TransparentDrawable : Renderer {
|
||||||
val skipTransparent: Boolean
|
val skipTransparent: Boolean
|
||||||
|
@ -28,7 +28,7 @@ import kotlin.math.max
|
|||||||
interface Shader {
|
interface Shader {
|
||||||
val loaded: Boolean
|
val loaded: Boolean
|
||||||
val renderWindow: RenderWindow
|
val renderWindow: RenderWindow
|
||||||
val uniforms: List<String>
|
val uniforms: Set<String>
|
||||||
val defines: MutableMap<String, Any>
|
val defines: MutableMap<String, Any>
|
||||||
|
|
||||||
val log: String
|
val log: String
|
||||||
|
@ -41,7 +41,7 @@ class OpenGLShader(
|
|||||||
private set
|
private set
|
||||||
override val defines: MutableMap<String, Any> = mutableMapOf()
|
override val defines: MutableMap<String, Any> = mutableMapOf()
|
||||||
private var shader = -1
|
private var shader = -1
|
||||||
override var uniforms: MutableList<String> = mutableListOf()
|
override var uniforms: MutableSet<String> = mutableSetOf()
|
||||||
private set
|
private set
|
||||||
private val uniformLocations: Object2IntOpenHashMap<String> = Object2IntOpenHashMap()
|
private val uniformLocations: Object2IntOpenHashMap<String> = Object2IntOpenHashMap()
|
||||||
|
|
||||||
|
@ -38,8 +38,8 @@ import de.bixilon.minosoft.gui.rendering.RenderWindow
|
|||||||
import de.bixilon.minosoft.gui.rendering.RenderingStates
|
import de.bixilon.minosoft.gui.rendering.RenderingStates
|
||||||
import de.bixilon.minosoft.gui.rendering.modding.events.RenderingStateChangeEvent
|
import de.bixilon.minosoft.gui.rendering.modding.events.RenderingStateChangeEvent
|
||||||
import de.bixilon.minosoft.gui.rendering.modding.events.VisibilityGraphChangeEvent
|
import de.bixilon.minosoft.gui.rendering.modding.events.VisibilityGraphChangeEvent
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Renderer
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.Renderer
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.RendererBuilder
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.RendererBuilder
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.DepthFunctions
|
import de.bixilon.minosoft.gui.rendering.system.base.DepthFunctions
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.RenderSystem
|
import de.bixilon.minosoft.gui.rendering.system.base.RenderSystem
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.RenderingCapabilities
|
import de.bixilon.minosoft.gui.rendering.system.base.RenderingCapabilities
|
||||||
|
@ -21,8 +21,8 @@ import de.bixilon.minosoft.data.registries.ResourceLocation
|
|||||||
import de.bixilon.minosoft.data.text.formatting.color.RGBColor.Companion.asColor
|
import de.bixilon.minosoft.data.text.formatting.color.RGBColor.Companion.asColor
|
||||||
import de.bixilon.minosoft.data.world.border.WorldBorderState
|
import de.bixilon.minosoft.data.world.border.WorldBorderState
|
||||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.Renderer
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.Renderer
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.RendererBuilder
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.RendererBuilder
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.BlendingFunctions
|
import de.bixilon.minosoft.gui.rendering.system.base.BlendingFunctions
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.RenderSystem
|
import de.bixilon.minosoft.gui.rendering.system.base.RenderSystem
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.phases.TranslucentDrawable
|
import de.bixilon.minosoft.gui.rendering.system.base.phases.TranslucentDrawable
|
||||||
|
@ -25,9 +25,9 @@ import de.bixilon.minosoft.data.registries.dimension.DimensionProperties
|
|||||||
import de.bixilon.minosoft.data.text.formatting.color.ChatColors
|
import de.bixilon.minosoft.data.text.formatting.color.ChatColors
|
||||||
import de.bixilon.minosoft.gui.rendering.RenderConstants
|
import de.bixilon.minosoft.gui.rendering.RenderConstants
|
||||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.AsyncRenderer
|
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.MeshSwapper
|
import de.bixilon.minosoft.gui.rendering.renderer.MeshSwapper
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.RendererBuilder
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.AsyncRenderer
|
||||||
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.RendererBuilder
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.RenderSystem
|
import de.bixilon.minosoft.gui.rendering.system.base.RenderSystem
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.phases.OpaqueDrawable
|
import de.bixilon.minosoft.gui.rendering.system.base.phases.OpaqueDrawable
|
||||||
import de.bixilon.minosoft.gui.rendering.util.mesh.LineMesh
|
import de.bixilon.minosoft.gui.rendering.util.mesh.LineMesh
|
||||||
|
@ -24,9 +24,9 @@ import de.bixilon.minosoft.data.registries.blocks.types.entity.BlockWithEntity
|
|||||||
import de.bixilon.minosoft.gui.rendering.RenderConstants
|
import de.bixilon.minosoft.gui.rendering.RenderConstants
|
||||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||||
import de.bixilon.minosoft.gui.rendering.camera.target.targets.BlockTarget
|
import de.bixilon.minosoft.gui.rendering.camera.target.targets.BlockTarget
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.AsyncRenderer
|
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.MeshSwapper
|
import de.bixilon.minosoft.gui.rendering.renderer.MeshSwapper
|
||||||
import de.bixilon.minosoft.gui.rendering.renderer.RendererBuilder
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.AsyncRenderer
|
||||||
|
import de.bixilon.minosoft.gui.rendering.renderer.renderer.RendererBuilder
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.DepthFunctions
|
import de.bixilon.minosoft.gui.rendering.system.base.DepthFunctions
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.RenderSystem
|
import de.bixilon.minosoft.gui.rendering.system.base.RenderSystem
|
||||||
import de.bixilon.minosoft.gui.rendering.system.base.phases.OtherDrawable
|
import de.bixilon.minosoft.gui.rendering.system.base.phases.OtherDrawable
|
||||||
|
Loading…
x
Reference in New Issue
Block a user