From 6aab1a354ccfee9a4f4bbee6c5b29e9cf6bfd673 Mon Sep 17 00:00:00 2001 From: Steve Checkoway Date: Mon, 12 Dec 2005 10:02:22 +0000 Subject: [PATCH] Missed old commit: Use image in Data/splash.png, fall back on internal splash if it's missing. --- .../src/arch/LoadingWindow/LoadingWindow_Cocoa.h | 15 ++++++++++++--- .../src/arch/LoadingWindow/LoadingWindow_Cocoa.m | 12 ++++++++---- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/stepmania/src/arch/LoadingWindow/LoadingWindow_Cocoa.h b/stepmania/src/arch/LoadingWindow/LoadingWindow_Cocoa.h index c16726e5b9..09d22acd01 100644 --- a/stepmania/src/arch/LoadingWindow/LoadingWindow_Cocoa.h +++ b/stepmania/src/arch/LoadingWindow/LoadingWindow_Cocoa.h @@ -4,18 +4,27 @@ #define LOADING_WINDOW_COCOA_H #include "LoadingWindow.h" +#include "RageFile.h" extern "C" { - extern void MakeNewCocoaWindow(); + extern void MakeNewCocoaWindow( const void *data, unsigned length ); extern void DisposeOfCocoaWindow(); - extern void SetCocoaWindowText(const char *s); + extern void SetCocoaWindowText( const char *s ); } class LoadingWindow_Cocoa : public LoadingWindow { public: - LoadingWindow_Cocoa() { MakeNewCocoaWindow(); } + LoadingWindow_Cocoa() + { + RageFile f; + CString data; + + f.Open( "Data/splash.png" ); + f.Read( data ); + MakeNewCocoaWindow( data.data(), data.length() ); + } ~LoadingWindow_Cocoa() { DisposeOfCocoaWindow(); } void Paint() { } /* Not needed but pure virtual*/ diff --git a/stepmania/src/arch/LoadingWindow/LoadingWindow_Cocoa.m b/stepmania/src/arch/LoadingWindow/LoadingWindow_Cocoa.m index 447c539c67..af3a5d5c06 100644 --- a/stepmania/src/arch/LoadingWindow/LoadingWindow_Cocoa.m +++ b/stepmania/src/arch/LoadingWindow/LoadingWindow_Cocoa.m @@ -4,11 +4,15 @@ static NSWindow *window; static NSTextView *text; -void MakeNewCocoaWindow() +void MakeNewCocoaWindow( const void *data, unsigned length ) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - NSImage *image = [NSImage imageNamed:@"splash"]; - NSImageView *iView; + NSData *d = [NSData dataWithBytes:data length:length]; + NSImage *image = [[[NSImage alloc] initWithData:d] autorelease]; + + if( !image ) + image = [NSImage imageNamed:@"splash.png"]; + NSView *view; NSSize size = [image size]; NSRect textRect, viewRect, windowRect; @@ -23,7 +27,7 @@ void MakeNewCocoaWindow() [text setAlignment:NSCenterTextAlignment]; viewRect = NSMakeRect(0, height, size.width, height); - iView = [[[NSImageView alloc] initWithFrame:viewRect] autorelease]; + NSImageView *iView = [[[NSImageView alloc] initWithFrame:viewRect] autorelease]; [iView setImage:image]; [iView setImageFrameStyle:NSImageFrameNone];