Alternate Blitting Code

config.stretchmode

Tested in multiple forms in the 'blitterthread' function

Blitting Optimisation

config.skipblits

Only checked once in vidc20.c, "/*If cursor data matches then no point redrawing screen - return*/", to cancel a 'needredraw'.

#define HARDWAREBLIT

"This determines whether RPCemu can use hardware to blit and scale the display. If this is disabled then modes lower than 640x480 can look odd, and the system is slower. However, this must be commented out on some ports (Linux)"

Only turned on on Windows

If turned on on Linux, crash entering fullscreen mode

HARDWAREBLIT specific bs2,b3,b4

Three backbuffers rotated around

HARDWAREBLIT specific currentbuffer

which of bs2,bs3,bs4 is being used

fullscreen

doublesize

Only ever set in HARDWAREBLIT mode (windows only)

#define VIDC_DOUBLE_NONE 0 #define VIDC_DOUBLE_X 1 #define VIDC_DOUBLE_Y 2 #define VIDC_DOUBLE_BOTH 3

SCREEN_W SCREEN_H

SCREEN_W SCREEN_H Allegro defines holding the size of the display being used in fullscreen, used to calculate and center display of RO modes smaller than current Allegro mode

screen

Allegro Global pointer to the screen hardware video memory. Only used in non-fullscreen mode. Fullscreen writes to 'backbuf' which is a pointer to screen (in not HARDWAREBLIT), and a pointer to bs2,bs3,bs4 in HARDWAREBLIT.

b

Bitmap that the RO data is copyied into and used as the src to the 'blit()' functions to put on the screen.


FULLSCREENALWAYS - REMOVE

/*This makes RPCemu always run in fullscreen mode. Mostly suitable for DOS*/ #ifdef DJGPP

Always set screen depth to 16bit (why?) and always set the fullscreen var to 1

Only actively used on deprecated DOS port, if needed on Lninux/Mac/win suggest making the fullscreen var a config var that's saved across running, and let users decide

bs - REMOVE

Completely unused var with a large bitmap in vram attached, REMOVE.

VIDC_THREAD - REMOVE

Whether the 'blit' (reading

This is always turned on on all platforms, with no reason I can think to single thread it again, remove the define and the alternative code.