36 lines
1.2 KiB
Plaintext
36 lines
1.2 KiB
Plaintext
include demo\Arwen32dibdemo\a32dpoly.ew
|
|
|
|
a32Dib0 screen_dib = 0
|
|
integer dx = 0, dy = 0, dw = 0, dh = 0
|
|
|
|
constant win = create(Window, "Arwen32Dib bitmap shaded triangle demo", 0, 0, Default, Default, 480, 300, 0)
|
|
|
|
function winHandler(integer id, integer msg, atom wParam, object lParam)
|
|
sequence rect
|
|
if id or object(lParam) then end if -- suppress warnings
|
|
if msg=WM_PAINT then
|
|
if sequence(screen_dib) then
|
|
clearDib(screen_dib, {0, 0, 0})
|
|
drawShadedPolygonToDib(screen_dib, {{dx, dy}, {dx, dh-dy}, {dw-dx, dh-dy}}, {{255, 0, 0}, {0, 0, 255}, {0, 255, 0}})
|
|
drawDib(win, screen_dib, 0, 0, 0, 0, screen_dib[DibWidth]-1, screen_dib[DibHeight]-1)
|
|
end if
|
|
elsif msg=WM_SIZE then
|
|
rect = getClientRect(win)
|
|
dw = rect[3]
|
|
dh = rect[4]
|
|
dx = floor(dw/4)+1
|
|
dy = floor(dh/4)+1
|
|
if sequence(screen_dib) then killDib(screen_dib) end if
|
|
screen_dib = newDib(dw, dh)
|
|
elsif msg=WM_CHAR
|
|
and wParam=VK_ESCAPE then
|
|
closeWindow(win)
|
|
end if
|
|
return 0
|
|
end function
|
|
setHandler(win, routine_id("winHandler"))
|
|
|
|
WinMain(win, SW_NORMAL)
|
|
|
|
if sequence(screen_dib) then killDib(screen_dib) end if
|