From 562565f865912c6bdee2b00824aa59586825416a Mon Sep 17 00:00:00 2001 From: Martin Plicht Date: Sun, 2 Sep 2012 20:51:43 +0200 Subject: [PATCH] mac: Move C4OpenGLView.mm/h to graphics/C4DrawGLMac.mm/h and move some C4AbstractApp functions to C4AppMac.mm to better match implementations for the other platforms --- CMakeLists.txt | 4 +- src/editor/C4ConsoleCocoa.mm | 2 +- .../C4OpenGLView.h => graphics/C4DrawGLMac.h} | 0 .../C4DrawGLMac.mm} | 57 +---------------- src/platform/C4AppDelegate+MainMenuActions.mm | 2 +- src/platform/C4AppMac.mm | 61 ++++++++++++++++++- src/platform/C4EditorWindowController.mm | 2 +- src/platform/C4WindowController.mm | 2 +- src/platform/C4WindowMac.mm | 2 +- 9 files changed, 66 insertions(+), 66 deletions(-) rename src/{platform/C4OpenGLView.h => graphics/C4DrawGLMac.h} (100%) rename src/{platform/C4OpenGLView.mm => graphics/C4DrawGLMac.mm} (90%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 906b592f5..b4917b3a2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -649,8 +649,8 @@ elseif(USE_COCOA) src/platform/C4WindowMac.mm src/platform/C4AppDelegate+MainMenuActions.h src/platform/C4AppDelegate+MainMenuActions.mm - src/platform/C4OpenGLView.h - src/platform/C4OpenGLView.mm + src/graphics/C4DrawGLMac.h + src/graphics/C4DrawGLMac.mm src/platform/C4WindowController.h src/platform/C4WindowController.mm src/platform/CocoaKeycodeMap.h diff --git a/src/editor/C4ConsoleCocoa.mm b/src/editor/C4ConsoleCocoa.mm index ef2d5babb..70ca5c4a2 100644 --- a/src/editor/C4ConsoleCocoa.mm +++ b/src/editor/C4ConsoleCocoa.mm @@ -35,7 +35,7 @@ #import #import "C4AppDelegate.h" #import "C4EditorWindowController.h" -#import "C4OpenGLView.h" +#import "C4DrawGLMac.h" // implementation of C4Console GUI for Mac OS X diff --git a/src/platform/C4OpenGLView.h b/src/graphics/C4DrawGLMac.h similarity index 100% rename from src/platform/C4OpenGLView.h rename to src/graphics/C4DrawGLMac.h diff --git a/src/platform/C4OpenGLView.mm b/src/graphics/C4DrawGLMac.mm similarity index 90% rename from src/platform/C4OpenGLView.mm rename to src/graphics/C4DrawGLMac.mm index e6cdbc36e..eaeb620a2 100644 --- a/src/platform/C4OpenGLView.mm +++ b/src/graphics/C4DrawGLMac.mm @@ -28,7 +28,7 @@ #include -#import "C4OpenGLView.h" +#import "C4DrawGLMac.h" #import "C4WindowController.h" #import "C4AppDelegate+MainMenuActions.h" @@ -529,27 +529,6 @@ void C4Window::EnumerateMultiSamples(std::vector& samples) const [C4OpenGLView enumerateMultiSamples:samples]; } -bool C4AbstractApp::SetVideoMode(unsigned int iXRes, unsigned int iYRes, unsigned int iColorDepth, unsigned int iRefreshRate, unsigned int iMonitor, bool fFullScreen) -{ - fFullScreen &= !lionAndBeyond(); // Always false for Lion since then Lion's true(tm) Fullscreen is used - C4WindowController* controller = pWindow->objectiveCObject(); - NSWindow* window = controller.window; - - if (iXRes == -1 && iYRes == -1) - { - iXRes = CGDisplayPixelsWide(C4OpenGLView.displayID); - iYRes = CGDisplayPixelsHigh(C4OpenGLView.displayID); - } - pWindow->SetSize(iXRes, iYRes); - [controller setFullscreen:fFullScreen]; - [window setAspectRatio:[[window contentView] frame].size]; - [window center]; - if (!fFullScreen) - [window makeKeyAndOrderFront:nil]; - OnResolutionChanged(iXRes, iYRes); - return true; -} - bool CStdGLCtx::Init(C4Window * pWindow, C4AbstractApp *) { // safety @@ -612,38 +591,4 @@ bool CStdGLCtx::PageFlip() return true; } -#pragma mark CStdGLCtx: Gamma - -bool C4AbstractApp::ApplyGammaRamp(struct _D3DGAMMARAMP &ramp, bool fForce) -{ - CGGammaValue r[256]; - CGGammaValue g[256]; - CGGammaValue b[256]; - for (int i = 0; i < 256; i++) - { - r[i] = static_cast(ramp.red[i])/65535.0; - g[i] = static_cast(ramp.green[i])/65535.0; - b[i] = static_cast(ramp.blue[i])/65535.0; - } - CGSetDisplayTransferByTable(C4OpenGLView.displayID, 256, r, g, b); - return true; -} - -bool C4AbstractApp::SaveDefaultGammaRamp(_D3DGAMMARAMP &ramp) -{ - CGGammaValue r[256]; - CGGammaValue g[256]; - CGGammaValue b[256]; - uint32_t count; - CGGetDisplayTransferByTable(C4OpenGLView.displayID, 256, r, g, b, &count); - for (int i = 0; i < 256; i++) - { - ramp.red[i] = r[i]*65535; - ramp.green[i] = g[i]*65535; - ramp.blue[i] = b[i]*65535; - } - return true; - -} - #endif diff --git a/src/platform/C4AppDelegate+MainMenuActions.mm b/src/platform/C4AppDelegate+MainMenuActions.mm index d44227433..e6943cf6d 100644 --- a/src/platform/C4AppDelegate+MainMenuActions.mm +++ b/src/platform/C4AppDelegate+MainMenuActions.mm @@ -23,7 +23,7 @@ #import #import "C4AppDelegate+MainMenuActions.h" -#import "C4OpenGLView.h" +#import "C4DrawGLMac.h" #import "C4EditorWindowController.h" @implementation C4AppDelegate (MainMenuActions) diff --git a/src/platform/C4AppMac.mm b/src/platform/C4AppMac.mm index fdffe7cca..2cbca1e8c 100644 --- a/src/platform/C4AppMac.mm +++ b/src/platform/C4AppMac.mm @@ -20,12 +20,15 @@ // based on SDL implementation #include -#import -#import "C4WindowController.h" +#include #include #include -#include +#include + +#import +#import "C4WindowController.h" +#import "C4DrawGLMac.h" #include "C4App.h" @@ -150,6 +153,58 @@ StdStrBuf C4AbstractApp::GetGameDataPath() return StdCopyStrBuf([[[NSBundle mainBundle] resourcePath] fileSystemRepresentation]); } +bool C4AbstractApp::SetVideoMode(unsigned int iXRes, unsigned int iYRes, unsigned int iColorDepth, unsigned int iRefreshRate, unsigned int iMonitor, bool fFullScreen) +{ + fFullScreen &= !lionAndBeyond(); // Always false for Lion since then Lion's true(tm) Fullscreen is used + C4WindowController* controller = pWindow->objectiveCObject(); + NSWindow* window = controller.window; + + if (iXRes == -1 && iYRes == -1) + { + iXRes = CGDisplayPixelsWide(C4OpenGLView.displayID); + iYRes = CGDisplayPixelsHigh(C4OpenGLView.displayID); + } + pWindow->SetSize(iXRes, iYRes); + [controller setFullscreen:fFullScreen]; + [window setAspectRatio:[[window contentView] frame].size]; + [window center]; + if (!fFullScreen) + [window makeKeyAndOrderFront:nil]; + OnResolutionChanged(iXRes, iYRes); + return true; +} + +bool C4AbstractApp::ApplyGammaRamp(struct _D3DGAMMARAMP &ramp, bool fForce) +{ + CGGammaValue r[256]; + CGGammaValue g[256]; + CGGammaValue b[256]; + for (int i = 0; i < 256; i++) + { + r[i] = static_cast(ramp.red[i])/65535.0; + g[i] = static_cast(ramp.green[i])/65535.0; + b[i] = static_cast(ramp.blue[i])/65535.0; + } + CGSetDisplayTransferByTable(C4OpenGLView.displayID, 256, r, g, b); + return true; +} + +bool C4AbstractApp::SaveDefaultGammaRamp(_D3DGAMMARAMP &ramp) +{ + CGGammaValue r[256]; + CGGammaValue g[256]; + CGGammaValue b[256]; + uint32_t count; + CGGetDisplayTransferByTable(C4OpenGLView.displayID, 256, r, g, b, &count); + for (int i = 0; i < 256; i++) + { + ramp.red[i] = r[i]*65535; + ramp.green[i] = g[i]*65535; + ramp.blue[i] = b[i]*65535; + } + return true; +} + #endif bool IsGermanSystem() diff --git a/src/platform/C4EditorWindowController.mm b/src/platform/C4EditorWindowController.mm index be9081a8b..2ff4d96ed 100644 --- a/src/platform/C4EditorWindowController.mm +++ b/src/platform/C4EditorWindowController.mm @@ -21,7 +21,7 @@ #import #import -#import +#import #import #ifdef USE_COCOA diff --git a/src/platform/C4WindowController.mm b/src/platform/C4WindowController.mm index 06e0c7f97..630a29868 100644 --- a/src/platform/C4WindowController.mm +++ b/src/platform/C4WindowController.mm @@ -25,7 +25,7 @@ #import #import "C4WindowController.h" -#import "C4OpenGLView.h" +#import "C4DrawGLMac.h" #import "C4EditorWindowController.h" #import "C4AppDelegate.h" #import "AppKit/NSOpenGL.h" diff --git a/src/platform/C4WindowMac.mm b/src/platform/C4WindowMac.mm index 5c3841bfb..d1a116f60 100644 --- a/src/platform/C4WindowMac.mm +++ b/src/platform/C4WindowMac.mm @@ -22,7 +22,7 @@ #import #import -#import +#import #ifdef USE_COCOA