(svn r21574) -Codechange: [OSX] Move the variable declaration of the screen drivers to the generic class, deduplicating code

replace/41b28d7194a279bdc17475d4fbe2ea6ec885a466
planetmaker 14 years ago
parent 574e0830f1
commit 7ab04792c5

@ -42,9 +42,41 @@ public:
};
/**
* Generic display driver for cocoa
* On grounds to not duplicate some code, it contains a few variables
* which are not used by all device drivers.
*/
class CocoaSubdriver {
public:
int device_width;
int device_height;
int device_depth;
int window_width;
int window_height;
int window_pitch;
int buffer_depth;
void *pixel_buffer; // used for direct pixel access
void *window_buffer; // has colour translation from palette to screen
id window; // pointer to window object
# define MAX_DIRTY_RECTS 100
Rect dirty_rects[MAX_DIRTY_RECTS];
int num_dirty_rects;
uint32 palette[256];
bool active;
bool setup;
id cocoaview; // pointer to view object
/* Separate driver vars for Quarz
* Needed here in order to avoid much code duplication */
CGContextRef cgcontext;
/* Driver methods */
virtual ~CocoaSubdriver() {}
virtual void Draw(bool force_update = false) = 0;

@ -149,22 +149,11 @@ bool QZ_CanDisplay8bpp()
}
class FullscreenSubdriver: public CocoaSubdriver {
int device_width;
int device_height;
int device_depth;
int window_pitch;
void *window_buffer;
void *pixel_buffer;
CGDirectDisplayID display_id; ///< 0 == main display (only support single display)
CFDictionaryRef cur_mode; ///< current mode of the display
CFDictionaryRef save_mode; ///< original mode of the display
CGDirectPaletteRef palette; ///< palette of an 8-bit display
#define MAX_DIRTY_RECTS 100
Rect dirty_rects[MAX_DIRTY_RECTS];
int num_dirty_rects;
/* Gamma functions to try to hide the flash from a res switch
* Fade the display from normal to black

@ -84,37 +84,7 @@ class WindowQuartzSubdriver;
@end
class WindowQuartzSubdriver: public CocoaSubdriver {
int device_width;
int device_height;
int window_width;
int window_height;
int buffer_depth;
void *pixel_buffer;
void *window_buffer;
id window;
#define MAX_DIRTY_RECTS 100
Rect dirty_rects[MAX_DIRTY_RECTS];
int num_dirty_rects;
uint32 palette[256];
public:
bool active;
bool setup;
id cocoaview;
CGContextRef cgcontext;
private:
void GetDeviceInfo();
bool SetVideoMode(int width, int height);
/**
* This function copies 8bpp pixels from the screen buffer in 32bpp windowed mode.
*
@ -125,6 +95,9 @@ private:
*/
void BlitIndexedToView32(int left, int top, int right, int bottom);
virtual void GetDeviceInfo();
virtual bool SetVideoMode(int width, int height);
public:
WindowQuartzSubdriver(int bpp);
virtual ~WindowQuartzSubdriver();

@ -73,38 +73,7 @@ class WindowQuickdrawSubdriver;
@end
class WindowQuickdrawSubdriver: public CocoaSubdriver {
int device_width;
int device_height;
int device_depth;
int window_width;
int window_height;
int window_pitch;
int buffer_depth;
void *pixel_buffer;
void *window_buffer;
id window;
#define MAX_DIRTY_RECTS 100
Rect dirty_rects[MAX_DIRTY_RECTS];
int num_dirty_rects;
uint32 palette[256];
public:
bool active;
bool setup;
id cocoaview;
private:
void GetDeviceInfo();
bool SetVideoMode(int width, int height);
/**
* This function copies 32bpp pixels from the screen buffer in 16bpp windowed mode.
*
@ -138,6 +107,8 @@ private:
inline void BlitToView(int left, int top, int right, int bottom);
void DrawResizeIcon();
virtual void GetDeviceInfo();
virtual bool SetVideoMode(int width, int height);
public:
WindowQuickdrawSubdriver(int bpp);

Loading…
Cancel
Save