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