Mail Archives: djgpp/1998/10/05/08:30:21
jdominy AT saturn DOT cs DOT unp DOT ac DOT za (James Dominy) writes:
> Right I've got two putpixel routines, one for VESA 1.2 banked mode, the
> other for VESA 2.0 Linear Frame Buffer Mode.
>
> They are both implemented as macros now for speed purposes, although no
> doubt inline would have much the same effect on performance.
>
> However, I do not want to continuously have if statements all over my code
> checking which routine should be used. So, I set up an array as such
>
> void *putpixel[2](int x, int y, int c);
>
> and call putpixel[0](0,0,15) for example or use 1 instead of 0 for the
> second routine.
>
> But can I inline them in any way? I realize that this would involve the
> compiler knowing which routine would be used on each call, but I would know
> that from after my mode setting routine!
>
> Any help appreciated!
A good solution is in SVGA02.ZIP @ ftp://ftp.gwu.edu/pub/ada/ez2load/
Of course inling is trivial to program in Ada (pragma inline) and
cross-package inlining is supported by GNAT compiler (@ same address) -
no need of macro-assembler level tricks...
Gautier
- Raw text -