Replace tagRECT with SDL_Rect
This commit is contained in:
parent
3ab9b7f2d3
commit
edeca6574d
6 changed files with 41 additions and 63 deletions
13
3rdParty/Storm/Source/storm.h
vendored
13
3rdParty/Storm/Source/storm.h
vendored
|
|
@ -487,12 +487,6 @@ BOOL STORMAPI SDlgSetControlBitmaps(HWND parentwindow, int *id, int a3, char *bu
|
|||
BOOL STORMAPI SDlgSetSystemCursor(void *lpSrcBuffer, void *p_a2, LPSIZE lpSize, LPCSTR lpCursorName);
|
||||
*/
|
||||
|
||||
BOOL STORMAPI SDlgBltToWindowI(HWND hWnd, HRGN a2, char *a3, int a4, void *buffer, RECT *rct, SIZE *size, int a8, int a9, DWORD rop);
|
||||
BOOL STORMAPI SDlgBltToWindowE(HWND hWnd, HRGN a2, char *a3, int a4, void *buffer, RECT *rct, SIZE *size, int a8, int a9, DWORD rop);
|
||||
BOOL STORMAPI SDlgSetBitmapE(HWND hWnd, int a2, char *src, int mask1, int flags, int a6, int a7, int width, int a9, int mask2);
|
||||
|
||||
int STORMAPI Ordinal224(int a1);
|
||||
|
||||
BOOL STORMAPI SFileCloseArchive(HANDLE hArchive);
|
||||
BOOL STORMAPI SFileCloseFile(HANDLE hFile);
|
||||
|
||||
|
|
@ -560,8 +554,6 @@ BOOL STORMAPI SFileLoadFileEx(void *hArchive, char *filename, int a3, int a4, in
|
|||
//BOOL STORMAPI StormSetOption(int type, void *pValue, unsigned int size);
|
||||
|
||||
BOOL STORMAPI SBltROP3(void *lpDstBuffer, void *lpSrcBuffer, int srcDrawWidth, int srcDrawHeight, int dstWidth, int srcWidth, int a7, DWORD rop);
|
||||
BOOL STORMAPI SBltROP3Clipped(void *lpDstBuffer, RECT *lpDstRect, POINT *lpDstPt, int a4, void *lpSrcBuffer, RECT *lpSrcRect, POINT *lpSrcPt, int a8, int a9, DWORD rop);
|
||||
BOOL STORMAPI SBltROP3Tiled(void *lpDstBuffer, RECT *lpDstRect, POINT *lpDstPt, int a4, void *lpSrcBuffer, RECT *lpSrcRect, POINT *lpSrcPt, int a8, int a9, DWORD rop);
|
||||
|
||||
#define SBMP_DEFAULT 0
|
||||
#define SBMP_BMP 1
|
||||
|
|
@ -707,9 +699,6 @@ SDrawGetScreenSize(
|
|||
DWORD *pdwBpp);
|
||||
|
||||
|
||||
// undefined
|
||||
BOOL STORMAPI SDrawLockSurface(int surfacenumber, RECT *lpDestRect, void **lplpSurface, int *lpPitch, int arg_unused);
|
||||
|
||||
/* SDrawPostClose @ 353
|
||||
*
|
||||
* Posts a WM_QUIT message to the active drawing window specified
|
||||
|
|
@ -725,7 +714,6 @@ SDrawPostClose();
|
|||
// undefined
|
||||
//BOOL STORMAPI SDrawRealizePalette();
|
||||
|
||||
BOOL STORMAPI SDrawUnlockSurface(int surfacenumber, void *lpSurface, int a3, RECT *lpRect);
|
||||
void SDrawUpdatePalette(unsigned int firstentry, unsigned int numentries, SDL_Color *pPalEntries, int a4);
|
||||
|
||||
BOOL STORMAPI SEvtDispatch(DWORD dwMessageID, DWORD dwFlags, int type, PS_EVT pEvent);
|
||||
|
|
@ -1158,7 +1146,6 @@ STORMAPI
|
|||
SStrUpper(
|
||||
char* string);
|
||||
|
||||
void STORMAPI SRgn523(HANDLE hRgn, RECT *pRect, int a3, int a4);
|
||||
void STORMAPI SRgnCreateRegion(HANDLE *hRgn, int a2);
|
||||
void STORMAPI SRgnDeleteRegion(HANDLE hRgn);
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ void dx_cleanup();
|
|||
void dx_reinit();
|
||||
|
||||
void CreatePalette();
|
||||
void BltFast(DWORD dwX, DWORD dwY, LPRECT lpSrcRect);
|
||||
void BltFast(SDL_Rect *src_rect, SDL_Rect *dst_rect);
|
||||
void RenderPresent();
|
||||
void PaletteGetEntries(DWORD dwNumEntries, SDL_Color *lpEntries);
|
||||
void PaletteSetEntries(DWORD dwCount, SDL_Color *lpEntries);
|
||||
|
|
|
|||
|
|
@ -156,24 +156,30 @@ int UpdateGamma(int gamma)
|
|||
void SetFadeLevel(DWORD fadeval)
|
||||
{
|
||||
int i;
|
||||
RECT SrcRect;
|
||||
|
||||
if (1) {
|
||||
for (i = 0; i < 255; i++) {
|
||||
system_palette[i].r = (fadeval * logical_palette[i].r) >> 8;
|
||||
system_palette[i].g = (fadeval * logical_palette[i].g) >> 8;
|
||||
system_palette[i].b = (fadeval * logical_palette[i].b) >> 8;
|
||||
}
|
||||
palette_update();
|
||||
|
||||
// Workaround for flickering mouse in caves https://github.com/diasurgical/devilutionX/issues/7
|
||||
SrcRect.left = BORDER_LEFT;
|
||||
SrcRect.top = BORDER_TOP;
|
||||
SrcRect.right = BUFFER_WIDTH;
|
||||
SrcRect.bottom = BUFFER_HEIGHT; // menu isn't offset so make sure we copy all of it
|
||||
BltFast(0, 0, &SrcRect);
|
||||
RenderPresent();
|
||||
for (i = 0; i < 255; i++) {
|
||||
system_palette[i].r = (fadeval * logical_palette[i].r) >> 8;
|
||||
system_palette[i].g = (fadeval * logical_palette[i].g) >> 8;
|
||||
system_palette[i].b = (fadeval * logical_palette[i].b) >> 8;
|
||||
}
|
||||
palette_update();
|
||||
|
||||
// Workaround for flickering mouse in caves https://github.com/diasurgical/devilutionX/issues/7
|
||||
SDL_Rect SrcRect = {
|
||||
SCREEN_X,
|
||||
SCREEN_Y,
|
||||
SCREEN_WIDTH,
|
||||
SCREEN_HEIGHT,
|
||||
};
|
||||
SDL_Rect DstRect = {
|
||||
0,
|
||||
0,
|
||||
SCREEN_WIDTH,
|
||||
SCREEN_HEIGHT,
|
||||
};
|
||||
|
||||
BltFast(&SrcRect, &DstRect);
|
||||
RenderPresent();
|
||||
}
|
||||
|
||||
void BlackPalette()
|
||||
|
|
|
|||
|
|
@ -1081,14 +1081,20 @@ static void DrawFPS()
|
|||
*/
|
||||
static void DoBlitScreen(DWORD dwX, DWORD dwY, DWORD dwWdt, DWORD dwHgt)
|
||||
{
|
||||
RECT SrcRect;
|
||||
SDL_Rect SrcRect = {
|
||||
dwX + SCREEN_X,
|
||||
dwY + SCREEN_Y,
|
||||
dwWdt,
|
||||
dwHgt,
|
||||
};
|
||||
SDL_Rect DstRect = {
|
||||
dwX,
|
||||
dwY,
|
||||
dwWdt,
|
||||
dwHgt,
|
||||
};
|
||||
|
||||
SrcRect.left = dwX + SCREEN_X;
|
||||
SrcRect.top = dwY + SCREEN_Y;
|
||||
SrcRect.right = SrcRect.left + dwWdt - 1;
|
||||
SrcRect.bottom = SrcRect.top + dwHgt - 1;
|
||||
|
||||
BltFast(dwX, dwY, &SrcRect);
|
||||
BltFast(&SrcRect, &DstRect);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -55,15 +55,6 @@ typedef struct _FILETIME {
|
|||
DWORD dwHighDateTime;
|
||||
} FILETIME, *LPFILETIME;
|
||||
|
||||
typedef struct tagRECT {
|
||||
LONG left;
|
||||
LONG top;
|
||||
LONG right;
|
||||
LONG bottom;
|
||||
} RECT;
|
||||
|
||||
typedef RECT *LPRECT;
|
||||
|
||||
typedef struct tagPOINT {
|
||||
LONG x;
|
||||
LONG y;
|
||||
|
|
|
|||
|
|
@ -171,32 +171,20 @@ void CreatePalette()
|
|||
}
|
||||
}
|
||||
|
||||
void BltFast(DWORD dwX, DWORD dwY, LPRECT lpSrcRect)
|
||||
void BltFast(SDL_Rect *src_rect, SDL_Rect *dst_rect)
|
||||
{
|
||||
auto w = static_cast<decltype(SDL_Rect().w)>(lpSrcRect->right - lpSrcRect->left + 1);
|
||||
auto h = static_cast<decltype(SDL_Rect().h)>(lpSrcRect->bottom - lpSrcRect->top + 1);
|
||||
SDL_Rect src_rect = {
|
||||
static_cast<decltype(SDL_Rect().x)>(lpSrcRect->left),
|
||||
static_cast<decltype(SDL_Rect().y)>(lpSrcRect->top),
|
||||
w, h
|
||||
};
|
||||
SDL_Rect dst_rect = {
|
||||
static_cast<decltype(SDL_Rect().x)>(dwX),
|
||||
static_cast<decltype(SDL_Rect().y)>(dwY),
|
||||
w, h
|
||||
};
|
||||
if (OutputRequiresScaling()) {
|
||||
ScaleOutputRect(&dst_rect);
|
||||
ScaleOutputRect(dst_rect);
|
||||
// Convert from 8-bit to 32-bit
|
||||
SDL_Surface *tmp = SDL_ConvertSurface(pal_surface, GetOutputSurface()->format, 0);
|
||||
if (SDL_BlitScaled(tmp, &src_rect, GetOutputSurface(), &dst_rect) <= -1) {
|
||||
if (SDL_BlitScaled(tmp, src_rect, GetOutputSurface(), dst_rect) <= -1) {
|
||||
SDL_FreeSurface(tmp);
|
||||
ErrSdl();
|
||||
}
|
||||
SDL_FreeSurface(tmp);
|
||||
} else {
|
||||
// Convert from 8-bit to 32-bit
|
||||
if (SDL_BlitSurface(pal_surface, &src_rect, GetOutputSurface(), &dst_rect) <= -1) {
|
||||
if (SDL_BlitSurface(pal_surface, src_rect, GetOutputSurface(), dst_rect) <= -1) {
|
||||
ErrSdl();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue