6e36ce06dd
It's not really manageable to make the fake screen pixel-oriented. Feels excessive to compare things pixel by pixel when we will mostly be writing text to screen. It'll also make expected screen assertions more difficult to manage. So I'm not sure how to make assertions about pixels for now. Instead we'll introduce fake screens at draw-grapheme.
29 lines
728 B
Forth
29 lines
728 B
Forth
fn draw-box-on-real-screen x1: int, y1: int, x2: int, y2: int, color: int {
|
|
draw-horizontal-line-on-real-screen x1, x2, y1, color
|
|
draw-vertical-line-on-real-screen x1, y1, y2, color
|
|
draw-horizontal-line-on-real-screen x1, x2, y2, color
|
|
draw-vertical-line-on-real-screen x2, y1, y2, color
|
|
}
|
|
|
|
fn draw-horizontal-line-on-real-screen x1: int, x2: int, y: int, color: int {
|
|
var x/eax: int <- copy x1
|
|
{
|
|
compare x, x2
|
|
break-if->=
|
|
pixel-on-real-screen x, y, color
|
|
x <- increment
|
|
loop
|
|
}
|
|
}
|
|
|
|
fn draw-vertical-line-on-real-screen x: int, y1: int, y2: int, color: int {
|
|
var y/eax: int <- copy y1
|
|
{
|
|
compare y, y2
|
|
break-if->=
|
|
pixel-on-real-screen x, y, color
|
|
y <- increment
|
|
loop
|
|
}
|
|
}
|