clip.mod 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. MODULE clip;
  2. FROM tigr IMPORT TigrPtr,tigrWindow,tigrFree,tigrClosed, tigrClear, tigrUpdate, TPixelType,
  3. tigrLine, TK_ESCAPE, tigrKeyDown, tigrReadChar, tfont, tigrPrint,tigrFill,
  4. tigrCircle, tigrRect, tigrFillCircle, tigrTime, tigrError, tigrClip,
  5. tigrFillRect, tigrTextWidth, tigrTextHeight;
  6. FROM helper IMPORT tigrRGB, tigrRGBA;
  7. FROM InOut IMPORT Write, WriteLn;
  8. FROM RealInOut IMPORT WriteShortReal;
  9. CONST
  10. w = 100;
  11. d = 50;
  12. message = "Half a thought is also a thought";
  13. VAR
  14. cx, cy : CARDINAL;
  15. c0, c1, c2, c3 : TPixelType;
  16. screen : TigrPtr;
  17. tw, th : CARDINAL;
  18. BEGIN
  19. screen := tigrWindow(320, 240, "Clip", 0);
  20. c0 := tigrRGB(55, 55, 55);
  21. c1 := tigrRGB(255, 255, 255);
  22. c2 := tigrRGB(100, 200, 100);
  23. c3 := tigrRGBA(100, 100, 200, 150);
  24. WHILE (NOT (tigrClosed(screen) > 0)) OR (tigrKeyDown(screen, TK_ESCAPE) > 0) DO
  25. tigrClear(screen, c0);
  26. cx := screen^.w / 2;
  27. cy := screen^.h / 2;
  28. tigrClip(screen, cx - d, cy - d, w, w);
  29. tigrFill(screen, cx - d, cy - d, w, w, c1);
  30. tigrRect(screen, cx - w, cy - w, w, w, c2);
  31. tigrFillRect(screen, cx - w, cy - w, w, w, c3);
  32. tigrCircle(screen, cx + d, cy - d, d, c2);
  33. tigrFillCircle(screen, cx + d, cy - d, d, c3);
  34. tw := tigrTextWidth(tfont, message);
  35. th := tigrTextHeight(tfont, message);
  36. tigrPrint(screen, tfont, cx - tw / 2, cy + d - th / 2, c2, message);
  37. tigrUpdate(screen);
  38. END;
  39. tigrFree(screen);
  40. END clip.