1
0
mirror of https://github.com/blupi-games/planetblupi synced 2024-12-30 10:15:36 +01:00

WIP: add handling support for desktop fullscreen mode

This commit is contained in:
Mathieu Schroeter 2018-06-13 23:15:23 +02:00
parent 967819a5b8
commit 0289b0224b
2 changed files with 25 additions and 0 deletions

View File

@ -57,6 +57,7 @@ CPixmap::CPixmap (CEvent * event)
m_lpSDLCursors[i] = nullptr; m_lpSDLCursors[i] = nullptr;
m_lpCurrentCursor = nullptr; m_lpCurrentCursor = nullptr;
this->mainTexture = nullptr;
this->event = event; this->event = event;
} }
@ -85,6 +86,9 @@ CPixmap::~CPixmap ()
if (m_lpSDLBlupi) if (m_lpSDLBlupi)
SDL_FreeSurface (m_lpSDLBlupi); SDL_FreeSurface (m_lpSDLBlupi);
if (this->mainTexture)
SDL_DestroyTexture (this->mainTexture);
} }
// Cr�e l'objet DirectDraw principal. // Cr�e l'objet DirectDraw principal.
@ -143,8 +147,24 @@ CPixmap::BltFast (Sint32 chDst, size_t channel, Point dst, Rect rcRect)
dstRect.x = dst.x; dstRect.x = dst.x;
dstRect.y = dst.y; dstRect.y = dst.y;
if (!this->mainTexture && g_bFullScreen && g_zoom == 1)
{
SDL_SetHint (SDL_HINT_RENDER_SCALE_QUALITY, "best");
this->mainTexture = SDL_CreateTexture (
g_renderer, SDL_PIXELFORMAT_RGBA32, SDL_TEXTUREACCESS_TARGET, LXIMAGE,
LYIMAGE);
SDL_SetHint (SDL_HINT_RENDER_SCALE_QUALITY, "nearest");
}
else if (this->mainTexture && !(g_bFullScreen && g_zoom == 1))
{
SDL_DestroyTexture (this->mainTexture);
this->mainTexture = nullptr;
}
SDL_SetRenderTarget (g_renderer, this->mainTexture);
res = SDL_RenderCopy ( res = SDL_RenderCopy (
g_renderer, m_SDLTextureInfo[channel].texture, &srcRect, &dstRect); g_renderer, m_SDLTextureInfo[channel].texture, &srcRect, &dstRect);
SDL_SetRenderTarget (g_renderer, nullptr);
} }
else else
{ {
@ -602,6 +622,10 @@ bool
CPixmap::Display () CPixmap::Display ()
{ {
m_bBackDisplayed = true; m_bBackDisplayed = true;
if (this->mainTexture)
SDL_RenderCopy (g_renderer, this->mainTexture, nullptr, nullptr);
SDL_RenderPresent (g_renderer); SDL_RenderPresent (g_renderer);
return true; return true;
} }

View File

@ -111,5 +111,6 @@ protected:
SDL_Cursor * m_lpCurrentCursor; SDL_Cursor * m_lpCurrentCursor;
SDL_Cursor * m_lpSDLCursors[MAXCURSORS]; SDL_Cursor * m_lpSDLCursors[MAXCURSORS];
SDL_Surface * m_lpSDLBlupi; SDL_Surface * m_lpSDLBlupi;
SDL_Texture * mainTexture;
std::unordered_map<size_t, TextureInfo> m_SDLTextureInfo; std::unordered_map<size_t, TextureInfo> m_SDLTextureInfo;
}; };