Mail Archives: djgpp/1995/07/17/10:54:25
Charles Sandmann (sandmann AT clio DOT rice DOT edu) wrote:
: > I'm in the process of writing my own VESA library. I have everything
: > working, but right now it is calling the VESA window positioning function
: > with _go32_dpmi_simulate_fcall. This works fine, except that my frame
: > rate is abysmal. In 320x200, on a 486/33 I can blit something like 170 fps
: > (w/o vertical synch on of course), since I don't have to do any paging.
: > But in 640x480, my fps drops to about 12. Since I'm only copying 4.8
: > times as much data, the best I could expect would be 35 or so. Obviously,
: > there is a very high amount of overhead in calling a dpmi function.
Allocate a Real-mode callback. The simulate_fcall has to create a
real-mode callback (including allocating dos-memory and copying essential
code into it) for the function. If you use the allocate real-mode
callback call (I can't remember the exact name, but it is in dpmi.h) the
callback will already be allocated. Also try calling the page-switch
routine in P-mode. This is fairly simple. Add the segment*16+offset and
get the dos memory selector and call it (asm call is easiest). P-mode
calling will not work on all computers however.
Malcolm
- Raw text -