Here's the code that generated the ugliness:
Code: Select all
function SetColor(color)
-- a hack to set the color state without doing it per-vertex
Spring.DrawShape(GL_TRIANGLES, "", { { vertex = {}, color = color } })
end
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--
-- DrawMapItems
--
function DrawMapItems(windowSizeX, windowSizeY)
alpha = 0.25
red = { 1, 0, 0, alpha }
blue = { 0, 0, 1, alpha }
green = { 0, 1, 0, alpha }
yellow = { 1, 1, 0, alpha }
s = 200
h = 200
xc = (Game.mapX * 512) / 2
zc = (Game.mapY * 512) / 2
v0 = { vertex = { xc - s, h, zc - s } }
v1 = { vertex = { xc + s, h, zc - s } }
v2 = { vertex = { xc + s, h, zc + s } }
v3 = { vertex = { xc - s, h, zc + s } }
v4 = { vertex = { xc - s, h + s * 2, zc - s } }
v5 = { vertex = { xc + s, h + s * 2, zc - s } }
v6 = { vertex = { xc + s, h + s * 2, zc + s } }
v7 = { vertex = { xc - s, h + s * 2, zc + s } }
SetColor(green)
Spring.DrawShape(GL_QUADS, "", {
v3, v2, v1, v0, v4, v5, v6, v7, v0, v1, v5, v4,
v1, v2, v6, v5, v2, v3, v7, v6, v3, v0, v4, v7
})
SetColor(red)
Spring.DrawShape(GL_LINE_LOOP, "", { v0, v1, v2, v3})
Spring.DrawShape(GL_LINE_LOOP, "", { v4, v5, v6, v7})
Spring.DrawShape(GL_LINES, "", { v0, v4, v1, v5, v2, v6, v3, v7})
end
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--
-- DrawScreenItems
--
function DrawScreenItems(windowSizeX, windowSizeY)
alpha = 0.5
red = { 1, 0, 0, alpha }
blue = { 0, 0, 1, alpha }
green = { 0, 1, 0, alpha }
yellow = { 1, 1, 0, alpha }
v0 = { vertex = { 100, 200 }, texcoord = { 0, 0 }, color = red }
v1 = { vertex = { 200, 200 }, texcoord = { 3, 0 }, color = blue }
v2 = { vertex = { 200, 300 }, texcoord = { 3, 3 }, color = green }
v3 = { vertex = { 100, 300 }, texcoord = { 0, 3 }, color = yellow }
Spring.DrawShape(GL_QUADS, "bitmaps/arm1.gif", { v0, v1, v2, v3 })
red[4] = 1
green[4] = 1
midx = windowSizeX / 2
white = { } -- 1,1,1,1 is the default
black = { 0, 0, 0 }
v4 = { vertex = { midx, 100 }, color = black }
v5 = { vertex = { midx, windowSizeY - 100 }, color = white }
Spring.DrawShape(GL_LINES, "", { v4, v5 })
Spring.DrawText( "Screen Space Quad", 86, 300, 12, "o")
Spring.DrawText( YellowStr .. "Test Message", midx, 350, 25, "oc")
Spring.DrawText( GreenStr .. "Test Message", midx, 300, 20, "r")
Spring.DrawText( BlueStr .. "Test Message", midx, 250, 15, "o")
Spring.DrawText( RedStr .. "Test Message", midx, 200, 10, "")
print("window = " .. windowSizeX .. "x" .. windowSizeY)
end