diff --git a/cozette-sml/README.md b/cozette-sml/README.md new file mode 100644 index 0000000..8d5dff6 --- /dev/null +++ b/cozette-sml/README.md @@ -0,0 +1,11 @@ +# cozette-sml + +## Introduction + +This is an attempt to "port" ASCII subset of the bitmap font [Cozette](https://github.com/slavfox/Cozette/) to pure Standrd ML code which can be rendered with OpenGL with just a vertex buffer, and no textures. + +This is mostly used in my personal projects; I don't expect it to be useful for anyone else. + +## Credits + +This port would not have been possible without the original font by Slavfox. diff --git a/cozette-sml/fonts-with-z-index/ampersand.sml b/cozette-sml/fonts-with-z-index/ampersand.sml new file mode 100644 index 0000000..962c6ac --- /dev/null +++ b/cozette-sml/fonts-with-z-index/ampersand.sml @@ -0,0 +1,257 @@ +structure Ampersand = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/ascii-at.sml b/cozette-sml/fonts-with-z-index/ascii-at.sml new file mode 100644 index 0000000..0727bb6 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/ascii-at.sml @@ -0,0 +1,185 @@ +structure AsciiAt = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/ascii-dot.sml b/cozette-sml/fonts-with-z-index/ascii-dot.sml new file mode 100644 index 0000000..0cfabb3 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/ascii-dot.sml @@ -0,0 +1,42 @@ +structure AsciiDot = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/ascii-eight.sml b/cozette-sml/fonts-with-z-index/ascii-eight.sml new file mode 100644 index 0000000..c478ad3 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/ascii-eight.sml @@ -0,0 +1,185 @@ +structure AsciiEight = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/ascii-five.sml b/cozette-sml/fonts-with-z-index/ascii-five.sml new file mode 100644 index 0000000..ccc86af --- /dev/null +++ b/cozette-sml/fonts-with-z-index/ascii-five.sml @@ -0,0 +1,162 @@ +structure AsciiFive = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/ascii-four.sml b/cozette-sml/fonts-with-z-index/ascii-four.sml new file mode 100644 index 0000000..07d8af3 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/ascii-four.sml @@ -0,0 +1,162 @@ +structure AsciiFour = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/ascii-hash.sml b/cozette-sml/fonts-with-z-index/ascii-hash.sml new file mode 100644 index 0000000..9c1f11b --- /dev/null +++ b/cozette-sml/fonts-with-z-index/ascii-hash.sml @@ -0,0 +1,114 @@ +structure AsciiHash = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/ascii-minus.sml b/cozette-sml/fonts-with-z-index/ascii-minus.sml new file mode 100644 index 0000000..8a5bf84 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/ascii-minus.sml @@ -0,0 +1,42 @@ +structure AsciiMinus = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/ascii-nine.sml b/cozette-sml/fonts-with-z-index/ascii-nine.sml new file mode 100644 index 0000000..8799d49 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/ascii-nine.sml @@ -0,0 +1,162 @@ +structure AsciiNine = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/ascii-one.sml b/cozette-sml/fonts-with-z-index/ascii-one.sml new file mode 100644 index 0000000..22add3a --- /dev/null +++ b/cozette-sml/fonts-with-z-index/ascii-one.sml @@ -0,0 +1,114 @@ +structure AsciiOne = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/ascii-percent.sml b/cozette-sml/fonts-with-z-index/ascii-percent.sml new file mode 100644 index 0000000..fbc9eb0 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/ascii-percent.sml @@ -0,0 +1,330 @@ +structure AsciiPercent = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/ascii-pipe.sml b/cozette-sml/fonts-with-z-index/ascii-pipe.sml new file mode 100644 index 0000000..2401e42 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/ascii-pipe.sml @@ -0,0 +1,42 @@ +structure AsciiPipe = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/ascii-plus.sml b/cozette-sml/fonts-with-z-index/ascii-plus.sml new file mode 100644 index 0000000..1c189b5 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/ascii-plus.sml @@ -0,0 +1,66 @@ +structure AsciiPlus = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/ascii-seven.sml b/cozette-sml/fonts-with-z-index/ascii-seven.sml new file mode 100644 index 0000000..5657b16 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/ascii-seven.sml @@ -0,0 +1,138 @@ +structure AsciiSeven = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/ascii-six.sml b/cozette-sml/fonts-with-z-index/ascii-six.sml new file mode 100644 index 0000000..2d77b5b --- /dev/null +++ b/cozette-sml/fonts-with-z-index/ascii-six.sml @@ -0,0 +1,162 @@ +structure AsciiSix = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/ascii-space.sml b/cozette-sml/fonts-with-z-index/ascii-space.sml new file mode 100644 index 0000000..678929b --- /dev/null +++ b/cozette-sml/fonts-with-z-index/ascii-space.sml @@ -0,0 +1,5 @@ +structure AsciiSpace = +struct + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, r, g, b) = + #[ ] +end diff --git a/cozette-sml/fonts-with-z-index/ascii-three.sml b/cozette-sml/fonts-with-z-index/ascii-three.sml new file mode 100644 index 0000000..450e109 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/ascii-three.sml @@ -0,0 +1,186 @@ +structure AsciiThree = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/ascii-tilde.sml b/cozette-sml/fonts-with-z-index/ascii-tilde.sml new file mode 100644 index 0000000..5c5f1c1 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/ascii-tilde.sml @@ -0,0 +1,138 @@ +structure AsciiTilde = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/ascii-two.sml b/cozette-sml/fonts-with-z-index/ascii-two.sml new file mode 100644 index 0000000..96926b9 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/ascii-two.sml @@ -0,0 +1,210 @@ +structure AsciiTwo = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/ascii-zero.sml b/cozette-sml/fonts-with-z-index/ascii-zero.sml new file mode 100644 index 0000000..c1971db --- /dev/null +++ b/cozette-sml/fonts-with-z-index/ascii-zero.sml @@ -0,0 +1,137 @@ +structure AsciiZero = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/asterisk.sml b/cozette-sml/fonts-with-z-index/asterisk.sml new file mode 100644 index 0000000..9ef3ce1 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/asterisk.sml @@ -0,0 +1,162 @@ +structure Asterisk = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/backtick.sml b/cozette-sml/fonts-with-z-index/backtick.sml new file mode 100644 index 0000000..3e9e69f --- /dev/null +++ b/cozette-sml/fonts-with-z-index/backtick.sml @@ -0,0 +1,66 @@ +structure Backtick = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/backward-slash.sml b/cozette-sml/fonts-with-z-index/backward-slash.sml new file mode 100644 index 0000000..f22b762 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/backward-slash.sml @@ -0,0 +1,138 @@ +structure BackwardSlash = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/caret.sml b/cozette-sml/fonts-with-z-index/caret.sml new file mode 100644 index 0000000..0a3056c --- /dev/null +++ b/cozette-sml/fonts-with-z-index/caret.sml @@ -0,0 +1,138 @@ +structure Caret = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/colon.sml b/cozette-sml/fonts-with-z-index/colon.sml new file mode 100644 index 0000000..aa3107f --- /dev/null +++ b/cozette-sml/fonts-with-z-index/colon.sml @@ -0,0 +1,66 @@ +structure Colon = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/comma.sml b/cozette-sml/fonts-with-z-index/comma.sml new file mode 100644 index 0000000..262537a --- /dev/null +++ b/cozette-sml/fonts-with-z-index/comma.sml @@ -0,0 +1,90 @@ +structure Comma = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/cozette-ascii.mlb b/cozette-sml/fonts-with-z-index/cozette-ascii.mlb new file mode 100644 index 0000000..bfc9fef --- /dev/null +++ b/cozette-sml/fonts-with-z-index/cozette-ascii.mlb @@ -0,0 +1,105 @@ +$(SML_LIB)/basis/basis.mlb +ann + "allowVectorExps true" +in + local + ascii-zero.sml + ascii-one.sml + ascii-two.sml + ascii-three.sml + ascii-four.sml + ascii-five.sml + ascii-six.sml + ascii-seven.sml + ascii-eight.sml + ascii-nine.sml + ascii-space.sml + ampersand.sml + asterisk.sml + ascii-at.sml + backtick.sml + backward-slash.sml + caret.sml + colon.sml + comma.sml + dollar.sml + quotes-double.sml + equals.sml + exclamation_mark.sml + forward-slash.sml + ascii-dot.sml + ascii-hash.sml + left-angled-bracket.sml + left-brace.sml + left-bracket.sml + left-paren.sml + lower-case-a.sml + lower-case-b.sml + lower-case-c.sml + lower-case-d.sml + lower-case-e.sml + lower-case-f.sml + lower-case-g.sml + lower-case-h.sml + lower-case-i.sml + lower-case-j.sml + lower-case-k.sml + lower-case-l.sml + lower-case-m.sml + lower-case-n.sml + lower-case-o.sml + lower-case-p.sml + lower-case-q.sml + lower-case-r.sml + lower-case-s.sml + lower-case-t.sml + lower-case-u.sml + lower-case-v.sml + lower-case-w.sml + lower-case-x.sml + lower-case-y.sml + lower-case-z.sml + ascii-minus.sml + ascii-percent.sml + ascii-pipe.sml + ascii-plus.sml + question-mark.sml + right-angled-bracket.sml + right-brace.sml + right-bracket.sml + right-paren.sml + semicolon.sml + quotes-single.sml + ascii-tilde.sml + underscore.sml + unknown.sml + upper-case-a.sml + upper-case-b.sml + upper-case-c.sml + upper-case-d.sml + upper-case-e.sml + upper-case-f.sml + upper-case-g.sml + upper-case-h.sml + upper-case-i.sml + upper-case-j.sml + upper-case-k.sml + upper-case-l.sml + upper-case-m.sml + upper-case-n.sml + upper-case-o.sml + upper-case-p.sml + upper-case-q.sml + upper-case-r.sml + upper-case-s.sml + upper-case-t.sml + upper-case-u.sml + upper-case-v.sml + upper-case-w.sml + upper-case-x.sml + upper-case-y.sml + upper-case-z.sml + in + cozette-ascii.sml + end +end diff --git a/cozette-sml/fonts-with-z-index/cozette-ascii.sml b/cozette-sml/fonts-with-z-index/cozette-ascii.sml new file mode 100644 index 0000000..eb145e9 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/cozette-ascii.sml @@ -0,0 +1,260 @@ +structure CozetteAscii = +struct + val asciiTable = #[ + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + AsciiSpace.lerp, + ExclamationMark.lerp, + QuotesDouble.lerp, + AsciiHash.lerp, + Dollar.lerp, + AsciiPercent.lerp, + Ampersand.lerp, + QuotesSingle.lerp, + LeftParen.lerp, + RightParen.lerp, + Asterisk.lerp, + AsciiPlus.lerp, + Comma.lerp, + AsciiMinus.lerp, + AsciiDot.lerp, + ForwardSlash.lerp, + AsciiZero.lerp, + AsciiOne.lerp, + AsciiTwo.lerp, + AsciiThree.lerp, + AsciiFour.lerp, + AsciiFive.lerp, + AsciiSix.lerp, + AsciiSeven.lerp, + AsciiEight.lerp, + AsciiNine.lerp, + Colon.lerp, + Semicolon.lerp, + LeftAngledBracket.lerp, + AsciiEquals.lerp, + RightAngledBracket.lerp, + QuestionMark.lerp, + AsciiAt.lerp, + UpperCaseA.lerp, + UpperCaseB.lerp, + UpperCaseC.lerp, + UpperCaseD.lerp, + UpperCaseE.lerp, + UpperCaseF.lerp, + UpperCaseG.lerp, + UpperCaseH.lerp, + UpperCaseI.lerp, + UpperCaseJ.lerp, + UpperCaseK.lerp, + UpperCaseL.lerp, + UpperCaseM.lerp, + UpperCaseN.lerp, + UpperCaseO.lerp, + UpperCaseP.lerp, + UpperCaseQ.lerp, + UpperCaseR.lerp, + UpperCaseS.lerp, + UpperCaseT.lerp, + UpperCaseU.lerp, + UpperCaseV.lerp, + UpperCaseW.lerp, + UpperCaseX.lerp, + UpperCaseY.lerp, + UpperCaseZ.lerp, + LeftBracket.lerp, + BackwardSlash.lerp, + RightBracket.lerp, + Caret.lerp, + Underscore.lerp, + Backtick.lerp, + LowerCaseA.lerp, + LowerCaseB.lerp, + LowerCaseC.lerp, + LowerCaseD.lerp, + LowerCaseE.lerp, + LowerCaseF.lerp, + LowerCaseG.lerp, + LowerCaseH.lerp, + LowerCaseI.lerp, + LowerCaseJ.lerp, + LowerCaseK.lerp, + LowerCaseL.lerp, + LowerCaseM.lerp, + LowerCaseN.lerp, + LowerCaseO.lerp, + LowerCaseP.lerp, + LowerCaseQ.lerp, + LowerCaseR.lerp, + LowerCaseS.lerp, + LowerCaseT.lerp, + LowerCaseU.lerp, + LowerCaseV.lerp, + LowerCaseW.lerp, + LowerCaseX.lerp, + LowerCaseY.lerp, + LowerCaseZ.lerp, + LeftBrace.lerp, + AsciiPipe.lerp, + RightBrace.lerp, + AsciiTilde.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp + ] + + fun make (chr, posX, posY, zIndex, scale, windowWidth, windowHeight, r, g, b) = + let + val chrFun = Vector.sub (asciiTable, Char.ord chr) + in + chrFun (posX, posY, zIndex, scale, windowWidth, windowHeight, r, g, b) + end +end diff --git a/cozette-sml/fonts-with-z-index/dollar.sml b/cozette-sml/fonts-with-z-index/dollar.sml new file mode 100644 index 0000000..5f96a37 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/dollar.sml @@ -0,0 +1,210 @@ +structure Dollar = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/equals.sml b/cozette-sml/fonts-with-z-index/equals.sml new file mode 100644 index 0000000..9b80299 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/equals.sml @@ -0,0 +1,66 @@ +structure AsciiEquals = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/exclamation_mark.sml b/cozette-sml/fonts-with-z-index/exclamation_mark.sml new file mode 100644 index 0000000..e909c99 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/exclamation_mark.sml @@ -0,0 +1,66 @@ +structure ExclamationMark = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/forward-slash.sml b/cozette-sml/fonts-with-z-index/forward-slash.sml new file mode 100644 index 0000000..cdab49d --- /dev/null +++ b/cozette-sml/fonts-with-z-index/forward-slash.sml @@ -0,0 +1,138 @@ +structure ForwardSlash = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/left-angled-bracket.sml b/cozette-sml/fonts-with-z-index/left-angled-bracket.sml new file mode 100644 index 0000000..83d4392 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/left-angled-bracket.sml @@ -0,0 +1,186 @@ +structure LeftAngledBracket = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/left-brace.sml b/cozette-sml/fonts-with-z-index/left-brace.sml new file mode 100644 index 0000000..de45851 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/left-brace.sml @@ -0,0 +1,138 @@ +structure LeftBrace = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/left-bracket.sml b/cozette-sml/fonts-with-z-index/left-bracket.sml new file mode 100644 index 0000000..42e3f10 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/left-bracket.sml @@ -0,0 +1,90 @@ +structure LeftBracket = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/left-paren.sml b/cozette-sml/fonts-with-z-index/left-paren.sml new file mode 100644 index 0000000..3070821 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/left-paren.sml @@ -0,0 +1,138 @@ +structure LeftParen = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/lower-case-a.sml b/cozette-sml/fonts-with-z-index/lower-case-a.sml new file mode 100644 index 0000000..e2fcf1c --- /dev/null +++ b/cozette-sml/fonts-with-z-index/lower-case-a.sml @@ -0,0 +1,138 @@ +structure LowerCaseA = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/lower-case-b.sml b/cozette-sml/fonts-with-z-index/lower-case-b.sml new file mode 100644 index 0000000..34495a8 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/lower-case-b.sml @@ -0,0 +1,114 @@ +structure LowerCaseB = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/lower-case-c.sml b/cozette-sml/fonts-with-z-index/lower-case-c.sml new file mode 100644 index 0000000..e6d2f99 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/lower-case-c.sml @@ -0,0 +1,138 @@ +structure LowerCaseC = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/lower-case-d.sml b/cozette-sml/fonts-with-z-index/lower-case-d.sml new file mode 100644 index 0000000..69cd5c4 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/lower-case-d.sml @@ -0,0 +1,114 @@ +structure LowerCaseD = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/lower-case-e.sml b/cozette-sml/fonts-with-z-index/lower-case-e.sml new file mode 100644 index 0000000..97152fd --- /dev/null +++ b/cozette-sml/fonts-with-z-index/lower-case-e.sml @@ -0,0 +1,162 @@ +structure LowerCaseE = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/lower-case-f.sml b/cozette-sml/fonts-with-z-index/lower-case-f.sml new file mode 100644 index 0000000..2be046e --- /dev/null +++ b/cozette-sml/fonts-with-z-index/lower-case-f.sml @@ -0,0 +1,90 @@ +structure LowerCaseF = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/lower-case-g.sml b/cozette-sml/fonts-with-z-index/lower-case-g.sml new file mode 100644 index 0000000..6316b39 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/lower-case-g.sml @@ -0,0 +1,138 @@ +structure LowerCaseG = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/lower-case-h.sml b/cozette-sml/fonts-with-z-index/lower-case-h.sml new file mode 100644 index 0000000..8c01844 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/lower-case-h.sml @@ -0,0 +1,90 @@ +structure LowerCaseH = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/lower-case-i.sml b/cozette-sml/fonts-with-z-index/lower-case-i.sml new file mode 100644 index 0000000..cde1a97 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/lower-case-i.sml @@ -0,0 +1,114 @@ +structure LowerCaseI = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/lower-case-j.sml b/cozette-sml/fonts-with-z-index/lower-case-j.sml new file mode 100644 index 0000000..c9239fd --- /dev/null +++ b/cozette-sml/fonts-with-z-index/lower-case-j.sml @@ -0,0 +1,138 @@ +structure LowerCaseJ = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/lower-case-k.sml b/cozette-sml/fonts-with-z-index/lower-case-k.sml new file mode 100644 index 0000000..0bdce2a --- /dev/null +++ b/cozette-sml/fonts-with-z-index/lower-case-k.sml @@ -0,0 +1,186 @@ +structure LowerCaseK = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/lower-case-l.sml b/cozette-sml/fonts-with-z-index/lower-case-l.sml new file mode 100644 index 0000000..de4b8cb --- /dev/null +++ b/cozette-sml/fonts-with-z-index/lower-case-l.sml @@ -0,0 +1,90 @@ +structure LowerCaseL = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/lower-case-m.sml b/cozette-sml/fonts-with-z-index/lower-case-m.sml new file mode 100644 index 0000000..9029163 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/lower-case-m.sml @@ -0,0 +1,138 @@ +structure LowerCaseM = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/lower-case-n.sml b/cozette-sml/fonts-with-z-index/lower-case-n.sml new file mode 100644 index 0000000..3092862 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/lower-case-n.sml @@ -0,0 +1,90 @@ +structure LowerCaseN = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/lower-case-o.sml b/cozette-sml/fonts-with-z-index/lower-case-o.sml new file mode 100644 index 0000000..d9b9d96 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/lower-case-o.sml @@ -0,0 +1,114 @@ +structure LowerCaseO = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/lower-case-p.sml b/cozette-sml/fonts-with-z-index/lower-case-p.sml new file mode 100644 index 0000000..c889a9b --- /dev/null +++ b/cozette-sml/fonts-with-z-index/lower-case-p.sml @@ -0,0 +1,114 @@ +structure LowerCaseP = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/lower-case-q.sml b/cozette-sml/fonts-with-z-index/lower-case-q.sml new file mode 100644 index 0000000..b40d673 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/lower-case-q.sml @@ -0,0 +1,138 @@ +structure LowerCaseQ = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/lower-case-r.sml b/cozette-sml/fonts-with-z-index/lower-case-r.sml new file mode 100644 index 0000000..9cc9292 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/lower-case-r.sml @@ -0,0 +1,90 @@ +structure LowerCaseR = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/lower-case-s.sml b/cozette-sml/fonts-with-z-index/lower-case-s.sml new file mode 100644 index 0000000..d103808 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/lower-case-s.sml @@ -0,0 +1,138 @@ +structure LowerCaseS = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/lower-case-t.sml b/cozette-sml/fonts-with-z-index/lower-case-t.sml new file mode 100644 index 0000000..3ad2eda --- /dev/null +++ b/cozette-sml/fonts-with-z-index/lower-case-t.sml @@ -0,0 +1,90 @@ +structure LowerCaseT = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/lower-case-u.sml b/cozette-sml/fonts-with-z-index/lower-case-u.sml new file mode 100644 index 0000000..83ef2d2 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/lower-case-u.sml @@ -0,0 +1,90 @@ +structure LowerCaseU = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/lower-case-v.sml b/cozette-sml/fonts-with-z-index/lower-case-v.sml new file mode 100644 index 0000000..67063d8 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/lower-case-v.sml @@ -0,0 +1,138 @@ +structure LowerCaseV = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/lower-case-w.sml b/cozette-sml/fonts-with-z-index/lower-case-w.sml new file mode 100644 index 0000000..8270b8d --- /dev/null +++ b/cozette-sml/fonts-with-z-index/lower-case-w.sml @@ -0,0 +1,138 @@ +structure LowerCaseW = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/lower-case-x.sml b/cozette-sml/fonts-with-z-index/lower-case-x.sml new file mode 100644 index 0000000..f74d003 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/lower-case-x.sml @@ -0,0 +1,234 @@ +structure LowerCaseX = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/lower-case-y.sml b/cozette-sml/fonts-with-z-index/lower-case-y.sml new file mode 100644 index 0000000..450201f --- /dev/null +++ b/cozette-sml/fonts-with-z-index/lower-case-y.sml @@ -0,0 +1,114 @@ +structure LowerCaseY = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/lower-case-z.sml b/cozette-sml/fonts-with-z-index/lower-case-z.sml new file mode 100644 index 0000000..1622592 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/lower-case-z.sml @@ -0,0 +1,162 @@ +structure LowerCaseZ = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/question-mark.sml b/cozette-sml/fonts-with-z-index/question-mark.sml new file mode 100644 index 0000000..c437d32 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/question-mark.sml @@ -0,0 +1,162 @@ +structure QuestionMark = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/quotes-double.sml b/cozette-sml/fonts-with-z-index/quotes-double.sml new file mode 100644 index 0000000..05f4e6f --- /dev/null +++ b/cozette-sml/fonts-with-z-index/quotes-double.sml @@ -0,0 +1,66 @@ +structure QuotesDouble = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/quotes-single.sml b/cozette-sml/fonts-with-z-index/quotes-single.sml new file mode 100644 index 0000000..41e2263 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/quotes-single.sml @@ -0,0 +1,42 @@ +structure QuotesSingle = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/right-angled-bracket.sml b/cozette-sml/fonts-with-z-index/right-angled-bracket.sml new file mode 100644 index 0000000..7de0df5 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/right-angled-bracket.sml @@ -0,0 +1,186 @@ +structure RightAngledBracket = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/right-brace.sml b/cozette-sml/fonts-with-z-index/right-brace.sml new file mode 100644 index 0000000..3cd1134 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/right-brace.sml @@ -0,0 +1,138 @@ +structure RightBrace = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/right-bracket.sml b/cozette-sml/fonts-with-z-index/right-bracket.sml new file mode 100644 index 0000000..d202338 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/right-bracket.sml @@ -0,0 +1,90 @@ +structure RightBracket = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/right-paren.sml b/cozette-sml/fonts-with-z-index/right-paren.sml new file mode 100644 index 0000000..77800b8 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/right-paren.sml @@ -0,0 +1,138 @@ +structure RightParen = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/semicolon.sml b/cozette-sml/fonts-with-z-index/semicolon.sml new file mode 100644 index 0000000..0b2f9d2 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/semicolon.sml @@ -0,0 +1,114 @@ +structure Semicolon = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/underscore.sml b/cozette-sml/fonts-with-z-index/underscore.sml new file mode 100644 index 0000000..ab15253 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/underscore.sml @@ -0,0 +1,42 @@ +structure Underscore = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/unknown.sml b/cozette-sml/fonts-with-z-index/unknown.sml new file mode 100644 index 0000000..acda0b9 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/unknown.sml @@ -0,0 +1,114 @@ +structure Unknown = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 0.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 0.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 0.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 0.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 0.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 0.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 0.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 0.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 0.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/upper-case-a.sml b/cozette-sml/fonts-with-z-index/upper-case-a.sml new file mode 100644 index 0000000..4c23c2c --- /dev/null +++ b/cozette-sml/fonts-with-z-index/upper-case-a.sml @@ -0,0 +1,114 @@ +structure UpperCaseA = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/upper-case-b.sml b/cozette-sml/fonts-with-z-index/upper-case-b.sml new file mode 100644 index 0000000..835fd4d --- /dev/null +++ b/cozette-sml/fonts-with-z-index/upper-case-b.sml @@ -0,0 +1,162 @@ +structure UpperCaseB = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/upper-case-c.sml b/cozette-sml/fonts-with-z-index/upper-case-c.sml new file mode 100644 index 0000000..4154e83 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/upper-case-c.sml @@ -0,0 +1,138 @@ +structure UpperCaseC = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/upper-case-d.sml b/cozette-sml/fonts-with-z-index/upper-case-d.sml new file mode 100644 index 0000000..3793bf9 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/upper-case-d.sml @@ -0,0 +1,162 @@ +structure UpperCaseD = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/upper-case-e.sml b/cozette-sml/fonts-with-z-index/upper-case-e.sml new file mode 100644 index 0000000..5e754c3 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/upper-case-e.sml @@ -0,0 +1,114 @@ +structure UpperCaseE = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/upper-case-f.sml b/cozette-sml/fonts-with-z-index/upper-case-f.sml new file mode 100644 index 0000000..8c7d39e --- /dev/null +++ b/cozette-sml/fonts-with-z-index/upper-case-f.sml @@ -0,0 +1,90 @@ +structure UpperCaseF = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/upper-case-g.sml b/cozette-sml/fonts-with-z-index/upper-case-g.sml new file mode 100644 index 0000000..6f2d0c9 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/upper-case-g.sml @@ -0,0 +1,162 @@ +structure UpperCaseG = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/upper-case-h.sml b/cozette-sml/fonts-with-z-index/upper-case-h.sml new file mode 100644 index 0000000..6cd7d02 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/upper-case-h.sml @@ -0,0 +1,90 @@ +structure UpperCaseH = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/upper-case-i.sml b/cozette-sml/fonts-with-z-index/upper-case-i.sml new file mode 100644 index 0000000..ffdd2b5 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/upper-case-i.sml @@ -0,0 +1,90 @@ +structure UpperCaseI = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/upper-case-j.sml b/cozette-sml/fonts-with-z-index/upper-case-j.sml new file mode 100644 index 0000000..f694325 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/upper-case-j.sml @@ -0,0 +1,114 @@ +structure UpperCaseJ = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/upper-case-k.sml b/cozette-sml/fonts-with-z-index/upper-case-k.sml new file mode 100644 index 0000000..8734324 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/upper-case-k.sml @@ -0,0 +1,186 @@ +structure UpperCaseK = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/upper-case-l.sml b/cozette-sml/fonts-with-z-index/upper-case-l.sml new file mode 100644 index 0000000..85366d4 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/upper-case-l.sml @@ -0,0 +1,66 @@ +structure UpperCaseL = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/upper-case-m.sml b/cozette-sml/fonts-with-z-index/upper-case-m.sml new file mode 100644 index 0000000..b81f4c4 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/upper-case-m.sml @@ -0,0 +1,138 @@ +structure UpperCaseM = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/upper-case-n.sml b/cozette-sml/fonts-with-z-index/upper-case-n.sml new file mode 100644 index 0000000..b38ce55 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/upper-case-n.sml @@ -0,0 +1,138 @@ +structure UpperCaseN = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/upper-case-o.sml b/cozette-sml/fonts-with-z-index/upper-case-o.sml new file mode 100644 index 0000000..d85e933 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/upper-case-o.sml @@ -0,0 +1,114 @@ +structure UpperCaseO = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/upper-case-p.sml b/cozette-sml/fonts-with-z-index/upper-case-p.sml new file mode 100644 index 0000000..f46929e --- /dev/null +++ b/cozette-sml/fonts-with-z-index/upper-case-p.sml @@ -0,0 +1,114 @@ +structure UpperCaseP = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/upper-case-q.sml b/cozette-sml/fonts-with-z-index/upper-case-q.sml new file mode 100644 index 0000000..9865b54 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/upper-case-q.sml @@ -0,0 +1,162 @@ +structure UpperCaseQ = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/upper-case-r.sml b/cozette-sml/fonts-with-z-index/upper-case-r.sml new file mode 100644 index 0000000..de9b50c --- /dev/null +++ b/cozette-sml/fonts-with-z-index/upper-case-r.sml @@ -0,0 +1,162 @@ +structure UpperCaseR = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/upper-case-s.sml b/cozette-sml/fonts-with-z-index/upper-case-s.sml new file mode 100644 index 0000000..5b311ec --- /dev/null +++ b/cozette-sml/fonts-with-z-index/upper-case-s.sml @@ -0,0 +1,186 @@ +structure UpperCaseS = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/upper-case-t.sml b/cozette-sml/fonts-with-z-index/upper-case-t.sml new file mode 100644 index 0000000..0055fac --- /dev/null +++ b/cozette-sml/fonts-with-z-index/upper-case-t.sml @@ -0,0 +1,66 @@ +structure UpperCaseT = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/upper-case-u.sml b/cozette-sml/fonts-with-z-index/upper-case-u.sml new file mode 100644 index 0000000..0708e34 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/upper-case-u.sml @@ -0,0 +1,90 @@ +structure UpperCaseU = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/upper-case-v.sml b/cozette-sml/fonts-with-z-index/upper-case-v.sml new file mode 100644 index 0000000..478904e --- /dev/null +++ b/cozette-sml/fonts-with-z-index/upper-case-v.sml @@ -0,0 +1,138 @@ +structure UpperCaseV = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/upper-case-w.sml b/cozette-sml/fonts-with-z-index/upper-case-w.sml new file mode 100644 index 0000000..65c7811 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/upper-case-w.sml @@ -0,0 +1,138 @@ +structure UpperCaseW = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/upper-case-x.sml b/cozette-sml/fonts-with-z-index/upper-case-x.sml new file mode 100644 index 0000000..38185d5 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/upper-case-x.sml @@ -0,0 +1,234 @@ +structure UpperCaseX = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/upper-case-y.sml b/cozette-sml/fonts-with-z-index/upper-case-y.sml new file mode 100644 index 0000000..b67ea23 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/upper-case-y.sml @@ -0,0 +1,138 @@ +structure UpperCaseY = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts-with-z-index/upper-case-z.sml b/cozette-sml/fonts-with-z-index/upper-case-z.sml new file mode 100644 index 0000000..9e51da3 --- /dev/null +++ b/cozette-sml/fonts-with-z-index/upper-case-z.sml @@ -0,0 +1,162 @@ +structure UpperCaseZ = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, z, scale, windowWidth, windowHeight, +r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +z, +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +z, +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/ampersand.sml b/cozette-sml/fonts/ampersand.sml new file mode 100644 index 0000000..42e82ce --- /dev/null +++ b/cozette-sml/fonts/ampersand.sml @@ -0,0 +1,197 @@ +structure Ampersand = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/ascii-at.sml b/cozette-sml/fonts/ascii-at.sml new file mode 100644 index 0000000..2ad68b5 --- /dev/null +++ b/cozette-sml/fonts/ascii-at.sml @@ -0,0 +1,143 @@ +structure AsciiAt = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/ascii-dot.sml b/cozette-sml/fonts/ascii-dot.sml new file mode 100644 index 0000000..25a5c6f --- /dev/null +++ b/cozette-sml/fonts/ascii-dot.sml @@ -0,0 +1,35 @@ +structure AsciiDot = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/ascii-eight.sml b/cozette-sml/fonts/ascii-eight.sml new file mode 100644 index 0000000..f156ce1 --- /dev/null +++ b/cozette-sml/fonts/ascii-eight.sml @@ -0,0 +1,143 @@ +structure AsciiEight = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/ascii-five.sml b/cozette-sml/fonts/ascii-five.sml new file mode 100644 index 0000000..8804172 --- /dev/null +++ b/cozette-sml/fonts/ascii-five.sml @@ -0,0 +1,125 @@ +structure AsciiFive = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/ascii-four.sml b/cozette-sml/fonts/ascii-four.sml new file mode 100644 index 0000000..f3f55c8 --- /dev/null +++ b/cozette-sml/fonts/ascii-four.sml @@ -0,0 +1,125 @@ +structure AsciiFour = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/ascii-hash.sml b/cozette-sml/fonts/ascii-hash.sml new file mode 100644 index 0000000..4648a8b --- /dev/null +++ b/cozette-sml/fonts/ascii-hash.sml @@ -0,0 +1,89 @@ +structure AsciiHash = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/ascii-minus.sml b/cozette-sml/fonts/ascii-minus.sml new file mode 100644 index 0000000..2d0f3fd --- /dev/null +++ b/cozette-sml/fonts/ascii-minus.sml @@ -0,0 +1,35 @@ +structure AsciiMinus = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/ascii-nine.sml b/cozette-sml/fonts/ascii-nine.sml new file mode 100644 index 0000000..24eea08 --- /dev/null +++ b/cozette-sml/fonts/ascii-nine.sml @@ -0,0 +1,125 @@ +structure AsciiNine = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/ascii-one.sml b/cozette-sml/fonts/ascii-one.sml new file mode 100644 index 0000000..3502c5b --- /dev/null +++ b/cozette-sml/fonts/ascii-one.sml @@ -0,0 +1,89 @@ +structure AsciiOne = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/ascii-percent.sml b/cozette-sml/fonts/ascii-percent.sml new file mode 100644 index 0000000..72e6b68 --- /dev/null +++ b/cozette-sml/fonts/ascii-percent.sml @@ -0,0 +1,251 @@ +structure AsciiPercent = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/ascii-pipe.sml b/cozette-sml/fonts/ascii-pipe.sml new file mode 100644 index 0000000..f33e11c --- /dev/null +++ b/cozette-sml/fonts/ascii-pipe.sml @@ -0,0 +1,35 @@ +structure AsciiPipe = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/ascii-plus.sml b/cozette-sml/fonts/ascii-plus.sml new file mode 100644 index 0000000..e1824ab --- /dev/null +++ b/cozette-sml/fonts/ascii-plus.sml @@ -0,0 +1,53 @@ +structure AsciiPlus = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/ascii-seven.sml b/cozette-sml/fonts/ascii-seven.sml new file mode 100644 index 0000000..abff3ab --- /dev/null +++ b/cozette-sml/fonts/ascii-seven.sml @@ -0,0 +1,107 @@ +structure AsciiSeven = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/ascii-six.sml b/cozette-sml/fonts/ascii-six.sml new file mode 100644 index 0000000..434b2d7 --- /dev/null +++ b/cozette-sml/fonts/ascii-six.sml @@ -0,0 +1,125 @@ +structure AsciiSix = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/ascii-space.sml b/cozette-sml/fonts/ascii-space.sml new file mode 100644 index 0000000..24286f2 --- /dev/null +++ b/cozette-sml/fonts/ascii-space.sml @@ -0,0 +1,5 @@ +structure AsciiSpace = +struct + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + #[ ] +end diff --git a/cozette-sml/fonts/ascii-three.sml b/cozette-sml/fonts/ascii-three.sml new file mode 100644 index 0000000..040ea1e --- /dev/null +++ b/cozette-sml/fonts/ascii-three.sml @@ -0,0 +1,143 @@ +structure AsciiThree = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/ascii-tilde.sml b/cozette-sml/fonts/ascii-tilde.sml new file mode 100644 index 0000000..a9fc724 --- /dev/null +++ b/cozette-sml/fonts/ascii-tilde.sml @@ -0,0 +1,107 @@ +structure AsciiTilde = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/ascii-two.sml b/cozette-sml/fonts/ascii-two.sml new file mode 100644 index 0000000..9fce71d --- /dev/null +++ b/cozette-sml/fonts/ascii-two.sml @@ -0,0 +1,161 @@ +structure AsciiTwo = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/ascii-zero.sml b/cozette-sml/fonts/ascii-zero.sml new file mode 100644 index 0000000..0287a04 --- /dev/null +++ b/cozette-sml/fonts/ascii-zero.sml @@ -0,0 +1,107 @@ +structure AsciiZero = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/asterisk.sml b/cozette-sml/fonts/asterisk.sml new file mode 100644 index 0000000..c6a29c1 --- /dev/null +++ b/cozette-sml/fonts/asterisk.sml @@ -0,0 +1,125 @@ +structure Asterisk = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/backtick.sml b/cozette-sml/fonts/backtick.sml new file mode 100644 index 0000000..406d7b7 --- /dev/null +++ b/cozette-sml/fonts/backtick.sml @@ -0,0 +1,53 @@ +structure Backtick = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/backward-slash.sml b/cozette-sml/fonts/backward-slash.sml new file mode 100644 index 0000000..4999870 --- /dev/null +++ b/cozette-sml/fonts/backward-slash.sml @@ -0,0 +1,107 @@ +structure BackwardSlash = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/caret.sml b/cozette-sml/fonts/caret.sml new file mode 100644 index 0000000..f6fd855 --- /dev/null +++ b/cozette-sml/fonts/caret.sml @@ -0,0 +1,107 @@ +structure Caret = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/colon.sml b/cozette-sml/fonts/colon.sml new file mode 100644 index 0000000..a2d8e88 --- /dev/null +++ b/cozette-sml/fonts/colon.sml @@ -0,0 +1,53 @@ +structure Colon = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/comma.sml b/cozette-sml/fonts/comma.sml new file mode 100644 index 0000000..d4a0eba --- /dev/null +++ b/cozette-sml/fonts/comma.sml @@ -0,0 +1,71 @@ +structure Comma = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/cozette-ascii.mlb b/cozette-sml/fonts/cozette-ascii.mlb new file mode 100644 index 0000000..bfc9fef --- /dev/null +++ b/cozette-sml/fonts/cozette-ascii.mlb @@ -0,0 +1,105 @@ +$(SML_LIB)/basis/basis.mlb +ann + "allowVectorExps true" +in + local + ascii-zero.sml + ascii-one.sml + ascii-two.sml + ascii-three.sml + ascii-four.sml + ascii-five.sml + ascii-six.sml + ascii-seven.sml + ascii-eight.sml + ascii-nine.sml + ascii-space.sml + ampersand.sml + asterisk.sml + ascii-at.sml + backtick.sml + backward-slash.sml + caret.sml + colon.sml + comma.sml + dollar.sml + quotes-double.sml + equals.sml + exclamation_mark.sml + forward-slash.sml + ascii-dot.sml + ascii-hash.sml + left-angled-bracket.sml + left-brace.sml + left-bracket.sml + left-paren.sml + lower-case-a.sml + lower-case-b.sml + lower-case-c.sml + lower-case-d.sml + lower-case-e.sml + lower-case-f.sml + lower-case-g.sml + lower-case-h.sml + lower-case-i.sml + lower-case-j.sml + lower-case-k.sml + lower-case-l.sml + lower-case-m.sml + lower-case-n.sml + lower-case-o.sml + lower-case-p.sml + lower-case-q.sml + lower-case-r.sml + lower-case-s.sml + lower-case-t.sml + lower-case-u.sml + lower-case-v.sml + lower-case-w.sml + lower-case-x.sml + lower-case-y.sml + lower-case-z.sml + ascii-minus.sml + ascii-percent.sml + ascii-pipe.sml + ascii-plus.sml + question-mark.sml + right-angled-bracket.sml + right-brace.sml + right-bracket.sml + right-paren.sml + semicolon.sml + quotes-single.sml + ascii-tilde.sml + underscore.sml + unknown.sml + upper-case-a.sml + upper-case-b.sml + upper-case-c.sml + upper-case-d.sml + upper-case-e.sml + upper-case-f.sml + upper-case-g.sml + upper-case-h.sml + upper-case-i.sml + upper-case-j.sml + upper-case-k.sml + upper-case-l.sml + upper-case-m.sml + upper-case-n.sml + upper-case-o.sml + upper-case-p.sml + upper-case-q.sml + upper-case-r.sml + upper-case-s.sml + upper-case-t.sml + upper-case-u.sml + upper-case-v.sml + upper-case-w.sml + upper-case-x.sml + upper-case-y.sml + upper-case-z.sml + in + cozette-ascii.sml + end +end diff --git a/cozette-sml/fonts/cozette-ascii.sml b/cozette-sml/fonts/cozette-ascii.sml new file mode 100644 index 0000000..a8122ce --- /dev/null +++ b/cozette-sml/fonts/cozette-ascii.sml @@ -0,0 +1,260 @@ +structure CozetteAscii = +struct + val asciiTable = #[ + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + AsciiSpace.lerp, + ExclamationMark.lerp, + QuotesDouble.lerp, + AsciiHash.lerp, + Dollar.lerp, + AsciiPercent.lerp, + Ampersand.lerp, + QuotesSingle.lerp, + LeftParen.lerp, + RightParen.lerp, + Asterisk.lerp, + AsciiPlus.lerp, + Comma.lerp, + AsciiMinus.lerp, + AsciiDot.lerp, + ForwardSlash.lerp, + AsciiZero.lerp, + AsciiOne.lerp, + AsciiTwo.lerp, + AsciiThree.lerp, + AsciiFour.lerp, + AsciiFive.lerp, + AsciiSix.lerp, + AsciiSeven.lerp, + AsciiEight.lerp, + AsciiNine.lerp, + Colon.lerp, + Semicolon.lerp, + LeftAngledBracket.lerp, + AsciiEquals.lerp, + RightAngledBracket.lerp, + QuestionMark.lerp, + AsciiAt.lerp, + UpperCaseA.lerp, + UpperCaseB.lerp, + UpperCaseC.lerp, + UpperCaseD.lerp, + UpperCaseE.lerp, + UpperCaseF.lerp, + UpperCaseG.lerp, + UpperCaseH.lerp, + UpperCaseI.lerp, + UpperCaseJ.lerp, + UpperCaseK.lerp, + UpperCaseL.lerp, + UpperCaseM.lerp, + UpperCaseN.lerp, + UpperCaseO.lerp, + UpperCaseP.lerp, + UpperCaseQ.lerp, + UpperCaseR.lerp, + UpperCaseS.lerp, + UpperCaseT.lerp, + UpperCaseU.lerp, + UpperCaseV.lerp, + UpperCaseW.lerp, + UpperCaseX.lerp, + UpperCaseY.lerp, + UpperCaseZ.lerp, + LeftBracket.lerp, + BackwardSlash.lerp, + RightBracket.lerp, + Caret.lerp, + Underscore.lerp, + Backtick.lerp, + LowerCaseA.lerp, + LowerCaseB.lerp, + LowerCaseC.lerp, + LowerCaseD.lerp, + LowerCaseE.lerp, + LowerCaseF.lerp, + LowerCaseG.lerp, + LowerCaseH.lerp, + LowerCaseI.lerp, + LowerCaseJ.lerp, + LowerCaseK.lerp, + LowerCaseL.lerp, + LowerCaseM.lerp, + LowerCaseN.lerp, + LowerCaseO.lerp, + LowerCaseP.lerp, + LowerCaseQ.lerp, + LowerCaseR.lerp, + LowerCaseS.lerp, + LowerCaseT.lerp, + LowerCaseU.lerp, + LowerCaseV.lerp, + LowerCaseW.lerp, + LowerCaseX.lerp, + LowerCaseY.lerp, + LowerCaseZ.lerp, + LeftBrace.lerp, + AsciiPipe.lerp, + RightBrace.lerp, + AsciiTilde.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp, + Unknown.lerp + ] + + fun make (chr, posX, posY, scale, windowWidth, windowHeight, r, g, b) = + let + val chrFun = Vector.sub (asciiTable, Char.ord chr) + in + chrFun (posX, posY, scale, windowWidth, windowHeight, r, g, b) + end +end diff --git a/cozette-sml/fonts/dollar.sml b/cozette-sml/fonts/dollar.sml new file mode 100644 index 0000000..1774da6 --- /dev/null +++ b/cozette-sml/fonts/dollar.sml @@ -0,0 +1,161 @@ +structure Dollar = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/equals.sml b/cozette-sml/fonts/equals.sml new file mode 100644 index 0000000..8d5a749 --- /dev/null +++ b/cozette-sml/fonts/equals.sml @@ -0,0 +1,53 @@ +structure AsciiEquals = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/exclamation_mark.sml b/cozette-sml/fonts/exclamation_mark.sml new file mode 100644 index 0000000..aa82dbe --- /dev/null +++ b/cozette-sml/fonts/exclamation_mark.sml @@ -0,0 +1,53 @@ +structure ExclamationMark = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/forward-slash.sml b/cozette-sml/fonts/forward-slash.sml new file mode 100644 index 0000000..da91591 --- /dev/null +++ b/cozette-sml/fonts/forward-slash.sml @@ -0,0 +1,107 @@ +structure ForwardSlash = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/left-angled-bracket.sml b/cozette-sml/fonts/left-angled-bracket.sml new file mode 100644 index 0000000..97e98e2 --- /dev/null +++ b/cozette-sml/fonts/left-angled-bracket.sml @@ -0,0 +1,143 @@ +structure LeftAngledBracket = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/left-brace.sml b/cozette-sml/fonts/left-brace.sml new file mode 100644 index 0000000..269eca1 --- /dev/null +++ b/cozette-sml/fonts/left-brace.sml @@ -0,0 +1,107 @@ +structure LeftBrace = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/left-bracket.sml b/cozette-sml/fonts/left-bracket.sml new file mode 100644 index 0000000..15e3ccc --- /dev/null +++ b/cozette-sml/fonts/left-bracket.sml @@ -0,0 +1,71 @@ +structure LeftBracket = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/left-paren.sml b/cozette-sml/fonts/left-paren.sml new file mode 100644 index 0000000..bc7b109 --- /dev/null +++ b/cozette-sml/fonts/left-paren.sml @@ -0,0 +1,107 @@ +structure LeftParen = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/lower-case-a.sml b/cozette-sml/fonts/lower-case-a.sml new file mode 100644 index 0000000..a58c3c1 --- /dev/null +++ b/cozette-sml/fonts/lower-case-a.sml @@ -0,0 +1,107 @@ +structure LowerCaseA = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/lower-case-b.sml b/cozette-sml/fonts/lower-case-b.sml new file mode 100644 index 0000000..3833aaa --- /dev/null +++ b/cozette-sml/fonts/lower-case-b.sml @@ -0,0 +1,89 @@ +structure LowerCaseB = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/lower-case-c.sml b/cozette-sml/fonts/lower-case-c.sml new file mode 100644 index 0000000..db90b2e --- /dev/null +++ b/cozette-sml/fonts/lower-case-c.sml @@ -0,0 +1,107 @@ +structure LowerCaseC = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/lower-case-d.sml b/cozette-sml/fonts/lower-case-d.sml new file mode 100644 index 0000000..226c900 --- /dev/null +++ b/cozette-sml/fonts/lower-case-d.sml @@ -0,0 +1,89 @@ +structure LowerCaseD = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/lower-case-e.sml b/cozette-sml/fonts/lower-case-e.sml new file mode 100644 index 0000000..ac6c989 --- /dev/null +++ b/cozette-sml/fonts/lower-case-e.sml @@ -0,0 +1,125 @@ +structure LowerCaseE = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/lower-case-f.sml b/cozette-sml/fonts/lower-case-f.sml new file mode 100644 index 0000000..c4c7e39 --- /dev/null +++ b/cozette-sml/fonts/lower-case-f.sml @@ -0,0 +1,71 @@ +structure LowerCaseF = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/lower-case-g.sml b/cozette-sml/fonts/lower-case-g.sml new file mode 100644 index 0000000..c1095b1 --- /dev/null +++ b/cozette-sml/fonts/lower-case-g.sml @@ -0,0 +1,107 @@ +structure LowerCaseG = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/lower-case-h.sml b/cozette-sml/fonts/lower-case-h.sml new file mode 100644 index 0000000..85a39bd --- /dev/null +++ b/cozette-sml/fonts/lower-case-h.sml @@ -0,0 +1,71 @@ +structure LowerCaseH = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/lower-case-i.sml b/cozette-sml/fonts/lower-case-i.sml new file mode 100644 index 0000000..dfc0476 --- /dev/null +++ b/cozette-sml/fonts/lower-case-i.sml @@ -0,0 +1,89 @@ +structure LowerCaseI = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/lower-case-j.sml b/cozette-sml/fonts/lower-case-j.sml new file mode 100644 index 0000000..0731d47 --- /dev/null +++ b/cozette-sml/fonts/lower-case-j.sml @@ -0,0 +1,107 @@ +structure LowerCaseJ = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/lower-case-k.sml b/cozette-sml/fonts/lower-case-k.sml new file mode 100644 index 0000000..eb6ecc7 --- /dev/null +++ b/cozette-sml/fonts/lower-case-k.sml @@ -0,0 +1,143 @@ +structure LowerCaseK = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/lower-case-l.sml b/cozette-sml/fonts/lower-case-l.sml new file mode 100644 index 0000000..cba5b68 --- /dev/null +++ b/cozette-sml/fonts/lower-case-l.sml @@ -0,0 +1,71 @@ +structure LowerCaseL = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/lower-case-m.sml b/cozette-sml/fonts/lower-case-m.sml new file mode 100644 index 0000000..3e659d0 --- /dev/null +++ b/cozette-sml/fonts/lower-case-m.sml @@ -0,0 +1,107 @@ +structure LowerCaseM = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/lower-case-n.sml b/cozette-sml/fonts/lower-case-n.sml new file mode 100644 index 0000000..88c7e7a --- /dev/null +++ b/cozette-sml/fonts/lower-case-n.sml @@ -0,0 +1,71 @@ +structure LowerCaseN = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/lower-case-o.sml b/cozette-sml/fonts/lower-case-o.sml new file mode 100644 index 0000000..8e95e6b --- /dev/null +++ b/cozette-sml/fonts/lower-case-o.sml @@ -0,0 +1,89 @@ +structure LowerCaseO = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/lower-case-p.sml b/cozette-sml/fonts/lower-case-p.sml new file mode 100644 index 0000000..6dbe913 --- /dev/null +++ b/cozette-sml/fonts/lower-case-p.sml @@ -0,0 +1,89 @@ +structure LowerCaseP = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/lower-case-q.sml b/cozette-sml/fonts/lower-case-q.sml new file mode 100644 index 0000000..3c7af32 --- /dev/null +++ b/cozette-sml/fonts/lower-case-q.sml @@ -0,0 +1,107 @@ +structure LowerCaseQ = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/lower-case-r.sml b/cozette-sml/fonts/lower-case-r.sml new file mode 100644 index 0000000..c25dc97 --- /dev/null +++ b/cozette-sml/fonts/lower-case-r.sml @@ -0,0 +1,71 @@ +structure LowerCaseR = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/lower-case-s.sml b/cozette-sml/fonts/lower-case-s.sml new file mode 100644 index 0000000..103a576 --- /dev/null +++ b/cozette-sml/fonts/lower-case-s.sml @@ -0,0 +1,107 @@ +structure LowerCaseS = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/lower-case-t.sml b/cozette-sml/fonts/lower-case-t.sml new file mode 100644 index 0000000..22ce906 --- /dev/null +++ b/cozette-sml/fonts/lower-case-t.sml @@ -0,0 +1,71 @@ +structure LowerCaseT = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/lower-case-u.sml b/cozette-sml/fonts/lower-case-u.sml new file mode 100644 index 0000000..a36dec1 --- /dev/null +++ b/cozette-sml/fonts/lower-case-u.sml @@ -0,0 +1,71 @@ +structure LowerCaseU = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/lower-case-v.sml b/cozette-sml/fonts/lower-case-v.sml new file mode 100644 index 0000000..c77a36c --- /dev/null +++ b/cozette-sml/fonts/lower-case-v.sml @@ -0,0 +1,107 @@ +structure LowerCaseV = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/lower-case-w.sml b/cozette-sml/fonts/lower-case-w.sml new file mode 100644 index 0000000..665eda5 --- /dev/null +++ b/cozette-sml/fonts/lower-case-w.sml @@ -0,0 +1,107 @@ +structure LowerCaseW = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/lower-case-x.sml b/cozette-sml/fonts/lower-case-x.sml new file mode 100644 index 0000000..645270a --- /dev/null +++ b/cozette-sml/fonts/lower-case-x.sml @@ -0,0 +1,179 @@ +structure LowerCaseX = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/lower-case-y.sml b/cozette-sml/fonts/lower-case-y.sml new file mode 100644 index 0000000..cbe269d --- /dev/null +++ b/cozette-sml/fonts/lower-case-y.sml @@ -0,0 +1,89 @@ +structure LowerCaseY = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/lower-case-z.sml b/cozette-sml/fonts/lower-case-z.sml new file mode 100644 index 0000000..22414af --- /dev/null +++ b/cozette-sml/fonts/lower-case-z.sml @@ -0,0 +1,125 @@ +structure LowerCaseZ = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/question-mark.sml b/cozette-sml/fonts/question-mark.sml new file mode 100644 index 0000000..592f74b --- /dev/null +++ b/cozette-sml/fonts/question-mark.sml @@ -0,0 +1,125 @@ +structure QuestionMark = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/quotes-double.sml b/cozette-sml/fonts/quotes-double.sml new file mode 100644 index 0000000..36f67d4 --- /dev/null +++ b/cozette-sml/fonts/quotes-double.sml @@ -0,0 +1,53 @@ +structure QuotesDouble = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/quotes-single.sml b/cozette-sml/fonts/quotes-single.sml new file mode 100644 index 0000000..d4f01fb --- /dev/null +++ b/cozette-sml/fonts/quotes-single.sml @@ -0,0 +1,35 @@ +structure QuotesSingle = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/right-angled-bracket.sml b/cozette-sml/fonts/right-angled-bracket.sml new file mode 100644 index 0000000..c3f97a0 --- /dev/null +++ b/cozette-sml/fonts/right-angled-bracket.sml @@ -0,0 +1,143 @@ +structure RightAngledBracket = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/right-brace.sml b/cozette-sml/fonts/right-brace.sml new file mode 100644 index 0000000..afc8176 --- /dev/null +++ b/cozette-sml/fonts/right-brace.sml @@ -0,0 +1,107 @@ +structure RightBrace = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/right-bracket.sml b/cozette-sml/fonts/right-bracket.sml new file mode 100644 index 0000000..b8167a0 --- /dev/null +++ b/cozette-sml/fonts/right-bracket.sml @@ -0,0 +1,71 @@ +structure RightBracket = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/right-paren.sml b/cozette-sml/fonts/right-paren.sml new file mode 100644 index 0000000..c3b11e9 --- /dev/null +++ b/cozette-sml/fonts/right-paren.sml @@ -0,0 +1,107 @@ +structure RightParen = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/semicolon.sml b/cozette-sml/fonts/semicolon.sml new file mode 100644 index 0000000..bed5383 --- /dev/null +++ b/cozette-sml/fonts/semicolon.sml @@ -0,0 +1,89 @@ +structure Semicolon = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/underscore.sml b/cozette-sml/fonts/underscore.sml new file mode 100644 index 0000000..e4138df --- /dev/null +++ b/cozette-sml/fonts/underscore.sml @@ -0,0 +1,35 @@ +structure Underscore = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/unknown.sml b/cozette-sml/fonts/unknown.sml new file mode 100644 index 0000000..317db59 --- /dev/null +++ b/cozette-sml/fonts/unknown.sml @@ -0,0 +1,89 @@ +structure Unknown = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 0.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 0.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 0.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 0.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 0.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 1.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 0.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 12.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 0.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 0.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 13.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 6.000000000000000, scale, halfWidth), +yToNdc (yOffset, 0.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/upper-case-a.sml b/cozette-sml/fonts/upper-case-a.sml new file mode 100644 index 0000000..e1114a9 --- /dev/null +++ b/cozette-sml/fonts/upper-case-a.sml @@ -0,0 +1,89 @@ +structure UpperCaseA = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/upper-case-b.sml b/cozette-sml/fonts/upper-case-b.sml new file mode 100644 index 0000000..f6a5d3e --- /dev/null +++ b/cozette-sml/fonts/upper-case-b.sml @@ -0,0 +1,125 @@ +structure UpperCaseB = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/upper-case-c.sml b/cozette-sml/fonts/upper-case-c.sml new file mode 100644 index 0000000..43f26f9 --- /dev/null +++ b/cozette-sml/fonts/upper-case-c.sml @@ -0,0 +1,107 @@ +structure UpperCaseC = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/upper-case-d.sml b/cozette-sml/fonts/upper-case-d.sml new file mode 100644 index 0000000..89d6360 --- /dev/null +++ b/cozette-sml/fonts/upper-case-d.sml @@ -0,0 +1,125 @@ +structure UpperCaseD = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/upper-case-e.sml b/cozette-sml/fonts/upper-case-e.sml new file mode 100644 index 0000000..c6a8966 --- /dev/null +++ b/cozette-sml/fonts/upper-case-e.sml @@ -0,0 +1,89 @@ +structure UpperCaseE = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/upper-case-f.sml b/cozette-sml/fonts/upper-case-f.sml new file mode 100644 index 0000000..5484c2a --- /dev/null +++ b/cozette-sml/fonts/upper-case-f.sml @@ -0,0 +1,71 @@ +structure UpperCaseF = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/upper-case-g.sml b/cozette-sml/fonts/upper-case-g.sml new file mode 100644 index 0000000..f0d9183 --- /dev/null +++ b/cozette-sml/fonts/upper-case-g.sml @@ -0,0 +1,125 @@ +structure UpperCaseG = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/upper-case-h.sml b/cozette-sml/fonts/upper-case-h.sml new file mode 100644 index 0000000..7dffb14 --- /dev/null +++ b/cozette-sml/fonts/upper-case-h.sml @@ -0,0 +1,71 @@ +structure UpperCaseH = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/upper-case-i.sml b/cozette-sml/fonts/upper-case-i.sml new file mode 100644 index 0000000..8d9cf18 --- /dev/null +++ b/cozette-sml/fonts/upper-case-i.sml @@ -0,0 +1,71 @@ +structure UpperCaseI = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/upper-case-j.sml b/cozette-sml/fonts/upper-case-j.sml new file mode 100644 index 0000000..d4ae480 --- /dev/null +++ b/cozette-sml/fonts/upper-case-j.sml @@ -0,0 +1,89 @@ +structure UpperCaseJ = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/upper-case-k.sml b/cozette-sml/fonts/upper-case-k.sml new file mode 100644 index 0000000..b794e66 --- /dev/null +++ b/cozette-sml/fonts/upper-case-k.sml @@ -0,0 +1,143 @@ +structure UpperCaseK = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/upper-case-l.sml b/cozette-sml/fonts/upper-case-l.sml new file mode 100644 index 0000000..798e7a9 --- /dev/null +++ b/cozette-sml/fonts/upper-case-l.sml @@ -0,0 +1,53 @@ +structure UpperCaseL = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/upper-case-m.sml b/cozette-sml/fonts/upper-case-m.sml new file mode 100644 index 0000000..cd42c68 --- /dev/null +++ b/cozette-sml/fonts/upper-case-m.sml @@ -0,0 +1,107 @@ +structure UpperCaseM = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/upper-case-n.sml b/cozette-sml/fonts/upper-case-n.sml new file mode 100644 index 0000000..340ce20 --- /dev/null +++ b/cozette-sml/fonts/upper-case-n.sml @@ -0,0 +1,107 @@ +structure UpperCaseN = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/upper-case-o.sml b/cozette-sml/fonts/upper-case-o.sml new file mode 100644 index 0000000..bc9a66f --- /dev/null +++ b/cozette-sml/fonts/upper-case-o.sml @@ -0,0 +1,89 @@ +structure UpperCaseO = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/upper-case-p.sml b/cozette-sml/fonts/upper-case-p.sml new file mode 100644 index 0000000..3beb047 --- /dev/null +++ b/cozette-sml/fonts/upper-case-p.sml @@ -0,0 +1,89 @@ +structure UpperCaseP = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/upper-case-q.sml b/cozette-sml/fonts/upper-case-q.sml new file mode 100644 index 0000000..b30bfa5 --- /dev/null +++ b/cozette-sml/fonts/upper-case-q.sml @@ -0,0 +1,125 @@ +structure UpperCaseQ = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 11.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/upper-case-r.sml b/cozette-sml/fonts/upper-case-r.sml new file mode 100644 index 0000000..efe3079 --- /dev/null +++ b/cozette-sml/fonts/upper-case-r.sml @@ -0,0 +1,125 @@ +structure UpperCaseR = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/upper-case-s.sml b/cozette-sml/fonts/upper-case-s.sml new file mode 100644 index 0000000..3968d35 --- /dev/null +++ b/cozette-sml/fonts/upper-case-s.sml @@ -0,0 +1,143 @@ +structure UpperCaseS = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/upper-case-t.sml b/cozette-sml/fonts/upper-case-t.sml new file mode 100644 index 0000000..f449944 --- /dev/null +++ b/cozette-sml/fonts/upper-case-t.sml @@ -0,0 +1,53 @@ +structure UpperCaseT = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/upper-case-u.sml b/cozette-sml/fonts/upper-case-u.sml new file mode 100644 index 0000000..9728c26 --- /dev/null +++ b/cozette-sml/fonts/upper-case-u.sml @@ -0,0 +1,71 @@ +structure UpperCaseU = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/upper-case-v.sml b/cozette-sml/fonts/upper-case-v.sml new file mode 100644 index 0000000..0eea4dc --- /dev/null +++ b/cozette-sml/fonts/upper-case-v.sml @@ -0,0 +1,107 @@ +structure UpperCaseV = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/upper-case-w.sml b/cozette-sml/fonts/upper-case-w.sml new file mode 100644 index 0000000..bf7bc44 --- /dev/null +++ b/cozette-sml/fonts/upper-case-w.sml @@ -0,0 +1,107 @@ +structure UpperCaseW = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/upper-case-x.sml b/cozette-sml/fonts/upper-case-x.sml new file mode 100644 index 0000000..2db1343 --- /dev/null +++ b/cozette-sml/fonts/upper-case-x.sml @@ -0,0 +1,179 @@ +structure UpperCaseX = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 7.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/upper-case-y.sml b/cozette-sml/fonts/upper-case-y.sml new file mode 100644 index 0000000..fd17e42 --- /dev/null +++ b/cozette-sml/fonts/upper-case-y.sml @@ -0,0 +1,107 @@ +structure UpperCaseY = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 5.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b + ] + end +end diff --git a/cozette-sml/fonts/upper-case-z.sml b/cozette-sml/fonts/upper-case-z.sml new file mode 100644 index 0000000..3fccab6 --- /dev/null +++ b/cozette-sml/fonts/upper-case-z.sml @@ -0,0 +1,125 @@ +structure UpperCaseZ = +struct + fun xToNdc (xOffset, xpos, scale, halfWidth) = + ((xpos * scale + xOffset) - halfWidth) / halfWidth + + fun yToNdc (yOffset, ypos, scale, halfHeight) = + ~(((ypos * scale + yOffset) - halfHeight) / halfHeight) + + fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) = + let + val halfWidth = windowWidth / 2.0 + val halfHeight = windowHeight / 2.0 + in + #[ +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 3.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 0.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 10.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 5.000000000000000, scale, halfWidth), +yToNdc (yOffset, 9.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 1.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 8.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 2.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 6.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 3.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 4.000000000000000, scale, halfHeight), +r, g, b, +xToNdc (xOffset, 4.000000000000000, scale, halfWidth), +yToNdc (yOffset, 2.000000000000000, scale, halfHeight), +r, g, b + ] + end +end