mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-19 04:06:43 -04:00
GlRenderState all the things, fixing a couple of rendering glitches.
This commit is contained in:
parent
b2c30e34bc
commit
b526d07079
@ -20,7 +20,7 @@ object Textures {
|
||||
|
||||
override protected def basePath = "textures/font/%s.png"
|
||||
|
||||
override protected def loader(map: TextureMap, loc: ResourceLocation) = textureManager.bindTexture(loc)
|
||||
override protected def loader(map: TextureMap, loc: ResourceLocation) = Textures.bind(loc)
|
||||
}
|
||||
|
||||
object GUI extends TextureBundle {
|
||||
@ -51,7 +51,7 @@ object Textures {
|
||||
|
||||
override protected def basePath = "textures/gui/%s.png"
|
||||
|
||||
override protected def loader(map: TextureMap, loc: ResourceLocation) = textureManager.bindTexture(loc)
|
||||
override protected def loader(map: TextureMap, loc: ResourceLocation) = Textures.bind(loc)
|
||||
}
|
||||
|
||||
object Icons extends TextureBundle {
|
||||
@ -64,7 +64,7 @@ object Textures {
|
||||
|
||||
override protected def basePath = "textures/icons/%s.png"
|
||||
|
||||
override protected def loader(map: TextureMap, loc: ResourceLocation) = textureManager.bindTexture(loc)
|
||||
override protected def loader(map: TextureMap, loc: ResourceLocation) = Textures.bind(loc)
|
||||
}
|
||||
|
||||
object Model extends TextureBundle {
|
||||
@ -77,7 +77,7 @@ object Textures {
|
||||
|
||||
override protected def basePath = "textures/model/%s.png"
|
||||
|
||||
override protected def loader(map: TextureMap, loc: ResourceLocation) = textureManager.bindTexture(loc)
|
||||
override protected def loader(map: TextureMap, loc: ResourceLocation) = Textures.bind(loc)
|
||||
}
|
||||
|
||||
// These are kept in the block texture atlas to support animations.
|
||||
@ -483,17 +483,7 @@ object Textures {
|
||||
|
||||
Screen.makeSureThisIsInitialized()
|
||||
|
||||
def bind(): Unit = {
|
||||
// IMPORTANT: manager.bindTexture uses GlStateManager.bindTexture, and
|
||||
// that has borked caching, so binding textures will sometimes fail,
|
||||
// because it'll think the texture is already bound although it isn't.
|
||||
// So we do it manually.
|
||||
val manager = Minecraft.getMinecraft.renderEngine
|
||||
val texture = manager.getTexture(TextureMap.locationBlocksTexture)
|
||||
if (texture != null) {
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, texture.getGlTextureId)
|
||||
}
|
||||
}
|
||||
def bind(): Unit = Textures.bind(TextureMap.locationBlocksTexture)
|
||||
|
||||
def getSprite(location: ResourceLocation) = Minecraft.getMinecraft.getTextureMapBlocks.getAtlasSprite(location.toString)
|
||||
|
||||
@ -502,6 +492,19 @@ object Textures {
|
||||
override protected def loader(map: TextureMap, loc: ResourceLocation) = map.registerSprite(loc)
|
||||
}
|
||||
|
||||
def bind(location: ResourceLocation): Unit = {
|
||||
val manager = Minecraft.getMinecraft.renderEngine
|
||||
manager.bindTexture(location)
|
||||
// IMPORTANT: manager.bindTexture uses GlStateManager.bindTexture, and
|
||||
// that has borked caching, so binding textures will sometimes fail,
|
||||
// because it'll think the texture is already bound although it isn't.
|
||||
// So we do it manually.
|
||||
val texture = manager.getTexture(location)
|
||||
if (texture != null) {
|
||||
GL11.glBindTexture (GL11.GL_TEXTURE_2D, texture.getGlTextureId)
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
def onTextureStitchPre(e: TextureStitchEvent.Pre): Unit = {
|
||||
Font.init(e.map)
|
||||
|
@ -11,10 +11,10 @@ import li.cil.oc.common.container.ComponentSlot
|
||||
import li.cil.oc.common.template.AssemblerTemplates
|
||||
import li.cil.oc.common.tileentity
|
||||
import net.minecraft.client.gui.GuiButton
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.entity.player.InventoryPlayer
|
||||
import net.minecraft.inventory.Slot
|
||||
import net.minecraft.util.IChatComponent
|
||||
import org.lwjgl.opengl.GL11
|
||||
|
||||
import scala.collection.convert.WrapAsJava._
|
||||
import scala.collection.convert.WrapAsScala._
|
||||
@ -61,7 +61,7 @@ class Assembler(playerInventory: InventoryPlayer, val assembler: tileentity.Asse
|
||||
}
|
||||
|
||||
override def drawSecondaryForegroundLayer(mouseX: Int, mouseY: Int) = {
|
||||
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS) // Me lazy... prevents NEI render glitch.
|
||||
GlStateManager.pushAttrib()
|
||||
if (!assemblerContainer.isAssembling) {
|
||||
val message =
|
||||
if (!assemblerContainer.getSlot(0).getHasStack) {
|
||||
@ -90,7 +90,7 @@ class Assembler(playerInventory: InventoryPlayer, val assembler: tileentity.Asse
|
||||
tooltip.add(Localization.Assembler.Progress(assemblerContainer.assemblyProgress, timeRemaining))
|
||||
copiedDrawHoveringText(tooltip, mouseX - guiLeft, mouseY - guiTop, fontRendererObj)
|
||||
}
|
||||
GL11.glPopAttrib()
|
||||
GlStateManager.popAttrib()
|
||||
}
|
||||
|
||||
private def formatTime(seconds: Int) = {
|
||||
@ -100,8 +100,8 @@ class Assembler(playerInventory: InventoryPlayer, val assembler: tileentity.Asse
|
||||
}
|
||||
|
||||
override def drawGuiContainerBackgroundLayer(dt: Float, mouseX: Int, mouseY: Int) {
|
||||
GL11.glColor3f(1, 1, 1) // Required under Linux.
|
||||
mc.renderEngine.bindTexture(Textures.GUI.RobotAssembler)
|
||||
GlStateManager.color(1, 1, 1) // Required under Linux.
|
||||
Textures.bind(Textures.GUI.RobotAssembler)
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize)
|
||||
if (assemblerContainer.isAssembling) progress.level = assemblerContainer.assemblyProgress / 100.0
|
||||
else progress.level = 0
|
||||
|
@ -8,6 +8,7 @@ import li.cil.oc.client.{PacketSender => ClientPacketSender}
|
||||
import li.cil.oc.common.container
|
||||
import li.cil.oc.common.tileentity
|
||||
import net.minecraft.client.gui.GuiButton
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.entity.player.InventoryPlayer
|
||||
import org.lwjgl.opengl.GL11
|
||||
|
||||
@ -46,8 +47,8 @@ class Case(playerInventory: InventoryPlayer, val computer: tileentity.Case) exte
|
||||
}
|
||||
|
||||
override def drawSecondaryBackgroundLayer() {
|
||||
GL11.glColor3f(1, 1, 1) // Required under Linux.
|
||||
mc.renderEngine.bindTexture(Textures.GUI.Computer)
|
||||
GlStateManager.color(1, 1, 1)
|
||||
Textures.bind(Textures.GUI.Computer)
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize)
|
||||
}
|
||||
|
||||
|
@ -3,13 +3,12 @@ package li.cil.oc.client.gui
|
||||
import java.util
|
||||
|
||||
import li.cil.oc.client.gui.widget.WidgetContainer
|
||||
import li.cil.oc.util.RenderState
|
||||
import net.minecraft.client.gui.FontRenderer
|
||||
import net.minecraft.client.gui.inventory.GuiContainer
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.client.renderer.RenderHelper
|
||||
import net.minecraft.inventory.Container
|
||||
import org.lwjgl.opengl.GL11
|
||||
import org.lwjgl.opengl.GL12
|
||||
|
||||
import scala.collection.convert.WrapAsScala._
|
||||
|
||||
@ -25,17 +24,16 @@ abstract class CustomGuiContainer(container: Container) extends GuiContainer(con
|
||||
override def windowZ = zLevel
|
||||
|
||||
// Pretty much Scalaified copy-pasta from base-class.
|
||||
override def drawHoveringText(text: util.List[_], x: Int, y: Int, font: FontRenderer) {
|
||||
override def drawHoveringText(text: util.List[_], x: Int, y: Int, font: FontRenderer): Unit = {
|
||||
copiedDrawHoveringText(text, x, y, font)
|
||||
}
|
||||
|
||||
protected def copiedDrawHoveringText(text: util.List[_], x: Int, y: Int, font: FontRenderer) {
|
||||
protected def copiedDrawHoveringText(text: util.List[_], x: Int, y: Int, font: FontRenderer): Unit = {
|
||||
if (!text.isEmpty) {
|
||||
GlStateManager.pushAttrib()
|
||||
GL11.glDisable(GL12.GL_RESCALE_NORMAL)
|
||||
GlStateManager.disableRescaleNormal()
|
||||
RenderHelper.disableStandardItemLighting()
|
||||
GL11.glDisable(GL11.GL_LIGHTING)
|
||||
GL11.glDisable(GL11.GL_DEPTH_TEST)
|
||||
GlStateManager.disableLighting()
|
||||
GlStateManager.disableDepth()
|
||||
|
||||
val textWidth = text.map(line => font.getStringWidth(line.asInstanceOf[String])).max
|
||||
|
||||
@ -75,7 +73,15 @@ abstract class CustomGuiContainer(container: Container) extends GuiContainer(con
|
||||
}
|
||||
zLevel = 0f
|
||||
|
||||
GlStateManager.popAttrib()
|
||||
GlStateManager.enableLighting()
|
||||
GlStateManager.enableDepth()
|
||||
RenderHelper.enableStandardItemLighting()
|
||||
GlStateManager.enableRescaleNormal()
|
||||
}
|
||||
}
|
||||
|
||||
override def drawGradientRect(left: Int, top: Int, right: Int, bottom: Int, startColor: Int, endColor: Int): Unit = {
|
||||
super.drawGradientRect(left, top, right, bottom, startColor, endColor)
|
||||
RenderState.makeItBlend()
|
||||
}
|
||||
}
|
||||
|
@ -4,9 +4,9 @@ import li.cil.oc.client.Textures
|
||||
import li.cil.oc.common.Tier
|
||||
import li.cil.oc.common.container
|
||||
import li.cil.oc.common.inventory.DatabaseInventory
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.entity.player.InventoryPlayer
|
||||
import net.minecraft.inventory.Slot
|
||||
import org.lwjgl.opengl.GL11
|
||||
|
||||
class Database(playerInventory: InventoryPlayer, val databaseInventory: DatabaseInventory) extends DynamicGuiContainer(new container.Database(playerInventory, databaseInventory)) {
|
||||
ySize = 256
|
||||
@ -14,17 +14,17 @@ class Database(playerInventory: InventoryPlayer, val databaseInventory: Database
|
||||
override def drawSecondaryForegroundLayer(mouseX: Int, mouseY: Int) {}
|
||||
|
||||
override protected def drawGuiContainerBackgroundLayer(dt: Float, mouseX: Int, mouseY: Int) {
|
||||
GL11.glColor4f(1, 1, 1, 1)
|
||||
mc.renderEngine.bindTexture(Textures.GUI.Database)
|
||||
GlStateManager.color(1, 1, 1, 1)
|
||||
Textures.bind(Textures.GUI.Database)
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize)
|
||||
|
||||
if (databaseInventory.tier > Tier.One) {
|
||||
mc.renderEngine.bindTexture(Textures.GUI.Database1)
|
||||
Textures.bind(Textures.GUI.Database1)
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize)
|
||||
}
|
||||
|
||||
if (databaseInventory.tier > Tier.Two) {
|
||||
mc.renderEngine.bindTexture(Textures.GUI.Database2)
|
||||
Textures.bind(Textures.GUI.Database2)
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize)
|
||||
}
|
||||
}
|
||||
|
@ -5,8 +5,8 @@ import li.cil.oc.client.Textures
|
||||
import li.cil.oc.client.gui.widget.ProgressBar
|
||||
import li.cil.oc.common.container
|
||||
import li.cil.oc.common.tileentity
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.entity.player.InventoryPlayer
|
||||
import org.lwjgl.opengl.GL11
|
||||
|
||||
class Disassembler(playerInventory: InventoryPlayer, val disassembler: tileentity.Disassembler) extends DynamicGuiContainer(new container.Disassembler(playerInventory, disassembler)) {
|
||||
private def disassemblerContainer = inventorySlots.asInstanceOf[container.Disassembler]
|
||||
@ -20,8 +20,8 @@ class Disassembler(playerInventory: InventoryPlayer, val disassembler: tileentit
|
||||
}
|
||||
|
||||
override def drawGuiContainerBackgroundLayer(dt: Float, mouseX: Int, mouseY: Int) {
|
||||
GL11.glColor3f(1, 1, 1) // Required under Linux.
|
||||
mc.renderEngine.bindTexture(Textures.GUI.Disassembler)
|
||||
GlStateManager.color(1, 1, 1)
|
||||
Textures.bind(Textures.GUI.Disassembler)
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize)
|
||||
progress.level = disassemblerContainer.disassemblyProgress / 100.0
|
||||
drawWidgets()
|
||||
|
@ -13,8 +13,8 @@ import li.cil.oc.common.entity
|
||||
import li.cil.oc.util.PackedColor
|
||||
import li.cil.oc.util.RenderState
|
||||
import li.cil.oc.util.TextBuffer
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.gui.GuiButton
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.client.renderer.Tessellator
|
||||
import net.minecraft.entity.player.InventoryPlayer
|
||||
import org.lwjgl.opengl.GL11
|
||||
@ -79,16 +79,16 @@ class Drone(playerInventory: InventoryPlayer, val drone: entity.Drone) extends D
|
||||
GL11.glScaled(scale, scale, 1)
|
||||
GL11.glPushAttrib(GL11.GL_DEPTH_BUFFER_BIT)
|
||||
GL11.glDepthMask(false)
|
||||
GL11.glColor3f(0.5f, 0.5f, 1f)
|
||||
GlStateManager.color(0.5f, 0.5f, 1f)
|
||||
TextBufferRenderCache.render(bufferRenderer)
|
||||
GL11.glPopAttrib()
|
||||
GlStateManager.popAttrib()
|
||||
}
|
||||
|
||||
override protected def changeSize(w: Double, h: Double, recompile: Boolean) = 2.0
|
||||
|
||||
override protected def drawSecondaryForegroundLayer(mouseX: Int, mouseY: Int) {
|
||||
drawBufferLayer()
|
||||
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS) // Me lazy... prevents NEI render glitch.
|
||||
GlStateManager.pushAttrib()
|
||||
if (isPointInRegion(power.x, power.y, power.width, power.height, mouseX, mouseY)) {
|
||||
val tooltip = new java.util.ArrayList[String]
|
||||
val format = Localization.Computer.Power + ": %d%% (%d/%d)"
|
||||
@ -103,12 +103,12 @@ class Drone(playerInventory: InventoryPlayer, val drone: entity.Drone) extends D
|
||||
tooltip.add(if (drone.isRunning) Localization.Computer.TurnOff else Localization.Computer.TurnOn)
|
||||
copiedDrawHoveringText(tooltip, mouseX - guiLeft, mouseY - guiTop, fontRendererObj)
|
||||
}
|
||||
GL11.glPopAttrib()
|
||||
GlStateManager.popAttrib()
|
||||
}
|
||||
|
||||
override protected def drawGuiContainerBackgroundLayer(dt: Float, mouseX: Int, mouseY: Int) {
|
||||
GL11.glColor3f(1, 1, 1) // Required under Linux.
|
||||
mc.renderEngine.bindTexture(Textures.GUI.Drone)
|
||||
GlStateManager.color(1, 1, 1)
|
||||
Textures.bind(Textures.GUI.Drone)
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize)
|
||||
power.level = drone.globalBuffer.toDouble / math.max(drone.globalBufferSize.toDouble, 1.0)
|
||||
drawWidgets()
|
||||
@ -119,11 +119,6 @@ class Drone(playerInventory: InventoryPlayer, val drone: entity.Drone) extends D
|
||||
drawInventorySlots()
|
||||
}
|
||||
|
||||
protected override def drawGradientRect(par1: Int, par2: Int, par3: Int, par4: Int, par5: Int, par6: Int) {
|
||||
super.drawGradientRect(par1, par2, par3, par4, par5, par6)
|
||||
RenderState.makeItBlend()
|
||||
}
|
||||
|
||||
// No custom slots, we just extend DynamicGuiContainer for the highlighting.
|
||||
override protected def drawSlotBackground(x: Int, y: Int) {}
|
||||
|
||||
@ -131,7 +126,7 @@ class Drone(playerInventory: InventoryPlayer, val drone: entity.Drone) extends D
|
||||
val slot = drone.selectedSlot
|
||||
if (slot >= 0 && slot < 16) {
|
||||
RenderState.makeItBlend()
|
||||
Minecraft.getMinecraft.renderEngine.bindTexture(Textures.GUI.RobotSelection)
|
||||
Textures.bind(Textures.GUI.RobotSelection)
|
||||
val now = System.currentTimeMillis() / 1000.0
|
||||
val offsetV = ((now - now.toInt) * selectionsStates).toInt * selectionStepV
|
||||
val x = guiLeft + inventoryX - 1 + (slot % 4) * (selectionSize - 2)
|
||||
|
@ -11,6 +11,7 @@ import li.cil.oc.integration.Mods
|
||||
import li.cil.oc.integration.util.NEI
|
||||
import li.cil.oc.util.RenderState
|
||||
import net.minecraft.client.gui.Gui
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.client.renderer.Tessellator
|
||||
import net.minecraft.inventory.Container
|
||||
import net.minecraft.inventory.Slot
|
||||
@ -32,7 +33,7 @@ abstract class DynamicGuiContainer(container: Container) extends CustomGuiContai
|
||||
}
|
||||
|
||||
override protected def drawGuiContainerForegroundLayer(mouseX: Int, mouseY: Int) {
|
||||
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS)
|
||||
GlStateManager.pushAttrib()
|
||||
|
||||
drawSecondaryForegroundLayer(mouseX, mouseY)
|
||||
|
||||
@ -40,14 +41,14 @@ abstract class DynamicGuiContainer(container: Container) extends CustomGuiContai
|
||||
drawSlotHighlight(inventorySlots.inventorySlots.get(slot).asInstanceOf[Slot])
|
||||
}
|
||||
|
||||
GL11.glPopAttrib()
|
||||
GlStateManager.popAttrib()
|
||||
}
|
||||
|
||||
protected def drawSecondaryBackgroundLayer() {}
|
||||
|
||||
override protected def drawGuiContainerBackgroundLayer(dt: Float, mouseX: Int, mouseY: Int) {
|
||||
GL11.glColor4f(1, 1, 1, 1)
|
||||
mc.renderEngine.bindTexture(Textures.GUI.Background)
|
||||
GlStateManager.color(1, 1, 1, 1)
|
||||
Textures.bind(Textures.GUI.Background)
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize)
|
||||
drawSecondaryBackgroundLayer()
|
||||
|
||||
@ -58,14 +59,15 @@ abstract class DynamicGuiContainer(container: Container) extends CustomGuiContai
|
||||
}
|
||||
|
||||
protected def drawInventorySlots(): Unit = {
|
||||
GL11.glPushMatrix()
|
||||
GlStateManager.pushMatrix()
|
||||
GL11.glTranslatef(guiLeft, guiTop, 0)
|
||||
GL11.glDisable(GL11.GL_DEPTH_TEST)
|
||||
for (slot <- 0 until inventorySlots.inventorySlots.size()) {
|
||||
drawSlotInventory(inventorySlots.inventorySlots.get(slot).asInstanceOf[Slot])
|
||||
}
|
||||
GL11.glEnable(GL11.GL_DEPTH_TEST)
|
||||
GL11.glPopMatrix()
|
||||
GlStateManager.popMatrix()
|
||||
RenderState.makeItBlend()
|
||||
RenderState.makeItBlend()
|
||||
}
|
||||
|
||||
@ -78,9 +80,9 @@ abstract class DynamicGuiContainer(container: Container) extends CustomGuiContai
|
||||
super.drawScreen(mouseX, mouseY, dt)
|
||||
|
||||
if (Mods.NotEnoughItems.isAvailable) {
|
||||
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS)
|
||||
GlStateManager.pushAttrib()
|
||||
drawNEIHighlights()
|
||||
GL11.glPopAttrib()
|
||||
GlStateManager.popAttrib()
|
||||
}
|
||||
}
|
||||
|
||||
@ -99,11 +101,11 @@ abstract class DynamicGuiContainer(container: Container) extends CustomGuiContai
|
||||
slot match {
|
||||
case component: ComponentSlot =>
|
||||
if (component.tierIcon != null) {
|
||||
mc.getTextureManager.bindTexture(component.tierIcon)
|
||||
Textures.bind(component.tierIcon)
|
||||
Gui.drawModalRectWithCustomSizedTexture(slot.xDisplayPosition, slot.yDisplayPosition, 0, 0, 16, 16, 16, 16)
|
||||
}
|
||||
if (component.hasBackground) {
|
||||
mc.getTextureManager.bindTexture(slot.getBackgroundLocation)
|
||||
Textures.bind(slot.getBackgroundLocation)
|
||||
Gui.drawModalRectWithCustomSizedTexture(slot.xDisplayPosition, slot.yDisplayPosition, 0, 0, 16, 16, 16, 16)
|
||||
}
|
||||
case _ =>
|
||||
@ -146,14 +148,14 @@ abstract class DynamicGuiContainer(container: Container) extends CustomGuiContai
|
||||
}
|
||||
|
||||
protected def drawDisabledSlot(slot: ComponentSlot) {
|
||||
GL11.glColor4f(1, 1, 1, 1)
|
||||
mc.getTextureManager.bindTexture(slot.tierIcon)
|
||||
GlStateManager.color(1, 1, 1, 1)
|
||||
Textures.bind(slot.tierIcon)
|
||||
Gui.drawModalRectWithCustomSizedTexture(slot.xDisplayPosition, slot.yDisplayPosition, 0, 0, 16, 16, 16, 16)
|
||||
}
|
||||
|
||||
protected def drawSlotBackground(x: Int, y: Int) {
|
||||
GL11.glColor4f(1, 1, 1, 1)
|
||||
mc.getTextureManager.bindTexture(Textures.GUI.Slot)
|
||||
GlStateManager.color(1, 1, 1, 1)
|
||||
Textures.bind(Textures.GUI.Slot)
|
||||
val t = Tessellator.getInstance
|
||||
val r = t.getWorldRenderer
|
||||
r.startDrawingQuads()
|
||||
|
@ -1,12 +1,13 @@
|
||||
package li.cil.oc.client.gui
|
||||
|
||||
import li.cil.oc.client.Textures
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.gui.GuiButton
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.client.renderer.Tessellator
|
||||
import net.minecraft.util.ResourceLocation
|
||||
import net.minecraftforge.fml.relauncher.Side
|
||||
import net.minecraftforge.fml.relauncher.SideOnly
|
||||
import org.lwjgl.opengl.GL11
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
class ImageButton(id: Int, x: Int, y: Int, w: Int, h: Int,
|
||||
@ -23,8 +24,8 @@ class ImageButton(id: Int, x: Int, y: Int, w: Int, h: Int,
|
||||
|
||||
override def drawButton(mc: Minecraft, mouseX: Int, mouseY: Int) {
|
||||
if (visible) {
|
||||
mc.renderEngine.bindTexture(image)
|
||||
GL11.glColor4f(1, 1, 1, 1)
|
||||
Textures.bind(image)
|
||||
GlStateManager.color(1, 1, 1, 1)
|
||||
hovered = mouseX >= xPosition && mouseY >= yPosition && mouseX < xPosition + width && mouseY < yPosition + height
|
||||
|
||||
val x0 = xPosition
|
||||
@ -38,7 +39,7 @@ class ImageButton(id: Int, x: Int, y: Int, w: Int, h: Int,
|
||||
val v1 = v0 + 0.5
|
||||
|
||||
val t = Tessellator.getInstance
|
||||
var r = t.getWorldRenderer
|
||||
val r = t.getWorldRenderer
|
||||
r.startDrawingQuads()
|
||||
r.addVertexWithUV(x0, y1, zLevel, u0, v1)
|
||||
r.addVertexWithUV(x1, y1, zLevel, u1, v1)
|
||||
|
@ -4,8 +4,8 @@ import li.cil.oc.Localization
|
||||
import li.cil.oc.client.Textures
|
||||
import li.cil.oc.common.container
|
||||
import li.cil.oc.common.tileentity
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.entity.player.InventoryPlayer
|
||||
import org.lwjgl.opengl.GL11
|
||||
|
||||
class Raid(playerInventory: InventoryPlayer, val raid: tileentity.Raid) extends DynamicGuiContainer(new container.Raid(playerInventory, raid)) {
|
||||
override def drawSecondaryForegroundLayer(mouseX: Int, mouseY: Int) = {
|
||||
@ -20,8 +20,8 @@ class Raid(playerInventory: InventoryPlayer, val raid: tileentity.Raid) extends
|
||||
}
|
||||
|
||||
override def drawGuiContainerBackgroundLayer(dt: Float, mouseX: Int, mouseY: Int) {
|
||||
GL11.glColor3f(1, 1, 1) // Required under Linux.
|
||||
mc.renderEngine.bindTexture(Textures.GUI.Raid)
|
||||
GlStateManager.color(1, 1, 1) // Required under Linux.
|
||||
Textures.bind(Textures.GUI.Raid)
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize)
|
||||
}
|
||||
}
|
||||
|
@ -14,8 +14,8 @@ import li.cil.oc.common.container
|
||||
import li.cil.oc.common.tileentity
|
||||
import li.cil.oc.integration.opencomputers
|
||||
import li.cil.oc.util.RenderState
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.gui.GuiButton
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.client.renderer.Tessellator
|
||||
import net.minecraft.entity.player.InventoryPlayer
|
||||
import org.lwjgl.input.Keyboard
|
||||
@ -106,11 +106,11 @@ class Robot(playerInventory: InventoryPlayer, val robot: tileentity.Robot) exten
|
||||
if (buffer != null) {
|
||||
GL11.glTranslatef(bufferX, bufferY, 0)
|
||||
RenderState.disableLighting()
|
||||
GL11.glPushMatrix()
|
||||
GlStateManager.pushMatrix()
|
||||
GL11.glTranslatef(-3, -3, 0)
|
||||
GL11.glColor4f(1, 1, 1, 1)
|
||||
GlStateManager.color(1, 1, 1, 1)
|
||||
BufferRenderer.drawBackground()
|
||||
GL11.glPopMatrix()
|
||||
GlStateManager.popMatrix()
|
||||
RenderState.makeItBlend()
|
||||
val scaleX = bufferRenderWidth / buffer.renderWidth
|
||||
val scaleY = bufferRenderHeight / buffer.renderHeight
|
||||
@ -129,7 +129,7 @@ class Robot(playerInventory: InventoryPlayer, val robot: tileentity.Robot) exten
|
||||
|
||||
override protected def drawSecondaryForegroundLayer(mouseX: Int, mouseY: Int) {
|
||||
drawBufferLayer()
|
||||
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS) // Me lazy... prevents NEI render glitch.
|
||||
GlStateManager.pushAttrib()
|
||||
if (isPointInRegion(power.x, power.y, power.width, power.height, mouseX, mouseY)) {
|
||||
val tooltip = new java.util.ArrayList[String]
|
||||
val format = Localization.Computer.Power + ": %d%% (%d/%d)"
|
||||
@ -144,13 +144,13 @@ class Robot(playerInventory: InventoryPlayer, val robot: tileentity.Robot) exten
|
||||
tooltip.add(if (robot.isRunning) Localization.Computer.TurnOff else Localization.Computer.TurnOn)
|
||||
copiedDrawHoveringText(tooltip, mouseX - guiLeft, mouseY - guiTop, fontRendererObj)
|
||||
}
|
||||
GL11.glPopAttrib()
|
||||
GlStateManager.popAttrib()
|
||||
}
|
||||
|
||||
override protected def drawGuiContainerBackgroundLayer(dt: Float, mouseX: Int, mouseY: Int) {
|
||||
GL11.glColor3f(1, 1, 1) // Required under Linux.
|
||||
if (buffer != null) mc.renderEngine.bindTexture(Textures.GUI.Robot)
|
||||
else mc.renderEngine.bindTexture(Textures.GUI.RobotNoScreen)
|
||||
GlStateManager.color(1, 1, 1)
|
||||
if (buffer != null) Textures.bind(Textures.GUI.Robot)
|
||||
else Textures.bind(Textures.GUI.RobotNoScreen)
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize)
|
||||
power.level = robot.globalBuffer / robot.globalBufferSize
|
||||
drawWidgets()
|
||||
@ -161,11 +161,6 @@ class Robot(playerInventory: InventoryPlayer, val robot: tileentity.Robot) exten
|
||||
drawInventorySlots()
|
||||
}
|
||||
|
||||
protected override def drawGradientRect(par1: Int, par2: Int, par3: Int, par4: Int, par5: Int, par6: Int) {
|
||||
super.drawGradientRect(par1, par2, par3, par4, par5, par6)
|
||||
RenderState.makeItBlend()
|
||||
}
|
||||
|
||||
// No custom slots, we just extend DynamicGuiContainer for the highlighting.
|
||||
override protected def drawSlotBackground(x: Int, y: Int) {}
|
||||
|
||||
@ -264,7 +259,7 @@ class Robot(playerInventory: InventoryPlayer, val robot: tileentity.Robot) exten
|
||||
val slot = robot.selectedSlot - inventoryOffset * 4
|
||||
if (slot >= 0 && slot < 16) {
|
||||
RenderState.makeItBlend()
|
||||
Minecraft.getMinecraft.renderEngine.bindTexture(Textures.GUI.RobotSelection)
|
||||
Textures.bind(Textures.GUI.RobotSelection)
|
||||
val now = System.currentTimeMillis() / 1000.0
|
||||
val offsetV = ((now - now.toInt) * selectionsStates).toInt * selectionStepV
|
||||
val x = guiLeft + inventoryX - 1 + (slot % 4) * (selectionSize - 2)
|
||||
|
@ -4,9 +4,9 @@ import li.cil.oc.Localization
|
||||
import li.cil.oc.client.Textures
|
||||
import li.cil.oc.common.container
|
||||
import li.cil.oc.common.inventory.ServerInventory
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.entity.player.InventoryPlayer
|
||||
import net.minecraft.inventory.Slot
|
||||
import org.lwjgl.opengl.GL11
|
||||
|
||||
class Server(playerInventory: InventoryPlayer, serverInventory: ServerInventory) extends DynamicGuiContainer(new container.Server(playerInventory, serverInventory)) {
|
||||
override def drawSecondaryForegroundLayer(mouseX: Int, mouseY: Int) {
|
||||
@ -17,8 +17,8 @@ class Server(playerInventory: InventoryPlayer, serverInventory: ServerInventory)
|
||||
}
|
||||
|
||||
override def drawSecondaryBackgroundLayer() {
|
||||
GL11.glColor3f(1, 1, 1) // Required under Linux.
|
||||
mc.renderEngine.bindTexture(Textures.GUI.Server)
|
||||
GlStateManager.color(1, 1, 1)
|
||||
Textures.bind(Textures.GUI.Server)
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize)
|
||||
}
|
||||
|
||||
|
@ -10,10 +10,10 @@ import li.cil.oc.common.container
|
||||
import li.cil.oc.common.tileentity
|
||||
import net.minecraft.client.gui.GuiButton
|
||||
import net.minecraft.client.gui.GuiScreen
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.client.renderer.Tessellator
|
||||
import net.minecraft.entity.player.InventoryPlayer
|
||||
import net.minecraft.util.EnumFacing
|
||||
import org.lwjgl.opengl.GL11
|
||||
|
||||
class ServerRack(playerInventory: InventoryPlayer, val rack: tileentity.ServerRack) extends DynamicGuiContainer(new container.ServerRack(playerInventory, rack)) {
|
||||
protected var switchButton: ImageButton = _
|
||||
@ -96,7 +96,7 @@ class ServerRack(playerInventory: InventoryPlayer, val rack: tileentity.ServerRa
|
||||
|
||||
override def drawSecondaryForegroundLayer(mouseX: Int, mouseY: Int) = {
|
||||
super.drawSecondaryForegroundLayer(mouseX, mouseY)
|
||||
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS) // Prevents NEI render glitch.
|
||||
GlStateManager.pushAttrib()
|
||||
|
||||
fontRendererObj.drawString(
|
||||
Localization.localizeImmediately(rack.getName),
|
||||
@ -113,16 +113,16 @@ class ServerRack(playerInventory: InventoryPlayer, val rack: tileentity.ServerRa
|
||||
val h = 18
|
||||
val t = Tessellator.getInstance
|
||||
val r = t.getWorldRenderer
|
||||
mc.getTextureManager.bindTexture(Textures.GUI.Range)
|
||||
GL11.glColor3f(1, 1, 1)
|
||||
GL11.glDepthMask(false)
|
||||
Textures.bind(Textures.GUI.Range)
|
||||
GlStateManager.color(1, 1, 1)
|
||||
GlStateManager.depthMask(false)
|
||||
r.startDrawingQuads()
|
||||
r.addVertexWithUV(tx, ty + h, zLevel, 0, 1)
|
||||
r.addVertexWithUV(tx + w, ty + h, zLevel, 1, 1)
|
||||
r.addVertexWithUV(tx + w, ty, zLevel, 1, 0)
|
||||
r.addVertexWithUV(tx, ty, zLevel, 0, 0)
|
||||
t.draw()
|
||||
GL11.glDepthMask(true)
|
||||
GlStateManager.depthMask(true)
|
||||
}
|
||||
|
||||
drawCenteredString(fontRendererObj,
|
||||
@ -135,6 +135,6 @@ class ServerRack(playerInventory: InventoryPlayer, val rack: tileentity.ServerRa
|
||||
copiedDrawHoveringText(tooltip, mouseX - guiLeft, mouseY - guiTop, fontRendererObj)
|
||||
}
|
||||
|
||||
GL11.glPopAttrib()
|
||||
GlStateManager.popAttrib()
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ import li.cil.oc.client.renderer.gui.BufferRenderer
|
||||
import li.cil.oc.util.RenderState
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.gui.GuiScreen
|
||||
import org.lwjgl.opengl.GL11
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
|
||||
trait DisplayBuffer extends GuiScreen {
|
||||
protected def bufferX: Int
|
||||
@ -36,15 +36,15 @@ trait DisplayBuffer extends GuiScreen {
|
||||
|
||||
RenderState.checkError(getClass.getName + ".drawBufferLayer: entering (aka: wasntme)")
|
||||
|
||||
GL11.glPushMatrix()
|
||||
GlStateManager.pushMatrix()
|
||||
RenderState.disableLighting()
|
||||
drawBuffer()
|
||||
GL11.glPopMatrix()
|
||||
GlStateManager.popMatrix()
|
||||
|
||||
RenderState.checkError(getClass.getName + ".drawBufferLayer: buffer layer")
|
||||
}
|
||||
|
||||
protected def drawBuffer()
|
||||
protected def drawBuffer(): Unit
|
||||
|
||||
protected def changeSize(w: Double, h: Double, recompile: Boolean): Double
|
||||
}
|
||||
|
@ -5,7 +5,6 @@ import li.cil.oc.client.KeyBindings
|
||||
import li.cil.oc.client.Textures
|
||||
import li.cil.oc.integration.util.NEI
|
||||
import li.cil.oc.util.RenderState
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.gui.GuiScreen
|
||||
import net.minecraft.client.renderer.Tessellator
|
||||
import org.lwjgl.input.Keyboard
|
||||
@ -37,7 +36,7 @@ trait InputBuffer extends DisplayBuffer {
|
||||
super.drawBufferLayer()
|
||||
|
||||
if (System.currentTimeMillis() - showKeyboardMissing < 1000) {
|
||||
Minecraft.getMinecraft.getTextureManager.bindTexture(Textures.GUI.KeyboardMissing)
|
||||
Textures.bind(Textures.GUI.KeyboardMissing)
|
||||
GL11.glDisable(GL11.GL_DEPTH_TEST)
|
||||
|
||||
val x = bufferX + buffer.renderWidth - 16
|
||||
|
@ -1,7 +1,6 @@
|
||||
package li.cil.oc.client.gui.widget
|
||||
|
||||
import li.cil.oc.client.Textures
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.renderer.Tessellator
|
||||
|
||||
class ProgressBar(val x: Int, val y: Int) extends Widget {
|
||||
@ -21,7 +20,7 @@ class ProgressBar(val x: Int, val y: Int) extends Widget {
|
||||
val ty = owner.windowY + y
|
||||
val w = width * level
|
||||
|
||||
Minecraft.getMinecraft.renderEngine.bindTexture(Textures.GUI.Bar)
|
||||
Textures.bind(Textures.GUI.Bar)
|
||||
val t = Tessellator.getInstance
|
||||
val r = t.getWorldRenderer
|
||||
r.startDrawingQuads()
|
||||
|
@ -7,7 +7,7 @@ import li.cil.oc.util.BlockPosition
|
||||
import li.cil.oc.util.ExtendedBlock._
|
||||
import li.cil.oc.util.ExtendedWorld._
|
||||
import li.cil.oc.util.RenderState
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.client.renderer.OpenGlHelper
|
||||
import net.minecraft.client.renderer.Tessellator
|
||||
import net.minecraft.util.EnumFacing
|
||||
@ -38,13 +38,13 @@ object HighlightRenderer {
|
||||
val playerPos = e.player.getPositionEyes(e.partialTicks)
|
||||
val renderPos = blockPos.offset(-playerPos.xCoord, -playerPos.yCoord, -playerPos.zCoord)
|
||||
|
||||
GL11.glPushMatrix()
|
||||
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS)
|
||||
GlStateManager.pushMatrix()
|
||||
GlStateManager.pushAttrib()
|
||||
RenderState.makeItBlend()
|
||||
Minecraft.getMinecraft.renderEngine.bindTexture(Textures.Model.HologramEffect)
|
||||
Textures.bind(Textures.Model.HologramEffect)
|
||||
|
||||
OpenGlHelper.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE, 1, 0)
|
||||
GL11.glColor4f(0.0F, 1.0F, 0.0F, 0.4F)
|
||||
GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE)
|
||||
GlStateManager.color(0.0F, 1.0F, 0.0F, 0.4F)
|
||||
|
||||
GL11.glTranslated(renderPos.xCoord, renderPos.yCoord, renderPos.zCoord)
|
||||
GL11.glScaled(1.002, 1.002, 1.002)
|
||||
@ -92,8 +92,8 @@ object HighlightRenderer {
|
||||
}
|
||||
t.draw()
|
||||
|
||||
GL11.glPopAttrib()
|
||||
GL11.glPopMatrix()
|
||||
GlStateManager.popAttrib()
|
||||
GlStateManager.popMatrix()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -8,6 +8,7 @@ import li.cil.oc.api.event.RobotRenderEvent
|
||||
import li.cil.oc.client.renderer.tileentity.RobotRenderer
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.gui.inventory.GuiContainer
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.entity.Entity
|
||||
import net.minecraftforge.client.event.RenderPlayerEvent
|
||||
import net.minecraftforge.fml.common.eventhandler.EventPriority
|
||||
@ -50,8 +51,8 @@ object PetRenderer {
|
||||
override def call() = new PetLocation(e.entityPlayer)
|
||||
})
|
||||
|
||||
GL11.glPushMatrix()
|
||||
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS)
|
||||
GlStateManager.pushMatrix()
|
||||
GlStateManager.pushAttrib()
|
||||
if (e.entityPlayer != Minecraft.getMinecraft.thePlayer) {
|
||||
val localPos = Minecraft.getMinecraft.thePlayer.getPositionEyes(e.partialRenderTick)
|
||||
val playerPos = e.entityPlayer.getPositionEyes(e.partialRenderTick)
|
||||
@ -65,7 +66,7 @@ object PetRenderer {
|
||||
GL11.glEnable(GL11.GL_LIGHTING)
|
||||
GL11.glDisable(GL11.GL_BLEND)
|
||||
GL11.glEnable(GL12.GL_RESCALE_NORMAL)
|
||||
GL11.glColor4f(1, 1, 1, 1)
|
||||
GlStateManager.color(1, 1, 1, 1)
|
||||
|
||||
location.applyInterpolatedTransformations(e.partialRenderTick)
|
||||
|
||||
@ -74,8 +75,8 @@ object PetRenderer {
|
||||
|
||||
RobotRenderer.renderChassis(null, offset, isRunningOverride = true)
|
||||
|
||||
GL11.glPopAttrib()
|
||||
GL11.glPopMatrix()
|
||||
GlStateManager.popAttrib()
|
||||
GlStateManager.popMatrix()
|
||||
|
||||
rendering = None
|
||||
}
|
||||
@ -83,7 +84,7 @@ object PetRenderer {
|
||||
@SubscribeEvent(priority = EventPriority.LOWEST)
|
||||
def onRobotRender(e: RobotRenderEvent) {
|
||||
rendering match {
|
||||
case Some((r, g, b)) => GL11.glColor3d(r, g, b)
|
||||
case Some((r, g, b)) => GlStateManager.color(r.toFloat, g.toFloat, b.toFloat)
|
||||
case _ =>
|
||||
}
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ import li.cil.oc.Settings
|
||||
import li.cil.oc.server.network.WirelessNetwork
|
||||
import li.cil.oc.util.RenderState
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.world.World
|
||||
import net.minecraftforge.client.event.RenderWorldLastEvent
|
||||
import net.minecraftforge.fml.common.ObfuscationReflectionHelper
|
||||
@ -27,7 +28,7 @@ object WirelessNetworkDebugRenderer {
|
||||
val py = player.lastTickPosY + (player.posY - player.lastTickPosY) * e.partialTicks
|
||||
val pz = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * e.partialTicks
|
||||
|
||||
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS)
|
||||
GlStateManager.pushAttrib()
|
||||
GL11.glPushMatrix()
|
||||
GL11.glTranslated(-px, -py, -pz)
|
||||
RenderState.makeItBlend()
|
||||
@ -90,8 +91,8 @@ object WirelessNetworkDebugRenderer {
|
||||
}
|
||||
GL11.glPolygonMode(GL11.GL_FRONT_AND_BACK, GL11.GL_FILL)
|
||||
|
||||
GlStateManager.popAttrib()
|
||||
GL11.glPopMatrix()
|
||||
GL11.glPopAttrib()
|
||||
case _ =>
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,7 @@ package li.cil.oc.client.renderer.entity
|
||||
|
||||
import li.cil.oc.client.Textures
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.client.renderer.entity.Render
|
||||
import net.minecraft.entity.Entity
|
||||
import org.lwjgl.opengl.GL11
|
||||
@ -11,15 +12,15 @@ object DroneRenderer extends Render(Minecraft.getMinecraft.getRenderManager) {
|
||||
|
||||
override def doRender(entity: Entity, x: Double, y: Double, z: Double, yaw: Float, dt: Float) {
|
||||
bindEntityTexture(entity)
|
||||
GL11.glPushMatrix()
|
||||
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS)
|
||||
GlStateManager.pushMatrix()
|
||||
GlStateManager.pushAttrib()
|
||||
|
||||
GL11.glTranslated(x, y + 2 / 16f, z)
|
||||
|
||||
model.render(entity, 0, 0, 0, 0, 0, dt)
|
||||
|
||||
GL11.glPopAttrib()
|
||||
GL11.glPopMatrix()
|
||||
GlStateManager.popAttrib()
|
||||
GlStateManager.popMatrix()
|
||||
}
|
||||
|
||||
override def getEntityTexture(entity: Entity) = Textures.Model.Drone
|
||||
|
@ -4,6 +4,7 @@ import li.cil.oc.common.entity.Drone
|
||||
import li.cil.oc.util.RenderState
|
||||
import net.minecraft.client.model.ModelBase
|
||||
import net.minecraft.client.model.ModelRenderer
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.entity.Entity
|
||||
import net.minecraft.util.Vec3
|
||||
import org.lwjgl.opengl.GL11
|
||||
@ -106,7 +107,7 @@ final class ModelQuadcopter extends ModelBase {
|
||||
light3.rotateAngleZ = drone.flapAngles(3)(1)
|
||||
|
||||
// Additive blending for the lights.
|
||||
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE)
|
||||
GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE)
|
||||
// Light color.
|
||||
val lightColor = drone.lightColor
|
||||
val r = ((lightColor >>> 16) & 0xFF).toByte
|
||||
@ -141,7 +142,7 @@ final class ModelQuadcopter extends ModelBase {
|
||||
wing3.render(scale)
|
||||
|
||||
RenderState.disableLighting()
|
||||
GL11.glDepthFunc(GL11.GL_LEQUAL)
|
||||
GlStateManager.depthFunc(GL11.GL_LEQUAL)
|
||||
|
||||
light0.rotateAngleX = tilt
|
||||
light0.rotateAngleZ = tilt
|
||||
@ -152,7 +153,7 @@ final class ModelQuadcopter extends ModelBase {
|
||||
light3.rotateAngleX = tilt
|
||||
light3.rotateAngleZ = -tilt
|
||||
|
||||
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE)
|
||||
GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE)
|
||||
GL11.glColor3ub(0x66.toByte, 0xDD.toByte, 0x55.toByte)
|
||||
|
||||
light0.render(scale)
|
||||
|
@ -5,6 +5,7 @@ import li.cil.oc.client.renderer.font.DynamicFontRenderer.CharTexture
|
||||
import li.cil.oc.util.FontUtil
|
||||
import li.cil.oc.util.RenderState
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.client.resources.IReloadableResourceManager
|
||||
import net.minecraft.client.resources.IResourceManager
|
||||
import net.minecraft.client.resources.IResourceManagerReloadListener
|
||||
@ -93,8 +94,8 @@ object DynamicFontRenderer {
|
||||
private val size = 256
|
||||
|
||||
class CharTexture(val owner: DynamicFontRenderer) {
|
||||
private val id = GL11.glGenTextures()
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, id)
|
||||
private val id = GlStateManager.generateTexture()
|
||||
GlStateManager.bindTexture(id)
|
||||
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_NEAREST)
|
||||
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST)
|
||||
GL11.glTexImage2D(GL11.GL_TEXTURE_2D, 0, GL11.GL_RGBA8, size, size, 0, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, BufferUtils.createByteBuffer(size * size * 4))
|
||||
@ -114,11 +115,11 @@ object DynamicFontRenderer {
|
||||
private var chars = 0
|
||||
|
||||
def delete() {
|
||||
GL11.glDeleteTextures(id)
|
||||
GlStateManager.deleteTexture(id)
|
||||
}
|
||||
|
||||
def bind() {
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, id)
|
||||
GlStateManager.bindTexture(id)
|
||||
}
|
||||
|
||||
def isFull(char: Char) = chars + FontUtil.wcwidth(char) > capacity
|
||||
@ -134,7 +135,7 @@ object DynamicFontRenderer {
|
||||
val x = chars % cols
|
||||
val y = chars / cols
|
||||
|
||||
GL11.glBindTexture(GL11.GL_TEXTURE_2D, id)
|
||||
GlStateManager.bindTexture(id)
|
||||
GL11.glTexSubImage2D(GL11.GL_TEXTURE_2D, 0, 1 + x * cellWidth, 1 + y * cellHeight, w, h, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, owner.glyphProvider.getGlyph(char))
|
||||
|
||||
chars += glyphWidth
|
||||
|
@ -43,10 +43,10 @@ class StaticFontRenderer extends TextureFontRenderer {
|
||||
|
||||
override protected def bindTexture(index: Int) {
|
||||
if (Settings.get.textAntiAlias) {
|
||||
Minecraft.getMinecraft.getTextureManager.bindTexture(Textures.Font.AntiAliased)
|
||||
Textures.bind(Textures.Font.AntiAliased)
|
||||
}
|
||||
else {
|
||||
Minecraft.getMinecraft.getTextureManager.bindTexture(Textures.Font.Aliased)
|
||||
Textures.bind(Textures.Font.Aliased)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4,6 +4,7 @@ import li.cil.oc.Settings
|
||||
import li.cil.oc.util.PackedColor
|
||||
import li.cil.oc.util.RenderState
|
||||
import li.cil.oc.util.TextBuffer
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import org.lwjgl.opengl.GL11
|
||||
|
||||
/**
|
||||
@ -34,11 +35,11 @@ abstract class TextureFontRenderer {
|
||||
val format = buffer.format
|
||||
|
||||
GL11.glPushMatrix()
|
||||
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS)
|
||||
GlStateManager.pushAttrib()
|
||||
|
||||
GL11.glScalef(0.5f, 0.5f, 1)
|
||||
|
||||
GL11.glDepthMask(false)
|
||||
GlStateManager.depthMask(false)
|
||||
GL11.glDisable(GL11.GL_TEXTURE_2D)
|
||||
|
||||
RenderState.checkError(getClass.getName + ".drawBuffer: configure state")
|
||||
@ -106,7 +107,8 @@ abstract class TextureFontRenderer {
|
||||
|
||||
RenderState.checkError(getClass.getName + ".drawBuffer: foreground")
|
||||
|
||||
GL11.glPopAttrib()
|
||||
GlStateManager.depthMask(true)
|
||||
GlStateManager.popAttrib()
|
||||
GL11.glPopMatrix()
|
||||
|
||||
RenderState.checkError(getClass.getName + ".drawBuffer: leaving")
|
||||
|
@ -4,6 +4,7 @@ import li.cil.oc.api.component.TextBuffer
|
||||
import li.cil.oc.client.Textures
|
||||
import li.cil.oc.util.RenderState
|
||||
import net.minecraft.client.renderer.GLAllocation
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.client.renderer.texture.TextureManager
|
||||
import org.lwjgl.opengl.GL11
|
||||
|
||||
@ -34,7 +35,7 @@ object BufferRenderer {
|
||||
|
||||
GL11.glNewList(displayLists, GL11.GL_COMPILE)
|
||||
|
||||
textureManager.get.bindTexture(Textures.GUI.Borders)
|
||||
Textures.bind(Textures.GUI.Borders)
|
||||
|
||||
GL11.glBegin(GL11.GL_QUADS)
|
||||
|
||||
@ -88,10 +89,11 @@ object BufferRenderer {
|
||||
|
||||
def drawText(screen: TextBuffer) =
|
||||
if (textureManager.isDefined) {
|
||||
GL11.glPushAttrib(GL11.GL_DEPTH_BUFFER_BIT)
|
||||
GL11.glDepthMask(false)
|
||||
GlStateManager.pushAttrib()
|
||||
GlStateManager.depthMask(false)
|
||||
val changed = screen.renderText()
|
||||
GL11.glPopAttrib()
|
||||
GlStateManager.depthMask(true)
|
||||
GlStateManager.popAttrib()
|
||||
changed
|
||||
}
|
||||
else false
|
||||
|
@ -9,6 +9,7 @@ import li.cil.oc.integration.opencomputers.Item
|
||||
import li.cil.oc.util.RenderState
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.gui.ScaledResolution
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.item.ItemStack
|
||||
import net.minecraft.util.AxisAlignedBB
|
||||
import net.minecraft.util.EnumChatFormatting
|
||||
@ -68,21 +69,21 @@ object ItemRenderer extends IItemRenderer {
|
||||
GL11.glTranslatef(0.5f, 0.5f, 0.5f)
|
||||
|
||||
if (descriptor == api.Items.get("craftingUpgrade")) {
|
||||
tm.bindTexture(Textures.Model.UpgradeCrafting)
|
||||
Textures.bind(Textures.Model.UpgradeCrafting)
|
||||
drawSimpleBlock()
|
||||
|
||||
RenderState.checkError(getClass.getName + ".renderItem: crafting upgrade")
|
||||
}
|
||||
|
||||
else if (descriptor == api.Items.get("generatorUpgrade")) {
|
||||
tm.bindTexture(Textures.Model.UpgradeGenerator)
|
||||
Textures.bind(Textures.Model.UpgradeGenerator)
|
||||
drawSimpleBlock(if (Item.dataTag(stack).getInteger("remainingTicks") > 0) 0.5f else 0)
|
||||
|
||||
RenderState.checkError(getClass.getName + ".renderItem: generator upgrade")
|
||||
}
|
||||
|
||||
else if (descriptor == api.Items.get("inventoryUpgrade")) {
|
||||
tm.bindTexture(Textures.Model.UpgradeInventory)
|
||||
Textures.bind(Textures.Model.UpgradeInventory)
|
||||
drawSimpleBlock()
|
||||
|
||||
RenderState.checkError(getClass.getName + ".renderItem: inventory upgrade")
|
||||
@ -90,7 +91,7 @@ object ItemRenderer extends IItemRenderer {
|
||||
}
|
||||
|
||||
else if (isFloppy(descriptor)) {
|
||||
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS)
|
||||
GlStateManager.pushAttrib()
|
||||
itemRenderer.renderItemIntoGUI(stack, 0, 0)
|
||||
val res = new ScaledResolution(mc, mc.displayWidth, mc.displayHeight)
|
||||
val fontRenderer = Minecraft.getMinecraft.fontRendererObj
|
||||
@ -111,15 +112,15 @@ object ItemRenderer extends IItemRenderer {
|
||||
}
|
||||
GL11.glPopMatrix()
|
||||
}
|
||||
GL11.glPopAttrib()
|
||||
GlStateManager.popAttrib()
|
||||
|
||||
RenderState.checkError("ItemRenderer.renderItem: floppy")
|
||||
}
|
||||
else if (descriptor == drone) {
|
||||
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS)
|
||||
GlStateManager.pushAttrib()
|
||||
GL11.glPushMatrix()
|
||||
|
||||
Minecraft.getMinecraft.renderEngine.bindTexture(Textures.Model.Drone)
|
||||
Textures.bind(Textures.Model.Drone)
|
||||
RenderState.makeItBlend()
|
||||
GL11.glDisable(GL11.GL_CULL_FACE)
|
||||
|
||||
@ -139,7 +140,7 @@ object ItemRenderer extends IItemRenderer {
|
||||
DroneRenderer.model.render()
|
||||
|
||||
GL11.glPopMatrix()
|
||||
GL11.glPopAttrib()
|
||||
GlStateManager.popAttrib()
|
||||
|
||||
RenderState.checkError("ItemRenderer.renderItem: drone")
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ package li.cil.oc.client.renderer.tileentity
|
||||
import li.cil.oc.client.Textures
|
||||
import li.cil.oc.common.tileentity.Assembler
|
||||
import li.cil.oc.util.RenderState
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.client.renderer.Tessellator
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer
|
||||
import net.minecraft.tileentity.TileEntity
|
||||
@ -15,7 +16,7 @@ object AssemblerRenderer extends TileEntitySpecialRenderer {
|
||||
|
||||
val assembler = tileEntity.asInstanceOf[Assembler]
|
||||
|
||||
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS)
|
||||
GlStateManager.pushAttrib()
|
||||
|
||||
RenderState.disableLighting()
|
||||
RenderState.makeItBlend()
|
||||
@ -70,7 +71,7 @@ object AssemblerRenderer extends TileEntitySpecialRenderer {
|
||||
RenderState.enableLighting()
|
||||
|
||||
GL11.glPopMatrix()
|
||||
GL11.glPopAttrib()
|
||||
GlStateManager.popAttrib()
|
||||
|
||||
RenderState.checkError(getClass.getName + ".renderTileEntityAt: leaving")
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ package li.cil.oc.client.renderer.tileentity
|
||||
import li.cil.oc.client.Textures
|
||||
import li.cil.oc.common.tileentity.Case
|
||||
import li.cil.oc.util.RenderState
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.client.renderer.Tessellator
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer
|
||||
import net.minecraft.tileentity.TileEntity
|
||||
@ -14,7 +15,7 @@ object CaseRenderer extends TileEntitySpecialRenderer {
|
||||
RenderState.checkError(getClass.getName + ".renderTileEntityAt: entering (aka: wasntme)")
|
||||
|
||||
val computer = tileEntity.asInstanceOf[Case]
|
||||
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS)
|
||||
GlStateManager.pushAttrib()
|
||||
|
||||
RenderState.disableLighting()
|
||||
RenderState.makeItBlend()
|
||||
@ -64,7 +65,7 @@ object CaseRenderer extends TileEntitySpecialRenderer {
|
||||
RenderState.enableLighting()
|
||||
|
||||
GL11.glPopMatrix()
|
||||
GL11.glPopAttrib()
|
||||
GlStateManager.popAttrib()
|
||||
|
||||
RenderState.checkError(getClass.getName + ".renderTileEntityAt: leaving")
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ package li.cil.oc.client.renderer.tileentity
|
||||
import li.cil.oc.client.Textures
|
||||
import li.cil.oc.common.tileentity.Charger
|
||||
import li.cil.oc.util.RenderState
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.client.renderer.Tessellator
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer
|
||||
import net.minecraft.tileentity.TileEntity
|
||||
@ -15,12 +16,12 @@ object ChargerRenderer extends TileEntitySpecialRenderer {
|
||||
|
||||
val charger = tileEntity.asInstanceOf[Charger]
|
||||
if (charger.chargeSpeed > 0) {
|
||||
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS)
|
||||
GlStateManager.pushAttrib()
|
||||
|
||||
RenderState.disableLighting()
|
||||
RenderState.makeItBlend()
|
||||
RenderState.setBlendAlpha(1)
|
||||
GL11.glColor4f(1, 1, 1, 1)
|
||||
GlStateManager.color(1, 1, 1, 1)
|
||||
|
||||
GL11.glPushMatrix()
|
||||
|
||||
@ -75,7 +76,7 @@ object ChargerRenderer extends TileEntitySpecialRenderer {
|
||||
RenderState.enableLighting()
|
||||
|
||||
GL11.glPopMatrix()
|
||||
GL11.glPopAttrib()
|
||||
GlStateManager.popAttrib()
|
||||
}
|
||||
|
||||
RenderState.checkError(getClass.getName + ".renderTileEntityAt: leaving")
|
||||
|
@ -3,6 +3,7 @@ package li.cil.oc.client.renderer.tileentity
|
||||
import li.cil.oc.client.Textures
|
||||
import li.cil.oc.common.tileentity
|
||||
import li.cil.oc.util.RenderState
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.client.renderer.Tessellator
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer
|
||||
import net.minecraft.tileentity.TileEntity
|
||||
@ -14,11 +15,11 @@ object DisassemblerRenderer extends TileEntitySpecialRenderer {
|
||||
|
||||
val disassembler = tileEntity.asInstanceOf[tileentity.Disassembler]
|
||||
if (disassembler.isActive) {
|
||||
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS)
|
||||
GlStateManager.pushAttrib()
|
||||
|
||||
RenderState.disableLighting()
|
||||
RenderState.makeItBlend()
|
||||
GL11.glColor4f(1, 1, 1, 1)
|
||||
GlStateManager.color(1, 1, 1, 1)
|
||||
|
||||
GL11.glPushMatrix()
|
||||
|
||||
@ -67,7 +68,7 @@ object DisassemblerRenderer extends TileEntitySpecialRenderer {
|
||||
RenderState.enableLighting()
|
||||
|
||||
GL11.glPopMatrix()
|
||||
GL11.glPopAttrib()
|
||||
GlStateManager.popAttrib()
|
||||
}
|
||||
|
||||
RenderState.checkError(getClass.getName + ".renderTileEntityAt: leaving")
|
||||
|
@ -4,6 +4,7 @@ import li.cil.oc.client.Textures
|
||||
import li.cil.oc.common.tileentity.DiskDrive
|
||||
import li.cil.oc.util.RenderState
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.client.renderer.OpenGlHelper
|
||||
import net.minecraft.client.renderer.Tessellator
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer
|
||||
@ -17,8 +18,8 @@ object DiskDriveRenderer extends TileEntitySpecialRenderer {
|
||||
RenderState.checkError(getClass.getName + ".renderTileEntityAt: entering (aka: wasntme)")
|
||||
|
||||
val drive = tileEntity.asInstanceOf[DiskDrive]
|
||||
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS)
|
||||
GL11.glColor4f(1, 1, 1, 1)
|
||||
GlStateManager.pushAttrib()
|
||||
GlStateManager.color(1, 1, 1, 1)
|
||||
|
||||
GL11.glPushMatrix()
|
||||
|
||||
@ -75,7 +76,7 @@ object DiskDriveRenderer extends TileEntitySpecialRenderer {
|
||||
}
|
||||
|
||||
GL11.glPopMatrix()
|
||||
GL11.glPopAttrib()
|
||||
GlStateManager.popAttrib()
|
||||
|
||||
RenderState.checkError(getClass.getName + ".renderTileEntityAt: leaving")
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package li.cil.oc.client.renderer.tileentity
|
||||
|
||||
import li.cil.oc.client.Textures
|
||||
import li.cil.oc.util.RenderState
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.client.renderer.Tessellator
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer
|
||||
import net.minecraft.tileentity.TileEntity
|
||||
@ -11,13 +12,12 @@ object GeolyzerRenderer extends TileEntitySpecialRenderer {
|
||||
override def renderTileEntityAt(tileEntity: TileEntity, x: Double, y: Double, z: Double, f: Float, damage: Int) {
|
||||
RenderState.checkError(getClass.getName + ".renderTileEntityAt: entering (aka: wasntme)")
|
||||
|
||||
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS)
|
||||
GL11.glPushClientAttrib(GL11.GL_ALL_CLIENT_ATTRIB_BITS)
|
||||
GlStateManager.pushAttrib()
|
||||
|
||||
RenderState.disableLighting()
|
||||
RenderState.makeItBlend()
|
||||
RenderState.setBlendAlpha(1)
|
||||
GL11.glColor4f(1, 1, 1, 1)
|
||||
GlStateManager.color(1, 1, 1, 1)
|
||||
|
||||
GL11.glPushMatrix()
|
||||
|
||||
@ -42,8 +42,7 @@ object GeolyzerRenderer extends TileEntitySpecialRenderer {
|
||||
RenderState.enableLighting()
|
||||
|
||||
GL11.glPopMatrix()
|
||||
GL11.glPopAttrib()
|
||||
GL11.glPopClientAttrib()
|
||||
GlStateManager.popAttrib()
|
||||
|
||||
RenderState.checkError(getClass.getName + ".renderTileEntityAt: leaving")
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ import li.cil.oc.Settings
|
||||
import li.cil.oc.client.Textures
|
||||
import li.cil.oc.common.tileentity.Hologram
|
||||
import li.cil.oc.util.RenderState
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer
|
||||
import net.minecraft.tileentity.TileEntity
|
||||
import net.minecraft.util.EnumFacing
|
||||
@ -64,9 +65,9 @@ object HologramRenderer extends TileEntitySpecialRenderer with Callable[Int] wit
|
||||
if (!hologram.hasPower) return
|
||||
|
||||
GL11.glPushClientAttrib(GL11.GL_ALL_CLIENT_ATTRIB_BITS)
|
||||
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS)
|
||||
GlStateManager.pushAttrib()
|
||||
RenderState.makeItBlend()
|
||||
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE)
|
||||
GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE)
|
||||
GL11.glColor4f(1, 1, 1, 1)
|
||||
|
||||
val playerDistSq = x * x + y * y + z * z
|
||||
@ -74,7 +75,7 @@ object HologramRenderer extends TileEntitySpecialRenderer with Callable[Int] wit
|
||||
val fadeDistSq = hologram.getFadeStartDistanceSquared
|
||||
RenderState.setBlendAlpha(0.75f * (if (playerDistSq > fadeDistSq) math.max(0, 1 - ((playerDistSq - fadeDistSq) / (maxDistSq - fadeDistSq)).toFloat) else 1))
|
||||
|
||||
GL11.glPushMatrix()
|
||||
GlStateManager.pushMatrix()
|
||||
GL11.glTranslated(x + 0.5, y + 0.5, z + 0.5)
|
||||
|
||||
hologram.yaw match {
|
||||
@ -128,15 +129,16 @@ object HologramRenderer extends TileEntitySpecialRenderer with Callable[Int] wit
|
||||
// angles (because some faces will shine through sometimes and sometimes
|
||||
// they won't), so a more... consistent look is desirable.
|
||||
val glBuffer = cache.get(hologram, this)
|
||||
GL11.glColorMask(false, false, false, false)
|
||||
GL11.glDepthMask(true)
|
||||
GlStateManager.colorMask(false, false, false, false)
|
||||
GlStateManager.depthMask(true)
|
||||
draw(glBuffer)
|
||||
GL11.glColorMask(true, true, true, true)
|
||||
GL11.glDepthFunc(GL11.GL_EQUAL)
|
||||
GlStateManager.colorMask(true, true, true, true)
|
||||
GlStateManager.depthFunc(GL11.GL_EQUAL)
|
||||
draw(glBuffer)
|
||||
|
||||
GL11.glPopMatrix()
|
||||
GL11.glPopAttrib()
|
||||
GlStateManager.depthFunc(GL11.GL_LEQUAL)
|
||||
GlStateManager.popMatrix()
|
||||
GlStateManager.popAttrib()
|
||||
GL11.glPopClientAttrib()
|
||||
|
||||
RenderState.checkError(getClass.getName + ".renderTileEntityAt: leaving")
|
||||
|
@ -3,6 +3,7 @@ package li.cil.oc.client.renderer.tileentity
|
||||
import li.cil.oc.client.Textures
|
||||
import li.cil.oc.common.tileentity.Microcontroller
|
||||
import li.cil.oc.util.RenderState
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.client.renderer.Tessellator
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer
|
||||
import net.minecraft.tileentity.TileEntity
|
||||
@ -14,12 +15,12 @@ object MicrocontrollerRenderer extends TileEntitySpecialRenderer {
|
||||
RenderState.checkError(getClass.getName + ".renderTileEntityAt: entering (aka: wasntme)")
|
||||
|
||||
val mcu = tileEntity.asInstanceOf[Microcontroller]
|
||||
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS)
|
||||
GlStateManager.pushAttrib()
|
||||
|
||||
RenderState.disableLighting()
|
||||
RenderState.makeItBlend()
|
||||
RenderState.setBlendAlpha(1)
|
||||
GL11.glColor4f(1, 1, 1, 1)
|
||||
GlStateManager.color(1, 1, 1, 1)
|
||||
|
||||
GL11.glPushMatrix()
|
||||
|
||||
@ -62,7 +63,7 @@ object MicrocontrollerRenderer extends TileEntitySpecialRenderer {
|
||||
RenderState.enableLighting()
|
||||
|
||||
GL11.glPopMatrix()
|
||||
GL11.glPopAttrib()
|
||||
GlStateManager.popAttrib()
|
||||
|
||||
RenderState.checkError(getClass.getName + ".renderTileEntityAt: leaving")
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ package li.cil.oc.client.renderer.tileentity
|
||||
import li.cil.oc.client.Textures
|
||||
import li.cil.oc.common.tileentity
|
||||
import li.cil.oc.util.RenderState
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.client.renderer.Tessellator
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer
|
||||
import net.minecraft.tileentity.TileEntity
|
||||
@ -14,7 +15,7 @@ object PowerDistributorRenderer extends TileEntitySpecialRenderer {
|
||||
|
||||
val distributor = tileEntity.asInstanceOf[tileentity.PowerDistributor]
|
||||
if (distributor.globalBuffer > 0) {
|
||||
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS)
|
||||
GlStateManager.pushAttrib()
|
||||
|
||||
RenderState.disableLighting()
|
||||
RenderState.makeItBlend()
|
||||
@ -70,7 +71,7 @@ object PowerDistributorRenderer extends TileEntitySpecialRenderer {
|
||||
RenderState.enableLighting()
|
||||
|
||||
GL11.glPopMatrix()
|
||||
GL11.glPopAttrib()
|
||||
GlStateManager.popAttrib()
|
||||
}
|
||||
|
||||
RenderState.checkError(getClass.getName + ".renderTileEntityAt: leaving")
|
||||
|
@ -3,6 +3,7 @@ package li.cil.oc.client.renderer.tileentity
|
||||
import li.cil.oc.client.Textures
|
||||
import li.cil.oc.common.tileentity.Raid
|
||||
import li.cil.oc.util.RenderState
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.client.renderer.Tessellator
|
||||
import net.minecraft.client.renderer.WorldRenderer
|
||||
import net.minecraft.client.renderer.texture.TextureAtlasSprite
|
||||
@ -16,11 +17,11 @@ object RaidRenderer extends TileEntitySpecialRenderer {
|
||||
RenderState.checkError(getClass.getName + ".renderTileEntityAt: entering (aka: wasntme)")
|
||||
|
||||
val raid = tileEntity.asInstanceOf[Raid]
|
||||
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS)
|
||||
GlStateManager.pushAttrib()
|
||||
|
||||
RenderState.disableLighting()
|
||||
RenderState.makeItBlend()
|
||||
GL11.glColor4f(1, 1, 1, 1)
|
||||
GlStateManager.color(1, 1, 1, 1)
|
||||
|
||||
GL11.glPushMatrix()
|
||||
|
||||
@ -65,7 +66,7 @@ object RaidRenderer extends TileEntitySpecialRenderer {
|
||||
RenderState.enableLighting()
|
||||
|
||||
GL11.glPopMatrix()
|
||||
GL11.glPopAttrib()
|
||||
GlStateManager.popAttrib()
|
||||
|
||||
RenderState.checkError(getClass.getName + ".renderTileEntityAt: leaving")
|
||||
}
|
||||
|
@ -219,7 +219,7 @@ object RobotRenderer extends TileEntitySpecialRenderer {
|
||||
|
||||
{
|
||||
// Additive blending for the light.
|
||||
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE)
|
||||
GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE)
|
||||
// Light color.
|
||||
val lightColor = if (robot != null && robot.info != null) robot.info.lightColor else 0xF23030
|
||||
val r = ((lightColor >>> 16) & 0xFF).toByte
|
||||
@ -290,7 +290,7 @@ object RobotRenderer extends TileEntitySpecialRenderer {
|
||||
|
||||
GL11.glPushMatrix()
|
||||
|
||||
GL11.glDepthMask(true)
|
||||
GlStateManager.depthMask(true)
|
||||
GL11.glEnable(GL11.GL_LIGHTING)
|
||||
GL11.glDisable(GL11.GL_BLEND)
|
||||
GL11.glColor4f(1, 1, 1, 1)
|
||||
@ -424,7 +424,7 @@ object RobotRenderer extends TileEntitySpecialRenderer {
|
||||
GL11.glScalef(-scale, -scale, scale)
|
||||
|
||||
RenderState.makeItBlend()
|
||||
GL11.glDepthMask(false)
|
||||
GlStateManager.depthMask(false)
|
||||
GL11.glDisable(GL11.GL_LIGHTING)
|
||||
GL11.glDisable(GL11.GL_TEXTURE_2D)
|
||||
|
||||
@ -439,7 +439,7 @@ object RobotRenderer extends TileEntitySpecialRenderer {
|
||||
GL11.glEnable(GL11.GL_TEXTURE_2D) // For the font.
|
||||
f.drawString(name, -halfWidth, 0, 0xFFFFFFFF)
|
||||
|
||||
GL11.glDepthMask(true)
|
||||
GlStateManager.depthMask(true)
|
||||
GL11.glEnable(GL11.GL_LIGHTING)
|
||||
GL11.glDisable(GL11.GL_BLEND)
|
||||
|
||||
|
@ -7,6 +7,7 @@ import li.cil.oc.common.tileentity.Screen
|
||||
import li.cil.oc.integration.util.Wrench
|
||||
import li.cil.oc.util.RenderState
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.client.renderer.Tessellator
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer
|
||||
import net.minecraft.tileentity.TileEntity
|
||||
@ -54,11 +55,11 @@ object ScreenRenderer extends TileEntitySpecialRenderer {
|
||||
|
||||
RenderState.checkError(getClass.getName + ".renderTileEntityAt: checks")
|
||||
|
||||
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS)
|
||||
GlStateManager.pushAttrib()
|
||||
|
||||
RenderState.disableLighting()
|
||||
RenderState.makeItBlend()
|
||||
GL11.glColor4f(1, 1, 1, 1)
|
||||
GlStateManager.color(1, 1, 1, 1)
|
||||
|
||||
GL11.glPushMatrix()
|
||||
|
||||
@ -74,7 +75,7 @@ object ScreenRenderer extends TileEntitySpecialRenderer {
|
||||
val alpha = math.max(0, 1 - ((distance - fadeDistanceSq) * fadeRatio).toFloat)
|
||||
if (canUseBlendColor) {
|
||||
GL14.glBlendColor(0, 0, 0, alpha)
|
||||
GL11.glBlendFunc(GL11.GL_CONSTANT_ALPHA, GL11.GL_ONE)
|
||||
GlStateManager.blendFunc(GL11.GL_CONSTANT_ALPHA, GL11.GL_ONE)
|
||||
}
|
||||
}
|
||||
|
||||
@ -87,7 +88,7 @@ object ScreenRenderer extends TileEntitySpecialRenderer {
|
||||
RenderState.enableLighting()
|
||||
|
||||
GL11.glPopMatrix()
|
||||
GL11.glPopAttrib()
|
||||
GlStateManager.popAttrib()
|
||||
|
||||
RenderState.checkError(getClass.getName + ".renderTileEntityAt: leaving")
|
||||
}
|
||||
@ -120,7 +121,7 @@ object ScreenRenderer extends TileEntitySpecialRenderer {
|
||||
if (Wrench.holdsApplicableWrench(Minecraft.getMinecraft.thePlayer, screen.getPos) || screens.contains(api.Items.get(stack))) {
|
||||
GL11.glPushMatrix()
|
||||
transform()
|
||||
GL11.glDepthMask(false)
|
||||
GlStateManager.depthMask(false)
|
||||
GL11.glTranslatef(screen.width / 2f - 0.5f, screen.height / 2f - 0.5f, 0.05f)
|
||||
|
||||
val t = Tessellator.getInstance
|
||||
@ -137,7 +138,7 @@ object ScreenRenderer extends TileEntitySpecialRenderer {
|
||||
|
||||
t.draw()
|
||||
|
||||
GL11.glDepthMask(true)
|
||||
GlStateManager.depthMask(true)
|
||||
GL11.glPopMatrix()
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ package li.cil.oc.client.renderer.tileentity
|
||||
import li.cil.oc.client.Textures
|
||||
import li.cil.oc.common.tileentity.ServerRack
|
||||
import li.cil.oc.util.RenderState
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.client.renderer.Tessellator
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer
|
||||
import net.minecraft.tileentity.TileEntity
|
||||
@ -14,11 +15,11 @@ object ServerRackRenderer extends TileEntitySpecialRenderer {
|
||||
RenderState.checkError(getClass.getName + ".renderTileEntityAt: entering (aka: wasntme)")
|
||||
|
||||
val rack = tileEntity.asInstanceOf[ServerRack]
|
||||
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS)
|
||||
GlStateManager.pushAttrib()
|
||||
|
||||
RenderState.disableLighting()
|
||||
RenderState.makeItBlend()
|
||||
GL11.glColor4f(1, 1, 1, 1)
|
||||
GlStateManager.color(1, 1, 1, 1)
|
||||
|
||||
GL11.glPushMatrix()
|
||||
|
||||
@ -76,7 +77,7 @@ object ServerRackRenderer extends TileEntitySpecialRenderer {
|
||||
RenderState.enableLighting()
|
||||
|
||||
GL11.glPopMatrix()
|
||||
GL11.glPopAttrib()
|
||||
GlStateManager.popAttrib()
|
||||
|
||||
RenderState.checkError(getClass.getName + ".renderTileEntityAt: leaving")
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ package li.cil.oc.client.renderer.tileentity
|
||||
import li.cil.oc.client.Textures
|
||||
import li.cil.oc.common.tileentity
|
||||
import li.cil.oc.util.RenderState
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.client.renderer.Tessellator
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer
|
||||
import net.minecraft.tileentity.TileEntity
|
||||
@ -15,7 +16,7 @@ object SwitchRenderer extends TileEntitySpecialRenderer {
|
||||
val switch = tileEntity.asInstanceOf[tileentity.Switch]
|
||||
val activity = math.max(0, 1 - (System.currentTimeMillis() - switch.lastMessage) / 1000.0)
|
||||
if (activity > 0) {
|
||||
GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS)
|
||||
GlStateManager.pushAttrib()
|
||||
|
||||
RenderState.disableLighting()
|
||||
RenderState.makeItBlend()
|
||||
@ -60,7 +61,7 @@ object SwitchRenderer extends TileEntitySpecialRenderer {
|
||||
RenderState.enableLighting()
|
||||
|
||||
GL11.glPopMatrix()
|
||||
GL11.glPopAttrib()
|
||||
GlStateManager.popAttrib()
|
||||
}
|
||||
|
||||
RenderState.checkError(getClass.getName + ".renderTileEntityAt: leaving")
|
||||
|
@ -3,6 +3,7 @@ package li.cil.oc.util
|
||||
import li.cil.oc.OpenComputers
|
||||
import li.cil.oc.Settings
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.renderer.GlStateManager
|
||||
import net.minecraft.client.renderer.RenderHelper
|
||||
import org.lwjgl.opengl._
|
||||
import org.lwjgl.util.glu.GLU
|
||||
@ -36,12 +37,12 @@ object RenderState {
|
||||
}
|
||||
|
||||
def makeItBlend() {
|
||||
GL11.glEnable(GL11.GL_BLEND)
|
||||
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA)
|
||||
GlStateManager.enableBlend()
|
||||
GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA)
|
||||
}
|
||||
|
||||
def setBlendAlpha(alpha: Float) = {
|
||||
GL11.glColor4f(1, 1, 1, alpha)
|
||||
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE)
|
||||
GlStateManager.color(1, 1, 1, alpha)
|
||||
GlStateManager.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE)
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user