diff --git a/include/render.h b/include/render.h index e7a0b840..7dd2d226 100644 --- a/include/render.h +++ b/include/render.h @@ -29,12 +29,13 @@ enum { DoubleBoth= 0x03 }; -bool RENDER_StartUpdate(void); -void RENDER_EndUpdate(void); -void RENDER_Part(Bit8u * data,Bitu x,Bitu y,Bitu dx,Bitu dy); +typedef void (* RENDER_Part_Handler)(Bit8u * src,Bitu x,Bitu y,Bitu dx,Bitu dy); +typedef void (* RENDER_Draw_Handler)(RENDER_Part_Handler part_handler); -void RENDER_SetSize(Bitu width,Bitu height,Bitu bpp,Bitu pitch,float ratio,Bitu flags); +void RENDER_DoUpdate(void); + +void RENDER_SetSize(Bitu width,Bitu height,Bitu bpp,Bitu pitch,float ratio,Bitu flags,RENDER_Draw_Handler draw_handler); void RENDER_SetPal(Bit8u entry,Bit8u red,Bit8u green,Bit8u blue); diff --git a/include/video.h b/include/video.h index d6424129..63d952ec 100644 --- a/include/video.h +++ b/include/video.h @@ -22,6 +22,8 @@ typedef void (* GFX_ModeCallBack)(Bitu width,Bitu height,Bitu bpp,Bitu pitch,Bitu flags); +typedef void (* GFX_DrawCallBack)(void * data); + struct GFX_PalEntry { Bit8u r; Bit8u g; @@ -40,14 +42,13 @@ void GFX_Events(void); void GFX_SetPalette(Bitu start,Bitu count,GFX_PalEntry * entries); Bitu GFX_GetRGB(Bit8u red,Bit8u green,Bit8u blue); -void GFX_SetSize(Bitu width,Bitu height,Bitu bpp,Bitu flags,GFX_ModeCallBack callback); +void GFX_SetSize(Bitu width,Bitu height,Bitu bpp,Bitu flags,GFX_ModeCallBack mode_callback, GFX_DrawCallBack draw_callback); void GFX_Start(void); void GFX_Stop(void); void GFX_SwitchFullScreen(void); -void * GFX_StartUpdate(void); -void GFX_EndUpdate(void); +void GFX_DoUpdate(void); #endif