RosettaCodeData/Task/Image-noise/Pascal/image-noise.pascal

43 lines
884 B
Plaintext

Program ImageNoise;
uses
SDL;
var
surface: PSDL_Surface;
pixel: ^byte;
frameNumber, totalTime, lastTime, time, i: longint;
begin
frameNumber := 0;
totalTime := 0;
lastTime := 0;
randomize;
SDL_Init(SDL_INIT_TIMER or SDL_INIT_VIDEO);
surface := SDL_SetVideoMode(320, 240, 8, SDL_DOUBLEBUF or SDL_HWSURFACE);
while (true) do
begin
pixel := surface^.pixels;
SDL_LockSurface(surface);
for i := 1 to (surface^.w * surface^.h) do
begin
pixel^ := random(2)*255;
inc(pixel);
end;
SDL_UnlockSurface(surface);
SDL_Flip(surface);
inc (frameNumber);
time := SDL_GetTicks();
totalTime := totalTime + time - lastTime;
if (totalTime > 1000) then
begin
writeln('FPS: ', frameNumber / (totalTime / 1000.0):5:1);
frameNumber := 0;
totalTime := 0;
end;
lastTime := time;
end;
end.