view.pp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. {$MODE objfpc}
  2. uses
  3. SysUtils, ptc;
  4. {$I endian.inc}
  5. var
  6. console: TPTCConsole = nil;
  7. surface: TPTCSurface = nil;
  8. format: TPTCFormat = nil;
  9. pixels: PUint8;
  10. I: Integer;
  11. F: File;
  12. begin
  13. try
  14. try
  15. console := TPTCConsole.Create;
  16. {$IFDEF FPC_LITTLE_ENDIAN}
  17. format := TPTCFormat.Create(24, $00FF0000, $0000FF00, $000000FF);
  18. {$ELSE FPC_LITTLE_ENDIAN}
  19. format := TPTCFormat.Create(24, $000000FF, $0000FF00, $00FF0000);
  20. {$ENDIF FPC_LITTLE_ENDIAN}
  21. surface := TPTCSurface.Create(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. console.close;
  44. console.Free;
  45. surface.Free;
  46. format.Free;
  47. end;
  48. except
  49. on error: TPTCError do
  50. { report error }
  51. error.report;
  52. end;
  53. end.