ultimatepp/rainbow/SDL20/Window.cpp
cxl f0e42f8693 reorganizing repo
git-svn-id: svn://ultimatepp.org/upp/trunk@9214 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2015-11-22 19:53:58 +00:00

58 lines
No EOL
911 B
C++

#include "Local.h"
#ifdef GUI_SDL20
NAMESPACE_UPP
bool SDLWindow::Create(const Rect& rect, const char *title)
{
win = SDL_CreateWindow(title, rect.left, rect.top, rect.GetWidth(), rect.GetHeight(),
SDL_WINDOW_SHOWN);
if(!win)
return false;
MemoryIgnoreLeaksBegin();
ren = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
MemoryIgnoreLeaksEnd();
if(!ren) {
Destroy();
return false;
}
INTERLOCKED {
static int64 h;
serial = h++;
}
return true;
}
void SDLWindow::Destroy()
{
if(ren) {
SDL_DestroyRenderer(ren);
ren = NULL;
}
if(win) {
SDL_DestroyWindow(win);
win = NULL;
}
}
void SDLWindow::Present()
{
if(ren)
SDL_RenderPresent(ren);
}
SDLWindow::SDLWindow()
{
ren = NULL;
win = NULL;
}
SDLWindow::~SDLWindow()
{
Destroy();
}
END_UPP_NAMESPACE
#endif