From 613c3293ce9f0f3546610033a97cfe76458f0854 Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" Date: Sat, 27 Dec 2014 17:47:21 +0200 Subject: [PATCH] Further cleanup of native OS X backend video part --- src/posix/cocoa/i_backend_cocoa.mm | 86 ++++++++++++++---------------- 1 file changed, 40 insertions(+), 46 deletions(-) diff --git a/src/posix/cocoa/i_backend_cocoa.mm b/src/posix/cocoa/i_backend_cocoa.mm index fa1b1d83e..41b4fe76b 100644 --- a/src/posix/cocoa/i_backend_cocoa.mm +++ b/src/posix/cocoa/i_backend_cocoa.mm @@ -1814,7 +1814,7 @@ bool I_SetCursor(FTexture* cursorpic) class CocoaVideo : public IVideo { public: - explicit CocoaVideo(int dummy); + CocoaVideo(); virtual EDisplayType GetDisplayType() { return DISPLAY_Both; } virtual void SetWindowedScale(float scale); @@ -1978,10 +1978,9 @@ static cycle_t FlipCycles; // --------------------------------------------------------------------------- -CocoaVideo::CocoaVideo(int dummy) +CocoaVideo::CocoaVideo() : m_modeIterator(0) { - ZD_UNUSED(dummy); } void CocoaVideo::StartModeIterator(int bits, bool fs) @@ -2176,7 +2175,7 @@ void CocoaFrameBuffer::UpdateColors() GPfx.SetPalette(palette); } -PalEntry *CocoaFrameBuffer::GetPalette() +PalEntry* CocoaFrameBuffer::GetPalette() { return m_palette; } @@ -2290,41 +2289,40 @@ ADD_STAT(blit) IVideo *Video; -void I_ShutdownGraphics () +void I_ShutdownGraphics() { - if (screen) + if (NULL != screen) { - DFrameBuffer *s = screen; + screen->ObjectFlags |= OF_YesReallyDelete; + delete screen; screen = NULL; - s->ObjectFlags |= OF_YesReallyDelete; - delete s; } - if (Video) - delete Video, Video = NULL; + + delete Video; + Video = NULL; } -void I_InitGraphics () +void I_InitGraphics() { UCVarValue val; - val.Bool = !!Args->CheckParm ("-devparm"); - ticker.SetGenericRepDefault (val, CVAR_Bool); - - Video = new CocoaVideo (0); - if (Video == NULL) - I_FatalError ("Failed to initialize display"); + val.Bool = !!Args->CheckParm("-devparm"); + ticker.SetGenericRepDefault(val, CVAR_Bool); + Video = new CocoaVideo; atterm (I_ShutdownGraphics); } + static void I_DeleteRenderer() { - if (Renderer != NULL) delete Renderer; + delete Renderer; + Renderer = NULL; } void I_CreateRenderer() { - if (Renderer == NULL) + if (NULL == Renderer) { Renderer = new FSoftwareRenderer; atterm(I_DeleteRenderer); @@ -2332,58 +2330,53 @@ void I_CreateRenderer() } -DFrameBuffer *I_SetMode (int &width, int &height, DFrameBuffer *old) +DFrameBuffer* I_SetMode(int &width, int &height, DFrameBuffer* old) { - bool fs = false; - switch (Video->GetDisplayType ()) - { - case DISPLAY_WindowOnly: - fs = false; - break; - case DISPLAY_FullscreenOnly: - fs = true; - break; - case DISPLAY_Both: - fs = fullscreen; - break; - } - - return Video->CreateFrameBuffer (width, height, fs, old); + return Video->CreateFrameBuffer(width, height, fullscreen, old); } -bool I_CheckResolution (int width, int height, int bits) +bool I_CheckResolution(const int width, const int height, const int bits) { int twidth, theight; - Video->StartModeIterator (bits, screen ? screen->IsFullscreen() : fullscreen); - while (Video->NextMode (&twidth, &theight, NULL)) + Video->StartModeIterator(bits, fullscreen); + + while (Video->NextMode(&twidth, &theight, NULL)) { if (width == twidth && height == theight) + { return true; + } } + return false; } -void I_ClosestResolution (int *width, int *height, int bits) +void I_ClosestResolution(int *width, int *height, int bits) { int twidth, theight; int cwidth = 0, cheight = 0; int iteration; - DWORD closest = 4294967295u; + DWORD closest = DWORD(-1); - for (iteration = 0; iteration < 2; iteration++) + for (iteration = 0; iteration < 2; ++iteration) { - Video->StartModeIterator (bits, screen ? screen->IsFullscreen() : fullscreen); + Video->StartModeIterator (bits, fullscreen); + while (Video->NextMode (&twidth, &theight, NULL)) { if (twidth == *width && theight == *height) + { return; + } if (iteration == 0 && (twidth < *width || theight < *height)) + { continue; + } - DWORD dist = (twidth - *width) * (twidth - *width) - + (theight - *height) * (theight - *height); + const DWORD dist = (twidth - *width) * (twidth - *width) + + (theight - *height) * (theight - *height); if (dist < closest) { @@ -2392,7 +2385,8 @@ void I_ClosestResolution (int *width, int *height, int bits) cheight = theight; } } - if (closest != 4294967295u) + + if (closest != DWORD(-1)) { *width = cwidth; *height = cheight;