mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-13 02:52:37 +00:00
(svn r21576) -Codechange: [OSX] Deduplicate code by moving the handling of the view for windowed screen drivers to a common class
This commit is contained in:
parent
26575ab8f8
commit
e38f96d609
@ -124,6 +124,15 @@ void QZ_HideMouse();
|
||||
|
||||
uint QZ_ListModes(OTTD_Point *modes, uint max_modes, CGDirectDisplayID display_id, int display_depth);
|
||||
|
||||
/* Subclass of NSView to fix Quartz rendering */
|
||||
@interface OTTD_CocoaView : NSView {
|
||||
CocoaSubdriver *driver;
|
||||
}
|
||||
- (void)setDriver:(CocoaSubdriver*)drv;
|
||||
- (void)drawRect:(NSRect)rect;
|
||||
- (BOOL)isOpaque;
|
||||
@end
|
||||
|
||||
/** Delegate for our NSWindow to send ask for quit on close */
|
||||
@interface OTTD_CocoaWindowDelegate : NSObject {
|
||||
CocoaSubdriver *driver;
|
||||
|
@ -407,6 +407,36 @@ void cocoaReleaseAutoreleasePool()
|
||||
[ _ottd_autorelease_pool release ];
|
||||
}
|
||||
|
||||
|
||||
|
||||
@implementation OTTD_CocoaView
|
||||
/**
|
||||
* Initialize the driver
|
||||
*/
|
||||
- (void)setDriver:(CocoaSubdriver*)drv
|
||||
{
|
||||
driver = drv;
|
||||
}
|
||||
/**
|
||||
* Define the opaqueness of the window / screen
|
||||
* @return opaqueness of window / screen
|
||||
*/
|
||||
- (BOOL)isOpaque
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
/**
|
||||
* Draws a rectangle on the screen.
|
||||
* It's overwritten by the individual drivers but must be defined
|
||||
*/
|
||||
- (void)drawRect:(NSRect)invalidRect
|
||||
{
|
||||
return;
|
||||
}
|
||||
@end
|
||||
|
||||
|
||||
|
||||
@implementation OTTD_CocoaWindowDelegate
|
||||
/** Initialize the video driver */
|
||||
- (void)setDriver:(CocoaSubdriver*)drv
|
||||
|
@ -62,15 +62,10 @@ class WindowQuartzSubdriver;
|
||||
- (id)initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)styleMask backing:(NSBackingStoreType)backingType defer:(BOOL)flag;
|
||||
@end
|
||||
|
||||
/* Subclass of NSView to fix Quartz rendering */
|
||||
@interface OTTD_QuartzView : NSView {
|
||||
WindowQuartzSubdriver *driver;
|
||||
}
|
||||
|
||||
/* Subclass of OTTD_CocoaView to fix Quartz rendering */
|
||||
@interface OTTD_QuartzView : OTTD_CocoaView
|
||||
- (void)setDriver:(WindowQuartzSubdriver*)drv;
|
||||
|
||||
- (void)drawRect:(NSRect)rect;
|
||||
- (BOOL)isOpaque;
|
||||
- (void)drawRect:(NSRect)invalidRect;
|
||||
@end
|
||||
|
||||
class WindowQuartzSubdriver: public CocoaSubdriver {
|
||||
@ -239,13 +234,6 @@ static CGColorSpaceRef QZ_GetCorrectColorSpace()
|
||||
{
|
||||
driver = drv;
|
||||
}
|
||||
|
||||
|
||||
- (BOOL)isOpaque
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
- (void)drawRect:(NSRect)invalidRect
|
||||
{
|
||||
if (driver->cgcontext == NULL) return;
|
||||
|
Loading…
Reference in New Issue
Block a user