Browse Source

Replace tagRECT with SDL_Rect

pull/573/head
Anders Jenbo 6 years ago
parent
commit
edeca6574d
  1. 13
      3rdParty/Storm/Source/storm.h
  2. 2
      Source/dx.h
  3. 38
      Source/palette.cpp
  4. 22
      Source/scrollrt.cpp
  5. 9
      SourceS/miniwin/misc.h
  6. 20
      SourceX/dx.cpp

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 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 SFileCloseArchive(HANDLE hArchive);
BOOL STORMAPI SFileCloseFile(HANDLE hFile); 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 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 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_DEFAULT 0
#define SBMP_BMP 1 #define SBMP_BMP 1
@ -707,9 +699,6 @@ SDrawGetScreenSize(
DWORD *pdwBpp); DWORD *pdwBpp);
// undefined
BOOL STORMAPI SDrawLockSurface(int surfacenumber, RECT *lpDestRect, void **lplpSurface, int *lpPitch, int arg_unused);
/* SDrawPostClose @ 353 /* SDrawPostClose @ 353
* *
* Posts a WM_QUIT message to the active drawing window specified * Posts a WM_QUIT message to the active drawing window specified
@ -725,7 +714,6 @@ SDrawPostClose();
// undefined // undefined
//BOOL STORMAPI SDrawRealizePalette(); //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); 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); BOOL STORMAPI SEvtDispatch(DWORD dwMessageID, DWORD dwFlags, int type, PS_EVT pEvent);
@ -1158,7 +1146,6 @@ STORMAPI
SStrUpper( SStrUpper(
char* string); char* string);
void STORMAPI SRgn523(HANDLE hRgn, RECT *pRect, int a3, int a4);
void STORMAPI SRgnCreateRegion(HANDLE *hRgn, int a2); void STORMAPI SRgnCreateRegion(HANDLE *hRgn, int a2);
void STORMAPI SRgnDeleteRegion(HANDLE hRgn); void STORMAPI SRgnDeleteRegion(HANDLE hRgn);

2
Source/dx.h

@ -14,7 +14,7 @@ void dx_cleanup();
void dx_reinit(); void dx_reinit();
void CreatePalette(); void CreatePalette();
void BltFast(DWORD dwX, DWORD dwY, LPRECT lpSrcRect); void BltFast(SDL_Rect *src_rect, SDL_Rect *dst_rect);
void RenderPresent(); void RenderPresent();
void PaletteGetEntries(DWORD dwNumEntries, SDL_Color *lpEntries); void PaletteGetEntries(DWORD dwNumEntries, SDL_Color *lpEntries);
void PaletteSetEntries(DWORD dwCount, SDL_Color *lpEntries); void PaletteSetEntries(DWORD dwCount, SDL_Color *lpEntries);

38
Source/palette.cpp

@ -156,24 +156,30 @@ int UpdateGamma(int gamma)
void SetFadeLevel(DWORD fadeval) void SetFadeLevel(DWORD fadeval)
{ {
int i; int i;
RECT SrcRect;
if (1) { for (i = 0; i < 255; i++) {
for (i = 0; i < 255; i++) { system_palette[i].r = (fadeval * logical_palette[i].r) >> 8;
system_palette[i].r = (fadeval * logical_palette[i].r) >> 8; system_palette[i].g = (fadeval * logical_palette[i].g) >> 8;
system_palette[i].g = (fadeval * logical_palette[i].g) >> 8; system_palette[i].b = (fadeval * logical_palette[i].b) >> 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();
} }
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() void BlackPalette()

22
Source/scrollrt.cpp

@ -1081,14 +1081,20 @@ static void DrawFPS()
*/ */
static void DoBlitScreen(DWORD dwX, DWORD dwY, DWORD dwWdt, DWORD dwHgt) static void DoBlitScreen(DWORD dwX, DWORD dwY, DWORD dwWdt, DWORD dwHgt)
{ {
RECT SrcRect; SDL_Rect SrcRect = {
dwX + SCREEN_X,
SrcRect.left = dwX + SCREEN_X; dwY + SCREEN_Y,
SrcRect.top = dwY + SCREEN_Y; dwWdt,
SrcRect.right = SrcRect.left + dwWdt - 1; dwHgt,
SrcRect.bottom = SrcRect.top + dwHgt - 1; };
SDL_Rect DstRect = {
BltFast(dwX, dwY, &SrcRect); dwX,
dwY,
dwWdt,
dwHgt,
};
BltFast(&SrcRect, &DstRect);
} }
/** /**

9
SourceS/miniwin/misc.h

@ -55,15 +55,6 @@ typedef struct _FILETIME {
DWORD dwHighDateTime; DWORD dwHighDateTime;
} FILETIME, *LPFILETIME; } FILETIME, *LPFILETIME;
typedef struct tagRECT {
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT;
typedef RECT *LPRECT;
typedef struct tagPOINT { typedef struct tagPOINT {
LONG x; LONG x;
LONG y; LONG y;

20
SourceX/dx.cpp

@ -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()) { if (OutputRequiresScaling()) {
ScaleOutputRect(&dst_rect); ScaleOutputRect(dst_rect);
// Convert from 8-bit to 32-bit // Convert from 8-bit to 32-bit
SDL_Surface *tmp = SDL_ConvertSurface(pal_surface, GetOutputSurface()->format, 0); 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); SDL_FreeSurface(tmp);
ErrSdl(); ErrSdl();
} }
SDL_FreeSurface(tmp); SDL_FreeSurface(tmp);
} else { } else {
// Convert from 8-bit to 32-bit // 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(); ErrSdl();
} }
} }

Loading…
Cancel
Save