1
0
Fork 0

Rewrite the simple scalers to handle everything in one pass for less memory strain

Limit the complex scalers to a lower resolution and share some memory for framecache
fix image output to reduce FPS when capturing with frameskip


Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@2492
This commit is contained in:
Sjoerd van der Berg 2006-02-12 23:43:54 +00:00
parent 2fb65fe0ee
commit 397220ea1d
7 changed files with 545 additions and 442 deletions

View file

@ -32,10 +32,10 @@ typedef struct {
Bit16u b16[256];
Bit32u b32[256];
} lut;
bool modified[256];
bool changed;
Bit8u modified[256];
Bitu first;
Bitu last;
bool changed;
} RenderPal_t;
typedef struct {
@ -56,15 +56,15 @@ typedef struct {
scalerMode_t inMode;
scalerMode_t outMode;
scalerOperation_t op;
ScalerLineHandler_t currentHandler;
Bitu lineFlags;
bool clearCache;
ScalerCacheHandler_t clearCacheHandler;
ScalerLineHandler_t lineHandler;
ScalerCacheHandler_t cacheHandler;
ScalerLineHandler_t linePalHandler;
ScalerComplexHandler_t complexHandler;
Bitu blocks, lastBlock;
Bitu outPitch;
Bit8u *outWrite;
Bitu cachePitch;
Bit8u *cacheRead;
Bitu inHeight, inLine, outLine;
} scale;
RenderPal_t pal;
@ -74,7 +74,7 @@ typedef struct {
} Render_t;
extern Render_t render;
void RENDER_DrawLine( const void *src );
extern ScalerLineHandler_t RENDER_DrawLine;
void RENDER_SetSize(Bitu width,Bitu height,Bitu bpp,float fps,double ratio,bool dblw,bool dblh);
bool RENDER_StartUpdate(void);
void RENDER_EndUpdate( bool fullUpdate );