-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Aranym screen driver does not honour offscreen bitmap handle #35
Comments
I'm currently looking into this, and i'm facing several problems:
@mfro: can you test whether drivers (except aranym.sys) really work when the created bitmap has other dimensions than the screen? |
Made some progress: The screenshot is from a new zView module which uses v_opnbm() to replay GEM Metafiles. There are certainly other programs that can be used for testing, eg. Pupul: I've pushed the current changes to a "offscreen" branch. There may be more changes needed, especially for monochrome bitmaps (i preferrably need some test program for this). Most of the changes were done in aranym, though. Theoretically, some of work could have also been done in the aranym driver, but aranym needs to know anyways whether to draw to the screen or to atari memory (not only to avoid drawing the bitmap on the screen, but also because the host screen is backed up by a SDL surface, with different byte order). And even if the format is the same, the dimensions of an offscreen bitmap may be different than the ones of the screen. Therefor some changes may still be required also for other drivers. I'm still thinking about a way to make the detection bullet-prof. Currently, wk->screen.type is mostly used for this (will be 0 for offscreen, and non-zero for screen). But that only works when really using v_opnbm(), i'm quite sure that there are programs that simulate v_opnbm() by allocating the bitmap on their own, and setting Logbase() to that address while drawing into it. That will be a bit difficult to detect, because in this case, always a normal VDI handle for the screen will be used. Don't know whether it makes sense to support such programs, since they probably will also mess with the Line-A variables. Using the wk->screen.mfdb.address also is not very reliable i think. There are just too many cases:
Changes to aranym are pushed (you obviously need to compile it yourself, if you want to test this). I'm quite sure there needs more to be done. |
all drivers (tested with firebee.sys and bitmap.sys) appear to support offscreen bitmaps opened with
v_opnbm()
just fine.GDP output is redirected to that bitmap and can be copied from there to the screen.
While the aranym.sys driver also opens a bitmap using
v_opnbm()
without error, it does not draw to the bitmap representing the passed bitmap handle with any output function, but what appears to be the physical screen workstation instead (output overwriting the XaAES menu bar items).The text was updated successfully, but these errors were encountered: