That's kind of what it looks like. A textured plane has transparency on. Right mouse button draw green onto the image, while the left mouse button erases the image by setting the alpha to zero. Fog of war, here I come! The image you see below is the plane, with a rotating cube behind it.
screenwidth = 800
screenheight = 600
set display mode screenwidth,screenheight,32
load image "t.bmp", 1, 1
make memblock from image 1, 1
width as dword
height as dword
depth as dword
GLOBAL width
width = memblock dword(1,0)
height = memblock dword(1,4)
depth = memblock dword(1,8)
size = get memblock size(1)
make image from memblock 2, 1
sync on
autocam off
backdrop on
position camera 0,0,0
make object plain 1, 100,100
position object 1, -50,0,400
texture object 1, 1
make image from memblock 2, 1
make object plain 2, 100,100
position object 2, 100,0,400
texture object 2,2
set object 1,1,1,0
make object cube 5,50
position object 5,-50,0,450
DO
if mouseclick()=1
fx = mousex()/(screenwidth/width) + 1
fy = mousey()/(screenheight/height) + 1
for x = -3 to 3
ifx = fx + x
for y = -3 to 3
ify = fy + y
if ifx >= 1 and ifx <= width and ify >= 1 and ify <= height
location = gridToSingle(ifx, ify)* 4 + 12
`write memblock dword 1, location, rgb(0,255,0)
write memblock byte 1, location+3,0
make image from memblock 1, 1
endif
next y
next x
endif
if mouseclick()=2
fx = mousex()/(screenwidth/width) + 1
fy = mousey()/(screenheight/height) + 1
for x = -3 to 3
ifx = fx + x
for y = -3 to 3
ify = fy + y
if ifx >= 1 and ifx <= width and ify >= 1 and ify <= height
location = gridToSingle(ifx, ify)* 4 + 12
write memblock dword 1, location, rgb(0,255,0)
`write memblock byte 1, location+3,0
make image from memblock 1, 1
endif
next y
next x
endif
a# = wrapvalue(a#+0.5)
rotate object 5,a#,a#,a#
set cursor 0,0
print "width - ",width
print "height - ",height
print "depth - ",depth
print "size - ",size
print
print screen fps()
sync
LOOP
function gridToSingle(x as integer, y as integer)
thing = (y-1)*width + x - 1
endfunction thing
"eureka" - Archimedes