Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Date: Wed, 31 Dec 2003 21:55:30 +0100
From: Max Horn Subject: SDL: video/quartz cleanup while doing some experimental changes in the quartz code, I was annoyed by having to recompile that one big .o file over and over again. So I decided to finally realize one TODO: properly splitting the code over multiple files :-). With two exceptions, I didn't make code changes, only rearranged files and added new headers. Since there are several new files, making a patch didn't work out so well, so I decided to just send you all the new & modified files. The one source change I made is related to showing/hiding the mouse. I renamed cursor_visible to cursor_should_be_visible and cursor_hidden to cursor_visible; I think that makes reading the code easier. Then I added two new functions: QZ_ShowMouse and QZ_HideMouse. They help manage cursor_visible (the former 'cursor_hidden'). Finally I replaced the Carbon ShowCursor/HiderCuror calls by [NSCursor hide] and [NSCursor unhide]. The API docs are not conclusive, but it might be that with those the "cursor_visible" (former 'cursor_hidden') hack may not be necessary anymore; however so far I didn't test this hypothesis, so I left that in. The other change was to remove in_foreground and use [NSApp isActive] instead: Manually keeping track of whether we are in the foreground is error prone. This should work better in some corner cases.
- Loading branch information
Showing
11 changed files
with
983 additions
and
862 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
/* | ||
SDL - Simple DirectMedia Layer | ||
Copyright (C) 1997-2003 Sam Lantinga | ||
This library is free software; you can redistribute it and/or | ||
modify it under the terms of the GNU Library General Public | ||
License as published by the Free Software Foundation; either | ||
version 2 of the License, or (at your option) any later version. | ||
This library is distributed in the hope that it will be useful, | ||
but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
Library General Public License for more details. | ||
You should have received a copy of the GNU Library General Public | ||
License along with this library; if not, write to the Free | ||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
Sam Lantinga | ||
slouken@libsdl.org | ||
*/ | ||
|
||
/* | ||
Obscuring code: maximum number of windows above ours (inclusive) | ||
Note: this doesn't work too well in practice and should be | ||
phased out when we add OpenGL 2D acceleration. It was never | ||
enabled in the first place, so this shouldn't be a problem ;-) | ||
*/ | ||
#define kMaxWindows 256 | ||
|
||
/* Some of the Core Graphics Server API for obscuring code */ | ||
#define kCGSWindowLevelTop 2147483632 | ||
#define kCGSWindowLevelDockIconDrag 500 | ||
#define kCGSWindowLevelDockMenu 101 | ||
#define kCGSWindowLevelMenuIgnore 21 | ||
#define kCGSWindowLevelMenu 20 | ||
#define kCGSWindowLevelDockLabel 12 | ||
#define kCGSWindowLevelDockIcon 11 | ||
#define kCGSWindowLevelDock 10 | ||
#define kCGSWindowLevelUtility 3 | ||
#define kCGSWindowLevelNormal 0 | ||
|
||
/* | ||
For completeness; We never use these window levels, they are always below us | ||
#define kCGSWindowLevelMBarShadow -20 | ||
#define kCGSWindowLevelDesktopPicture -2147483647 | ||
#define kCGSWindowLevelDesktop -2147483648 | ||
*/ | ||
|
||
typedef CGError CGSError; | ||
typedef long CGSWindowCount; | ||
typedef void * CGSConnectionID; | ||
typedef int CGSWindowID; | ||
typedef CGSWindowID* CGSWindowIDList; | ||
typedef CGWindowLevel CGSWindowLevel; | ||
typedef NSRect CGSRect; | ||
|
||
extern CGSConnectionID _CGSDefaultConnection (); | ||
|
||
extern CGSError CGSGetOnScreenWindowList (CGSConnectionID cid, | ||
CGSConnectionID owner, | ||
CGSWindowCount listCapacity, | ||
CGSWindowIDList list, | ||
CGSWindowCount *listCount); | ||
|
||
extern CGSError CGSGetScreenRectForWindow (CGSConnectionID cid, | ||
CGSWindowID wid, | ||
CGSRect *rect); | ||
|
||
extern CGWindowLevel CGSGetWindowLevel (CGSConnectionID cid, | ||
CGSWindowID wid, | ||
CGSWindowLevel *level); | ||
|
||
extern CGSError CGSDisplayHWFill (CGDirectDisplayID id, unsigned int x, unsigned int y, | ||
unsigned int w, unsigned int h, unsigned int color); | ||
|
||
extern CGSError CGSDisplayCanHWFill (CGDirectDisplayID id); | ||
|
||
extern CGSError CGSGetMouseEnabledFlags (CGSConnectionID cid, CGSWindowID wid, int *flags); | ||
|
||
int CGSDisplayHWSync (CGDirectDisplayID id); | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.