view.pp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. {$MODE objfpc}
  2. uses
  3. SysUtils, ptc;
  4. {$I endian.inc}
  5. var
  6. console: IPTCConsole;
  7. surface: IPTCSurface;
  8. format: IPTCFormat;
  9. pixels: PUint8;
  10. I: Integer;
  11. F: File;
  12. begin
  13. try
  14. try
  15. console := TPTCConsoleFactory.CreateNew;
  16. {$IFDEF FPC_LITTLE_ENDIAN}
  17. format := TPTCFormatFactory.CreateNew(24, $00FF0000, $0000FF00, $000000FF);
  18. {$ELSE FPC_LITTLE_ENDIAN}
  19. format := TPTCFormatFactory.CreateNew(24, $000000FF, $0000FF00, $00FF0000);
  20. {$ENDIF FPC_LITTLE_ENDIAN}
  21. surface := TPTCSurfaceFactory.CreateNew(320, 200, format);
  22. console.open('test', surface.width, surface.height, format);
  23. for I := 1 to 100 do
  24. begin
  25. Writeln('test', I, '.raw');
  26. AssignFile(F, 'test' + IntToStr(I) + '.raw');
  27. Reset(F, 1);
  28. try
  29. pixels := surface.lock;
  30. try
  31. BlockRead(F, pixels^, surface.height * surface.pitch);
  32. finally
  33. surface.unlock;
  34. end;
  35. finally
  36. CloseFile(F);
  37. end;
  38. surface.copy(console);
  39. console.update;
  40. console.ReadKey;
  41. end;
  42. finally
  43. if Assigned(console) then
  44. console.close;
  45. end;
  46. except
  47. on error: TPTCError do
  48. { report error }
  49. error.report;
  50. end;
  51. end.