On 22 Aug 2007, at 20:59, Evgeniy Ivanov wrote:

Hm... I've tried  such  thing:
procedure sdlgraph_HLine(x,x2,y: smallint);
begin
 SDL_DrawLine(screen,X,y,x2,y,255);
 SDL_Flip(screen);
end;

The same. I will try to find the true way, but I'm not sure that it can be without locking overhead. I reimplement Bar3d with adding locking - very
quick. I think it is the fastest HLine implementation

I guess the problem is that you blit the entire screen after every drawing operation. It will be faster when drawing lines at a time, but still slow. In theory, the flipping could/should be done from a separate thread, which only does the flipping once per vertical refresh of the monitor. I don't know whether SDL provides access to this information though.

Bar3D's speed is fine if you have a fast hline implementation (like
for e.g. go32v2 in most modes).

 It's asm, it should be faster than pascal code.

That is not why it is that much faster. That code would be almost equally fast if it were written in Pascal. I wrote it in assembler because I liked doing that, not because it was needed for speed reasons.


Jonas
_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to