author | rubidium |
Tue, 25 Dec 2007 11:26:07 +0000 | |
changeset 8131 | 160939e24ed3 |
parent 8127 | a20f557b7081 |
child 8146 | 9641c9bd77ba |
permissions | -rw-r--r-- |
7943
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
1 |
/* $Id$ */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
2 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
3 |
/****************************************************************************** |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
4 |
* Cocoa video driver * |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
5 |
* Known things left to do: * |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
6 |
* List available resolutions. * |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
7 |
******************************************************************************/ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
8 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
9 |
#ifdef WITH_COCOA |
8092
233af5e53af9
(svn r11653) -Feature: [OSX] Allow windowed mode subdrivers to be disabled at compile time.
egladil
parents:
8039
diff
changeset
|
10 |
#ifdef ENABLE_COCOA_QUARTZ |
7943
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
11 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
12 |
#include <AvailabilityMacros.h> |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
13 |
|
7984
f01c62b32738
(svn r11540) -Fix: [OSX] Don't try to compile the quartz video driver on OSX 10.3. It will fail
bjarni
parents:
7965
diff
changeset
|
14 |
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4 |
f01c62b32738
(svn r11540) -Fix: [OSX] Don't try to compile the quartz video driver on OSX 10.3. It will fail
bjarni
parents:
7965
diff
changeset
|
15 |
|
7943
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
16 |
#import <Cocoa/Cocoa.h> |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
17 |
#import <sys/time.h> /* gettimeofday */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
18 |
#import <sys/param.h> /* for MAXPATHLEN */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
19 |
#import <unistd.h> |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
20 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
21 |
/** |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
22 |
* Important notice regarding all modifications!!!!!!! |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
23 |
* There are certain limitations because the file is objective C++. |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
24 |
* gdb has limitations. |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
25 |
* C++ and objective C code can't be joined in all cases (classes stuff). |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
26 |
* Read http://developer.apple.com/releasenotes/Cocoa/Objective-C++.html for more information. |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
27 |
*/ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
28 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
29 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
30 |
/* Defined in stdbool.h */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
31 |
#ifndef __cplusplus |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
32 |
# ifndef __BEOS__ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
33 |
# undef bool |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
34 |
# undef false |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
35 |
# undef true |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
36 |
# endif |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
37 |
#endif |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
38 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
39 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
40 |
#include "../../stdafx.h" |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
41 |
#include "../../debug.h" |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
42 |
#include "../../variables.h" |
8127
a20f557b7081
(svn r11688) -Fix [FS#1581]: Compilation was broken on OS X again.
egladil
parents:
8092
diff
changeset
|
43 |
#include "../../core/geometry_type.hpp" |
7943
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
44 |
#include "cocoa_v.h" |
8127
a20f557b7081
(svn r11688) -Fix [FS#1581]: Compilation was broken on OS X again.
egladil
parents:
8092
diff
changeset
|
45 |
#include "../../core/math_func.hpp" |
a20f557b7081
(svn r11688) -Fix [FS#1581]: Compilation was broken on OS X again.
egladil
parents:
8092
diff
changeset
|
46 |
#include "../../gfx_func.h" |
7943
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
47 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
48 |
#undef Rect |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
49 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
50 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
51 |
class WindowQuartzSubdriver; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
52 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
53 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
54 |
/* Subclass of NSWindow to fix genie effect and support resize events */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
55 |
@interface OTTD_QuartzWindow : NSWindow { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
56 |
WindowQuartzSubdriver *driver; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
57 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
58 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
59 |
- (void)setDriver:(WindowQuartzSubdriver*)drv; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
60 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
61 |
- (void)miniaturize:(id)sender; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
62 |
- (void)display; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
63 |
- (void)setFrame:(NSRect)frameRect display:(BOOL)flag; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
64 |
- (void)appDidHide:(NSNotification*)note; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
65 |
- (void)appWillUnhide:(NSNotification*)note; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
66 |
- (void)appDidUnhide:(NSNotification*)note; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
67 |
- (id)initWithContentRect:(NSRect)contentRect styleMask:(unsigned int)styleMask backing:(NSBackingStoreType)backingType defer:(BOOL)flag; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
68 |
@end |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
69 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
70 |
/* Delegate for our NSWindow to send ask for quit on close */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
71 |
@interface OTTD_QuartzWindowDelegate : NSObject{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
72 |
WindowQuartzSubdriver *driver; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
73 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
74 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
75 |
- (void)setDriver:(WindowQuartzSubdriver*)drv; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
76 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
77 |
- (BOOL)windowShouldClose:(id)sender; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
78 |
@end |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
79 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
80 |
/* Subclass of NSView to fix Quartz rendering */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
81 |
@interface OTTD_QuartzView : NSView { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
82 |
WindowQuartzSubdriver *driver; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
83 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
84 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
85 |
- (void)setDriver:(WindowQuartzSubdriver*)drv; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
86 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
87 |
- (void)drawRect:(NSRect)rect; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
88 |
- (BOOL)isOpaque; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
89 |
@end |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
90 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
91 |
class WindowQuartzSubdriver: public CocoaSubdriver { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
92 |
int device_width; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
93 |
int device_height; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
94 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
95 |
int window_width; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
96 |
int window_height; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
97 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
98 |
int buffer_depth; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
99 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
100 |
void* pixel_buffer; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
101 |
void* image_buffer; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
102 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
103 |
OTTD_QuartzWindow *window; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
104 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
105 |
#define MAX_DIRTY_RECTS 100 |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
106 |
Rect dirty_rects[MAX_DIRTY_RECTS]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
107 |
int num_dirty_rects; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
108 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
109 |
uint32 palette[256]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
110 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
111 |
public: |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
112 |
bool active; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
113 |
bool setup; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
114 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
115 |
OTTD_QuartzView* qzview; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
116 |
CGContextRef cgcontext; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
117 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
118 |
private: |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
119 |
void GetDeviceInfo(); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
120 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
121 |
bool SetVideoMode(int width, int height); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
122 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
123 |
/** |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
124 |
* This function copies 8bpp pixels from the screen buffer in 32bpp windowed mode. |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
125 |
* |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
126 |
* @param left The x coord for the left edge of the box to blit. |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
127 |
* @param top The y coord for the top edge of the box to blit. |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
128 |
* @param right The x coord for the right edge of the box to blit. |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
129 |
* @param bottom The y coord for the bottom edge of the box to blit. |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
130 |
*/ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
131 |
void BlitIndexedToView32(int left, int top, int right, int bottom); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
132 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
133 |
public: |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
134 |
WindowQuartzSubdriver(int bpp); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
135 |
virtual ~WindowQuartzSubdriver(); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
136 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
137 |
virtual void Draw(); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
138 |
virtual void MakeDirty(int left, int top, int width, int height); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
139 |
virtual void UpdatePalette(uint first_color, uint num_colors); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
140 |
|
8127
a20f557b7081
(svn r11688) -Fix [FS#1581]: Compilation was broken on OS X again.
egladil
parents:
8092
diff
changeset
|
141 |
virtual uint ListModes(OTTD_Point* modes, uint max_modes); |
7943
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
142 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
143 |
virtual bool ChangeResolution(int w, int h); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
144 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
145 |
virtual bool IsFullscreen() { return false; } |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
146 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
147 |
virtual int GetWidth() { return window_width; } |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
148 |
virtual int GetHeight() { return window_height; } |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
149 |
virtual void *GetPixelBuffer() { return buffer_depth == 8 ? pixel_buffer : image_buffer; } |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
150 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
151 |
/* Convert local coordinate to window server (CoreGraphics) coordinate */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
152 |
virtual CGPoint PrivateLocalToCG(NSPoint* p); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
153 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
154 |
virtual NSPoint GetMouseLocation(NSEvent *event); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
155 |
virtual bool MouseIsInsideView(NSPoint *pt); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
156 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
157 |
virtual bool IsActive() { return active; } |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
158 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
159 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
160 |
void SetPortAlphaOpaque(); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
161 |
bool WindowResized(); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
162 |
}; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
163 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
164 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
165 |
static CGColorSpaceRef QZ_GetCorrectColorSpace() |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
166 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
167 |
static CGColorSpaceRef colorSpace = NULL; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
168 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
169 |
if (colorSpace == NULL) |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
170 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
171 |
CMProfileRef sysProfile; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
172 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
173 |
if (CMGetSystemProfile(&sysProfile) == noErr) |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
174 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
175 |
colorSpace = CGColorSpaceCreateWithPlatformColorSpace(sysProfile); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
176 |
CMCloseProfile(sysProfile); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
177 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
178 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
179 |
assert(colorSpace != NULL); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
180 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
181 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
182 |
return colorSpace; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
183 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
184 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
185 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
186 |
@implementation OTTD_QuartzWindow |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
187 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
188 |
- (void)setDriver:(WindowQuartzSubdriver*)drv |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
189 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
190 |
driver = drv; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
191 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
192 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
193 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
194 |
/* we override these methods to fix the miniaturize animation/dock icon bug */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
195 |
- (void)miniaturize:(id)sender |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
196 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
197 |
/* make the alpha channel opaque so anim won't have holes in it */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
198 |
driver->SetPortAlphaOpaque (); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
199 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
200 |
/* window is hidden now */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
201 |
driver->active = false; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
202 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
203 |
QZ_ShowMouse(); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
204 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
205 |
[ super miniaturize:sender ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
206 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
207 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
208 |
- (void)display |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
209 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
210 |
/* This method fires just before the window deminaturizes from the Dock. |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
211 |
* We'll save the current visible surface, let the window manager redraw any |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
212 |
* UI elements, and restore the surface. This way, no expose event |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
213 |
* is required, and the deminiaturize works perfectly. |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
214 |
*/ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
215 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
216 |
driver->SetPortAlphaOpaque(); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
217 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
218 |
/* save current visible surface */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
219 |
[ self cacheImageInRect:[ driver->qzview frame ] ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
220 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
221 |
/* let the window manager redraw controls, border, etc */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
222 |
[ super display ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
223 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
224 |
/* restore visible surface */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
225 |
[ self restoreCachedImage ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
226 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
227 |
/* window is visible again */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
228 |
driver->active = true; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
229 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
230 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
231 |
- (void)setFrame:(NSRect)frameRect display:(BOOL)flag |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
232 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
233 |
[ super setFrame:frameRect display:flag ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
234 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
235 |
/* Don't do anything if the window is currently being created */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
236 |
if (driver->setup) return; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
237 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
238 |
if (!driver->WindowResized()) |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
239 |
error("Cocoa: Failed to resize window."); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
240 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
241 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
242 |
- (void)appDidHide:(NSNotification*)note |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
243 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
244 |
driver->active = false; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
245 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
246 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
247 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
248 |
- (void)appWillUnhide:(NSNotification*)note |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
249 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
250 |
driver->SetPortAlphaOpaque (); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
251 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
252 |
/* save current visible surface */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
253 |
[ self cacheImageInRect:[ driver->qzview frame ] ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
254 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
255 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
256 |
- (void)appDidUnhide:(NSNotification*)note |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
257 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
258 |
/* restore cached image, since it may not be current, post expose event too */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
259 |
[ self restoreCachedImage ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
260 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
261 |
driver->active = true; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
262 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
263 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
264 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
265 |
- (id)initWithContentRect:(NSRect)contentRect styleMask:(unsigned int)styleMask backing:(NSBackingStoreType)backingType defer:(BOOL)flag |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
266 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
267 |
/* Make our window subclass receive these application notifications */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
268 |
[ [ NSNotificationCenter defaultCenter ] addObserver:self |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
269 |
selector:@selector(appDidHide:) name:NSApplicationDidHideNotification object:NSApp ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
270 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
271 |
[ [ NSNotificationCenter defaultCenter ] addObserver:self |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
272 |
selector:@selector(appDidUnhide:) name:NSApplicationDidUnhideNotification object:NSApp ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
273 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
274 |
[ [ NSNotificationCenter defaultCenter ] addObserver:self |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
275 |
selector:@selector(appWillUnhide:) name:NSApplicationWillUnhideNotification object:NSApp ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
276 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
277 |
return [ super initWithContentRect:contentRect styleMask:styleMask backing:backingType defer:flag ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
278 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
279 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
280 |
@end |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
281 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
282 |
@implementation OTTD_QuartzWindowDelegate |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
283 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
284 |
- (void)setDriver:(WindowQuartzSubdriver*)drv |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
285 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
286 |
driver = drv; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
287 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
288 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
289 |
- (BOOL)windowShouldClose:(id)sender |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
290 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
291 |
HandleExitGameRequest(); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
292 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
293 |
return NO; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
294 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
295 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
296 |
- (void)windowDidBecomeKey:(NSNotification*)aNotification |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
297 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
298 |
driver->active = true; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
299 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
300 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
301 |
- (void)windowDidResignKey:(NSNotification*)aNotification |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
302 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
303 |
driver->active = false; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
304 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
305 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
306 |
- (void)windowDidBecomeMain:(NSNotification*)aNotification |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
307 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
308 |
driver->active = true; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
309 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
310 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
311 |
- (void)windowDidResignMain:(NSNotification*)aNotification |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
312 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
313 |
driver->active = false; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
314 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
315 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
316 |
@end |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
317 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
318 |
@implementation OTTD_QuartzView |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
319 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
320 |
- (void)setDriver:(WindowQuartzSubdriver*)drv |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
321 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
322 |
driver = drv; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
323 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
324 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
325 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
326 |
- (BOOL)isOpaque |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
327 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
328 |
return YES; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
329 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
330 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
331 |
- (void)drawRect:(NSRect)invalidRect |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
332 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
333 |
CGImageRef fullImage; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
334 |
CGImageRef clippedImage; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
335 |
NSRect rect; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
336 |
const NSRect* dirtyRects; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
337 |
int dirtyRectCount; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
338 |
int n; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
339 |
CGRect clipRect; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
340 |
CGRect blitRect; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
341 |
uint32 blitArea = 0; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
342 |
NSRect frameRect = [ self frame ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
343 |
CGContextRef viewContext = (CGContextRef)[ [ NSGraphicsContext currentContext ] graphicsPort ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
344 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
345 |
if (driver->cgcontext == NULL) return; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
346 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
347 |
CGContextSetShouldAntialias(viewContext, FALSE); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
348 |
CGContextSetInterpolationQuality(viewContext, kCGInterpolationNone); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
349 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
350 |
/* The obtained 'rect' is actually a union of all dirty rects, let's ask for an explicit list of rects instead */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
351 |
[ self getRectsBeingDrawn:&dirtyRects count:&dirtyRectCount ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
352 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
353 |
/* We need an Image in order to do blitting, but as we don't touch the context between this call and drawing no copying will actually be done here */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
354 |
fullImage = CGBitmapContextCreateImage(driver->cgcontext); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
355 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
356 |
/* Calculate total area we are blitting */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
357 |
for (n = 0; n < dirtyRectCount; n++) { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
358 |
blitArea += dirtyRects[n].size.width * dirtyRects[n].size.height; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
359 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
360 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
361 |
/* |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
362 |
* This might be completely stupid, but in my extremely subjective opinion it feels faster |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
363 |
* The point is, if we're blitting less than 50% of the dirty rect union then it's still a good idea to blit each dirty |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
364 |
* rect separately but if we blit more than that, it's just cheaper to blit the entire union in one pass. |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
365 |
* Feel free to remove or find an even better value than 50% ... / blackis |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
366 |
*/ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
367 |
if (blitArea / (float)(invalidRect.size.width * invalidRect.size.height) > 0.5f) { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
368 |
rect = invalidRect; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
369 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
370 |
blitRect.origin.x = rect.origin.x; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
371 |
blitRect.origin.y = rect.origin.y; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
372 |
blitRect.size.width = rect.size.width; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
373 |
blitRect.size.height = rect.size.height; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
374 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
375 |
clipRect.origin.x = rect.origin.x; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
376 |
clipRect.origin.y = frameRect.size.height - rect.origin.y - rect.size.height; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
377 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
378 |
clipRect.size.width = rect.size.width; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
379 |
clipRect.size.height = rect.size.height; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
380 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
381 |
/* Blit dirty part of image */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
382 |
clippedImage = CGImageCreateWithImageInRect(fullImage, clipRect); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
383 |
CGContextDrawImage(viewContext, blitRect, clippedImage); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
384 |
CGImageRelease(clippedImage); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
385 |
} else { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
386 |
for (n = 0; n < dirtyRectCount; n++) { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
387 |
rect = dirtyRects[n]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
388 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
389 |
blitRect.origin.x = rect.origin.x; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
390 |
blitRect.origin.y = rect.origin.y; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
391 |
blitRect.size.width = rect.size.width; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
392 |
blitRect.size.height = rect.size.height; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
393 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
394 |
clipRect.origin.x = rect.origin.x; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
395 |
clipRect.origin.y = frameRect.size.height - rect.origin.y - rect.size.height; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
396 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
397 |
clipRect.size.width = rect.size.width; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
398 |
clipRect.size.height = rect.size.height; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
399 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
400 |
/* Blit dirty part of image */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
401 |
clippedImage = CGImageCreateWithImageInRect(fullImage, clipRect); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
402 |
CGContextDrawImage(viewContext, blitRect, clippedImage); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
403 |
CGImageRelease(clippedImage); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
404 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
405 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
406 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
407 |
CGImageRelease(fullImage); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
408 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
409 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
410 |
@end |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
411 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
412 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
413 |
extern const char _openttd_revision[]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
414 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
415 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
416 |
void WindowQuartzSubdriver::GetDeviceInfo() |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
417 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
418 |
CFDictionaryRef cur_mode; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
419 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
420 |
/* Initialize the video settings; this data persists between mode switches */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
421 |
cur_mode = CGDisplayCurrentMode(kCGDirectMainDisplay); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
422 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
423 |
/* Gather some information that is useful to know about the display */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
424 |
CFNumberGetValue( |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
425 |
(const __CFNumber*)CFDictionaryGetValue(cur_mode, kCGDisplayWidth), |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
426 |
kCFNumberSInt32Type, &device_width |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
427 |
); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
428 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
429 |
CFNumberGetValue( |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
430 |
(const __CFNumber*)CFDictionaryGetValue(cur_mode, kCGDisplayHeight), |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
431 |
kCFNumberSInt32Type, &device_height |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
432 |
); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
433 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
434 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
435 |
bool WindowQuartzSubdriver::SetVideoMode(int width, int height) |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
436 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
437 |
char caption[50]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
438 |
NSString *nsscaption; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
439 |
unsigned int style; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
440 |
NSRect contentRect; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
441 |
BOOL isCustom = NO; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
442 |
bool ret; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
443 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
444 |
setup = true; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
445 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
446 |
GetDeviceInfo(); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
447 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
448 |
if (width > device_width) |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
449 |
width = device_width; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
450 |
if (height > device_height) |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
451 |
height = device_height; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
452 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
453 |
contentRect = NSMakeRect(0, 0, width, height); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
454 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
455 |
/* Check if we should recreate the window */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
456 |
if (window == nil) { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
457 |
OTTD_QuartzWindowDelegate *delegate; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
458 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
459 |
/* Set the window style */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
460 |
style = NSTitledWindowMask; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
461 |
style |= (NSMiniaturizableWindowMask | NSClosableWindowMask); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
462 |
style |= NSResizableWindowMask; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
463 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
464 |
/* Manually create a window, avoids having a nib file resource */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
465 |
window = [ [ OTTD_QuartzWindow alloc ] |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
466 |
initWithContentRect: contentRect |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
467 |
styleMask: style |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
468 |
backing: NSBackingStoreBuffered |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
469 |
defer: NO ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
470 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
471 |
if (window == nil) { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
472 |
DEBUG(driver, 0, "Could not create the Cocoa window."); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
473 |
setup = false; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
474 |
return false; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
475 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
476 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
477 |
[ window setDriver:this ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
478 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
479 |
snprintf(caption, sizeof(caption), "OpenTTD %s", _openttd_revision); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
480 |
nsscaption = [ [ NSString alloc ] initWithCString:caption ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
481 |
[ window setTitle: nsscaption ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
482 |
[ window setMiniwindowTitle: nsscaption ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
483 |
[ nsscaption release ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
484 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
485 |
[ window setAcceptsMouseMovedEvents: YES ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
486 |
[ window setViewsNeedDisplay: NO ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
487 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
488 |
[ window useOptimizedDrawing: YES ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
489 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
490 |
delegate = [ [ OTTD_QuartzWindowDelegate alloc ] init ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
491 |
[ delegate setDriver: this ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
492 |
[ window setDelegate: [ delegate autorelease ] ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
493 |
} else { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
494 |
/* We already have a window, just change its size */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
495 |
if (!isCustom) { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
496 |
[ window setContentSize: contentRect.size ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
497 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
498 |
// Ensure frame height - title bar height >= view height |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
499 |
contentRect.size.height = Clamp(height, 0, [ window frame ].size.height - 22 /* 22 is the height of title bar of window*/); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
500 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
501 |
if (qzview != nil) { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
502 |
height = contentRect.size.height; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
503 |
[ qzview setFrameSize: contentRect.size ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
504 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
505 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
506 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
507 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
508 |
window_width = width; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
509 |
window_height = height; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
510 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
511 |
[ window center ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
512 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
513 |
/* Only recreate the view if it doesn't already exist */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
514 |
if (qzview == nil) { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
515 |
qzview = [ [ OTTD_QuartzView alloc ] initWithFrame: contentRect ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
516 |
if (qzview == nil) { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
517 |
DEBUG(driver, 0, "Could not create the Quickdraw view."); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
518 |
setup = false; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
519 |
return false; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
520 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
521 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
522 |
[ qzview setDriver: this ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
523 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
524 |
[ qzview setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
525 |
[ window setContentView: qzview ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
526 |
[ qzview release ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
527 |
[ window makeKeyAndOrderFront:nil ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
528 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
529 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
530 |
ret = WindowResized(); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
531 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
532 |
UpdatePalette(0, 256); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
533 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
534 |
setup = false; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
535 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
536 |
return ret; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
537 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
538 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
539 |
void WindowQuartzSubdriver::BlitIndexedToView32(int left, int top, int right, int bottom) |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
540 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
541 |
const uint32* pal = palette; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
542 |
const uint8* src = (uint8*)pixel_buffer; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
543 |
uint32* dst = (uint32*)image_buffer; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
544 |
uint width = window_width; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
545 |
uint pitch = window_width; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
546 |
int x; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
547 |
int y; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
548 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
549 |
for (y = top; y < bottom; y++) { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
550 |
for (x = left; x < right; x++) { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
551 |
dst[y * pitch + x] = pal[src[y * width + x]]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
552 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
553 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
554 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
555 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
556 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
557 |
WindowQuartzSubdriver::WindowQuartzSubdriver(int bpp) |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
558 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
559 |
window_width = 0; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
560 |
window_height = 0; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
561 |
buffer_depth = bpp; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
562 |
image_buffer = NULL; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
563 |
pixel_buffer = NULL; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
564 |
active = false; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
565 |
setup = false; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
566 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
567 |
window = nil; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
568 |
qzview = nil; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
569 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
570 |
cgcontext = NULL; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
571 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
572 |
num_dirty_rects = MAX_DIRTY_RECTS; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
573 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
574 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
575 |
WindowQuartzSubdriver::~WindowQuartzSubdriver() |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
576 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
577 |
QZ_ShowMouse(); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
578 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
579 |
/* Release window mode resources */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
580 |
if (window != nil) [ window close ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
581 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
582 |
CGContextRelease(cgcontext); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
583 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
584 |
free(image_buffer); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
585 |
free(pixel_buffer); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
586 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
587 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
588 |
void WindowQuartzSubdriver::Draw() |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
589 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
590 |
int i; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
591 |
NSRect dirtyrect; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
592 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
593 |
/* Check if we need to do anything */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
594 |
if (num_dirty_rects == 0 || |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
595 |
[ window isMiniaturized ]) { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
596 |
return; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
597 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
598 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
599 |
if (num_dirty_rects >= MAX_DIRTY_RECTS) { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
600 |
num_dirty_rects = 1; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
601 |
dirty_rects[0].left = 0; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
602 |
dirty_rects[0].top = 0; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
603 |
dirty_rects[0].right = window_width; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
604 |
dirty_rects[0].bottom = window_height; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
605 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
606 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
607 |
/* Build the region of dirty rectangles */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
608 |
for (i = 0; i < num_dirty_rects; i++) { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
609 |
/* We only need to blit in indexed mode since in 32bpp mode the game draws directly to the image. */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
610 |
if(buffer_depth == 8) { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
611 |
BlitIndexedToView32( |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
612 |
dirty_rects[i].left, |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
613 |
dirty_rects[i].top, |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
614 |
dirty_rects[i].right, |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
615 |
dirty_rects[i].bottom |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
616 |
); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
617 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
618 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
619 |
dirtyrect.origin.x = dirty_rects[i].left; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
620 |
dirtyrect.origin.y = window_height - dirty_rects[i].bottom; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
621 |
dirtyrect.size.width = dirty_rects[i].right - dirty_rects[i].left; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
622 |
dirtyrect.size.height = dirty_rects[i].bottom - dirty_rects[i].top; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
623 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
624 |
/* drawRect will be automatically called by Mac OS X during next update cycle, and then blitting will occur */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
625 |
[ qzview setNeedsDisplayInRect: dirtyrect ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
626 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
627 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
628 |
//DrawResizeIcon(); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
629 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
630 |
num_dirty_rects = 0; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
631 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
632 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
633 |
void WindowQuartzSubdriver::MakeDirty(int left, int top, int width, int height) |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
634 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
635 |
if (num_dirty_rects < MAX_DIRTY_RECTS) { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
636 |
dirty_rects[num_dirty_rects].left = left; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
637 |
dirty_rects[num_dirty_rects].top = top; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
638 |
dirty_rects[num_dirty_rects].right = left + width; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
639 |
dirty_rects[num_dirty_rects].bottom = top + height; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
640 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
641 |
num_dirty_rects++; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
642 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
643 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
644 |
void WindowQuartzSubdriver::UpdatePalette(uint first_color, uint num_colors) |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
645 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
646 |
uint i; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
647 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
648 |
if (buffer_depth != 8) |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
649 |
return; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
650 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
651 |
for (i = first_color; i < first_color + num_colors; i++) { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
652 |
uint32 clr = 0xff000000; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
653 |
clr |= (uint32)_cur_palette[i].r << 16; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
654 |
clr |= (uint32)_cur_palette[i].g << 8; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
655 |
clr |= (uint32)_cur_palette[i].b; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
656 |
palette[i] = clr; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
657 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
658 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
659 |
num_dirty_rects = MAX_DIRTY_RECTS; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
660 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
661 |
|
8127
a20f557b7081
(svn r11688) -Fix [FS#1581]: Compilation was broken on OS X again.
egladil
parents:
8092
diff
changeset
|
662 |
uint WindowQuartzSubdriver::ListModes(OTTD_Point* modes, uint max_modes) |
7943
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
663 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
664 |
if (max_modes == 0) return 0; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
665 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
666 |
modes[0].x = window_width; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
667 |
modes[0].y = window_height; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
668 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
669 |
return 1; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
670 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
671 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
672 |
bool WindowQuartzSubdriver::ChangeResolution(int w, int h) |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
673 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
674 |
int old_width = window_width; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
675 |
int old_height = window_height; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
676 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
677 |
if (SetVideoMode(w, h)) |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
678 |
return true; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
679 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
680 |
if (old_width != 0 && old_height != 0) |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
681 |
SetVideoMode(old_width, old_height); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
682 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
683 |
return false; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
684 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
685 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
686 |
/* Convert local coordinate to window server (CoreGraphics) coordinate */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
687 |
CGPoint WindowQuartzSubdriver::PrivateLocalToCG(NSPoint* p) |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
688 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
689 |
CGPoint cgp; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
690 |
|
7946
c9f6b66454a4
(svn r11501) -Fix: [OSX] This remedies a problem with right click scrolling that was introduced in r11492.
egladil
parents:
7943
diff
changeset
|
691 |
p->y = window_height - p->y; |
7943
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
692 |
*p = [ qzview convertPoint:*p toView: nil ]; |
7965
e651c71175d6
(svn r11521) -Codechange: [OSX] Check what the running os version is in a cleaner way.
egladil
parents:
7952
diff
changeset
|
693 |
|
7943
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
694 |
*p = [ window convertBaseToScreen:*p ]; |
7946
c9f6b66454a4
(svn r11501) -Fix: [OSX] This remedies a problem with right click scrolling that was introduced in r11492.
egladil
parents:
7943
diff
changeset
|
695 |
p->y = device_height - p->y; |
7943
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
696 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
697 |
cgp.x = p->x; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
698 |
cgp.y = p->y; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
699 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
700 |
return cgp; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
701 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
702 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
703 |
NSPoint WindowQuartzSubdriver::GetMouseLocation(NSEvent *event) |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
704 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
705 |
NSPoint pt; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
706 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
707 |
pt = [ event locationInWindow ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
708 |
pt = [ qzview convertPoint:pt fromView:nil ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
709 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
710 |
pt.y = window_height - pt.y; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
711 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
712 |
return pt; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
713 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
714 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
715 |
bool WindowQuartzSubdriver::MouseIsInsideView(NSPoint *pt) |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
716 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
717 |
return [ qzview mouse:*pt inRect:[ qzview bounds ] ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
718 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
719 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
720 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
721 |
/* This function makes the *game region* of the window 100% opaque. |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
722 |
* The genie effect uses the alpha component. Otherwise, |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
723 |
* it doesn't seem to matter what value it has. |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
724 |
*/ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
725 |
void WindowQuartzSubdriver::SetPortAlphaOpaque() |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
726 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
727 |
uint32* pixels = (uint32*)image_buffer; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
728 |
uint32 pitch = window_width; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
729 |
int x, y; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
730 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
731 |
for (y = 0; y < window_height; y++) |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
732 |
for (x = 0; x < window_width; x++) { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
733 |
pixels[y * pitch + x] |= 0xFF000000; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
734 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
735 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
736 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
737 |
bool WindowQuartzSubdriver::WindowResized() |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
738 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
739 |
if (window == nil || qzview == nil) return true; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
740 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
741 |
NSRect newframe = [ qzview frame ]; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
742 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
743 |
window_width = newframe.size.width; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
744 |
window_height = newframe.size.height; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
745 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
746 |
/* Create Core Graphics Context */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
747 |
free(image_buffer); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
748 |
image_buffer = (uint32*)malloc(window_width * window_height * 4); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
749 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
750 |
CGContextRelease(cgcontext); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
751 |
cgcontext = CGBitmapContextCreate( |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
752 |
image_buffer, // data |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
753 |
window_width, // width |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
754 |
window_height, // height |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
755 |
8, // bits per component |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
756 |
window_width * 4, // bytes per row |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
757 |
QZ_GetCorrectColorSpace(), // color space |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
758 |
kCGImageAlphaNoneSkipFirst | kCGBitmapByteOrder32Host |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
759 |
); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
760 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
761 |
assert(cgcontext != NULL); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
762 |
CGContextSetShouldAntialias(cgcontext, FALSE); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
763 |
CGContextSetAllowsAntialiasing(cgcontext, FALSE); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
764 |
CGContextSetInterpolationQuality(cgcontext, kCGInterpolationNone); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
765 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
766 |
if (buffer_depth == 8) { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
767 |
free(pixel_buffer); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
768 |
pixel_buffer = malloc(window_width * window_height); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
769 |
if (pixel_buffer == NULL) { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
770 |
DEBUG(driver, 0, "Failed to allocate pixel buffer"); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
771 |
return false; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
772 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
773 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
774 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
775 |
QZ_GameSizeChanged(); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
776 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
777 |
/* Redraw screen */ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
778 |
num_dirty_rects = MAX_DIRTY_RECTS; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
779 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
780 |
return true; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
781 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
782 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
783 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
784 |
CocoaSubdriver *QZ_CreateWindowQuartzSubdriver(int width, int height, int bpp) |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
785 |
{ |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
786 |
WindowQuartzSubdriver *ret; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
787 |
|
8092
233af5e53af9
(svn r11653) -Feature: [OSX] Allow windowed mode subdrivers to be disabled at compile time.
egladil
parents:
8039
diff
changeset
|
788 |
if (!MacOSVersionIsAtLeast(10, 4, 0)) { |
233af5e53af9
(svn r11653) -Feature: [OSX] Allow windowed mode subdrivers to be disabled at compile time.
egladil
parents:
8039
diff
changeset
|
789 |
DEBUG(driver, 0, "The cocoa quartz subdriver requires Mac OS X 10.4 or later."); |
7965
e651c71175d6
(svn r11521) -Codechange: [OSX] Check what the running os version is in a cleaner way.
egladil
parents:
7952
diff
changeset
|
790 |
return NULL; |
e651c71175d6
(svn r11521) -Codechange: [OSX] Check what the running os version is in a cleaner way.
egladil
parents:
7952
diff
changeset
|
791 |
} |
e651c71175d6
(svn r11521) -Codechange: [OSX] Check what the running os version is in a cleaner way.
egladil
parents:
7952
diff
changeset
|
792 |
|
7943
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
793 |
if (bpp != 8 && bpp != 32) { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
794 |
DEBUG(driver, 0, "The cocoa quartz subdriver only supports 8 and 32 bpp."); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
795 |
return NULL; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
796 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
797 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
798 |
ret = new WindowQuartzSubdriver(bpp); |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
799 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
800 |
if (!ret->ChangeResolution(width, height)) { |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
801 |
delete ret; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
802 |
return NULL; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
803 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
804 |
|
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
805 |
return ret; |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
806 |
} |
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
807 |
|
8092
233af5e53af9
(svn r11653) -Feature: [OSX] Allow windowed mode subdrivers to be disabled at compile time.
egladil
parents:
8039
diff
changeset
|
808 |
|
7984
f01c62b32738
(svn r11540) -Fix: [OSX] Don't try to compile the quartz video driver on OSX 10.3. It will fail
bjarni
parents:
7965
diff
changeset
|
809 |
#endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4 */ |
8092
233af5e53af9
(svn r11653) -Feature: [OSX] Allow windowed mode subdrivers to be disabled at compile time.
egladil
parents:
8039
diff
changeset
|
810 |
#endif /* ENABLE_COCOA_QUARTZ */ |
7943
8517bbaacb7e
(svn r11498) -Add [FS#1411]: [OSX] Added support for using Quartz instead of Quickdraw in windowed mode on OS X 10.4 and higher. Based on a patch by blackis.
egladil
parents:
diff
changeset
|
811 |
#endif /* WITH_COCOA */ |