structure Ndc = struct (* ndc = normalised device coordinates *) fun ltrbToVertex (left, top, right, bottom) = #[ left, bottom , right, bottom , left, top , left, top , right, bottom , right, top ] fun ltrbToVertexRgb (left, top, right, bottom, r, g, b) = #[ left, bottom, r, g, b , right, bottom, r, g, b , left, top, r, g, b , left, top, r, g, b , right, bottom, r, g, b , right, top, r, g, b ] fun fromPixelX (xpos, windowWidth, windowHeight) = let val halfWidth = Real32.fromInt windowWidth / 2.0 val xpos = xpos - halfWidth in xpos / halfWidth end fun fromPixelY (ypos, windowWidth, windowHeight) = let val halfHeight = Real32.fromInt windowHeight / 2.0 val ypos = ~(ypos - halfHeight) in ypos / halfHeight end end