Fixed screen gui not resizing on resolution change. I think.

This commit is contained in:
Florian Nücke 2014-06-14 22:50:01 +02:00
parent 832e0cd84b
commit e67b103a5d
3 changed files with 17 additions and 24 deletions

View File

@ -249,7 +249,7 @@ class Robot(playerInventory: InventoryPlayer, val robot: tileentity.Robot) exten
}
}
override protected def changeSize(w: Double, h: Double) = {
override protected def changeSize(w: Double, h: Double, recompile: Boolean) = {
val bw = w * MonospaceFontRenderer.fontWidth
val bh = h * MonospaceFontRenderer.fontHeight
val scaleX = math.min(bufferWidth / (bw + bufferMargin * 2.0), 1)

View File

@ -105,13 +105,11 @@ class Screen(val buffer: api.component.TextBuffer, val hasMouse: Boolean, val ha
GL11.glTranslatef(bufferMargin, bufferMargin, 0)
GL11.glScaled(scale, scale, 1)
RenderState.makeItBlend()
if (BufferRenderer.drawText(buffer)) {
adjustToBufferChange()
}
BufferRenderer.drawText(buffer)
}
}
override protected def changeSize(w: Double, h: Double) = {
override protected def changeSize(w: Double, h: Double, recompile: Boolean) = {
val bw = buffer.renderWidth
val bh = buffer.renderHeight
val scaleX = math.min(width / (bw + bufferMargin * 2.0), 1)
@ -121,7 +119,9 @@ class Screen(val buffer: api.component.TextBuffer, val hasMouse: Boolean, val ha
val innerHeight = (bh * scale).toInt
x = (width - (innerWidth + bufferMargin * 2)) / 2
y = (height - (innerHeight + bufferMargin * 2)) / 2
BufferRenderer.compileBackground(innerWidth, innerHeight)
if (recompile) {
BufferRenderer.compileBackground(innerWidth, innerHeight)
}
scale
}
}

View File

@ -26,16 +26,11 @@ trait TextBuffer extends GuiScreen {
protected var currentWidth, currentHeight = -1
private var shouldRecompileDisplayLists = true
private var showKeyboardMissing = 0L
protected var scale = 0.0
def adjustToBufferChange() {
shouldRecompileDisplayLists = true
}
override def doesGuiPauseGame = false
override def initGui() = {
@ -43,7 +38,6 @@ trait TextBuffer extends GuiScreen {
MonospaceFontRenderer.init(Minecraft.getMinecraft.renderEngine)
BufferRenderer.init(Minecraft.getMinecraft.renderEngine)
Keyboard.enableRepeatEvents(true)
adjustToBufferChange()
}
override def onGuiClosed() = {
@ -55,18 +49,17 @@ trait TextBuffer extends GuiScreen {
}
protected def drawBufferLayer() {
if (shouldRecompileDisplayLists) {
shouldRecompileDisplayLists = false
if (buffer != null) {
currentWidth = buffer.getWidth
currentHeight = buffer.getHeight
}
else {
currentWidth = 0
currentHeight = 0
}
scale = changeSize(currentWidth, currentHeight)
val oldWidth = currentWidth
val oldHeight = currentHeight
if (buffer != null) {
currentWidth = buffer.getWidth
currentHeight = buffer.getHeight
}
else {
currentWidth = 0
currentHeight = 0
}
scale = changeSize(currentWidth, currentHeight, oldWidth != currentWidth || oldHeight != currentHeight)
RenderState.checkError(getClass.getName + ".drawBufferLayer: entering (aka: wasntme)")
@ -139,7 +132,7 @@ trait TextBuffer extends GuiScreen {
}
}
protected def changeSize(w: Double, h: Double): Double
protected def changeSize(w: Double, h: Double, recompile: Boolean): Double
private def ignoreRepeat(char: Char, code: Int) = {
code == Keyboard.KEY_LCONTROL ||