tb0045.pp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. { %GRAPH }
  2. { %TARGET=go32v2,win32,linux }
  3. { Old file: tbs0051.pp }
  4. { Graph, shows a problem with putpixel OK 0.99.9 (PM) }
  5. {$ifdef go32v2}
  6. {define has_colors_equal}
  7. {$endif go32v2}
  8. uses crt,graph;
  9. {$ifndef has_colors_equal}
  10. function ColorsEqual(c1, c2 : longint) : boolean;
  11. begin
  12. ColorsEqual:=((GetMaxColor=$FF) and ((c1 and $FF)=(c2 and $FF))) or
  13. ((GetMaxColor=$7FFF) and ((c1 and $F8F8F8)=(c2 and $F8F8F8))) or
  14. ((GetMaxColor=$FFFF) and ((c1 and $F8FCF8)=(c2 and $F8FCF8))) or
  15. ((GetMaxColor>$10000) and ((c1 and $FFFFFF)=(c2 and $FFFFFF)));
  16. end;
  17. {$endif not has_colors_equal}
  18. var gd,gm,gError,yi,i : integer;
  19. col: longint;
  20. error : word;
  21. BEGIN
  22. if paramcount=0 then
  23. gm:=$111 {640x480/64K HiColor}
  24. else
  25. begin
  26. val(paramstr(1),gm,error);
  27. if error<>0 then
  28. gm:=$111;
  29. end;
  30. gd:=detect;
  31. InitGraph(gd,gm,'');
  32. gError := graphResult;
  33. IF gError <> grOk
  34. THEN begin
  35. writeln ('graphDriver=',gd,' graphMode=',gm,
  36. #13#10'Graphics error: ',gError);
  37. halt(1);
  38. end;
  39. for i := 0 to 255
  40. do begin
  41. { new grpah unit used word type for colors }
  42. col := {i shl 16 + }(i) shl 8 + (i div 2);
  43. for yi := 0 to 20 do
  44. PutPixel (i,yi,col);
  45. SetColor (col);
  46. Line (i,22,i,42);
  47. end;
  48. for i:=0 to 255 do
  49. if not ColorsEqual(getpixel(i,15),getpixel(i,30)) then
  50. Halt(1);
  51. {readkey;}delay(1000);
  52. closegraph;
  53. END.