(svn r21576) -Codechange: [OSX] Deduplicate code by moving the handling of the view for windowed screen drivers to a common class

replace/41b28d7194a279bdc17475d4fbe2ea6ec885a466
planetmaker 14 years ago
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…
Cancel
Save