21 #include "../../SDL_internal.h" 23 #if SDL_VIDEO_DRIVER_COCOA 33 static int Cocoa_VideoInit(
_THIS);
34 static void Cocoa_VideoQuit(
_THIS);
52 Cocoa_CreateDevice(
int devindex)
113 #if SDL_VIDEO_OPENGL_CGL 124 #elif SDL_VIDEO_OPENGL_EGL 152 device->
free = Cocoa_DeleteDevice;
158 "cocoa",
"SDL Cocoa video driver",
159 Cocoa_Available, Cocoa_CreateDevice
164 Cocoa_VideoInit(
_THIS)
181 Cocoa_VideoQuit(
_THIS)
193 NSBitmapImageRep *imgrep;
203 imgrep = [[[NSBitmapImageRep alloc] initWithBitmapDataPlanes: NULL
204 pixelsWide: converted->w
205 pixelsHigh: converted->h
210 colorSpaceName: NSDeviceRGBColorSpace
211 bytesPerRow: converted->pitch
212 bitsPerPixel: converted->format->BitsPerPixel] autorelease];
219 pixels = [imgrep bitmapData];
224 for (i = (surface->
h * surface->
w); i--; ) {
226 pixels[0] = (
Uint8)(((
Uint16)pixels[0] * alpha) / 255);
232 img = [[[NSImage alloc] initWithSize: NSMakeSize(surface->w, surface->h)] autorelease];
234 [img addRepresentation: imgrep];
246 void SDL_NSLog(
const char *
text)
void Cocoa_GetDisplayModes(_THIS, SDL_VideoDisplay *display)
int(* Vulkan_LoadLibrary)(_THIS, const char *path)
int Cocoa_CreateWindowFrom(_THIS, SDL_Window *window, const void *data)
void Cocoa_SetTextInputRect(_THIS, SDL_Rect *rect)
void Cocoa_RegisterApp(void)
int(* GetDisplayDPI)(_THIS, SDL_VideoDisplay *display, float *ddpi, float *hdpi, float *vdpi)
void Cocoa_InitMouse(_THIS)
#define SDL_ConvertSurfaceFormat
void(* RestoreWindow)(_THIS, SDL_Window *window)
char * Cocoa_GetClipboardText(_THIS)
void Cocoa_MinimizeWindow(_THIS, SDL_Window *window)
int(* SetWindowHitTest)(SDL_Window *window, SDL_bool enabled)
void Cocoa_SetWindowIcon(_THIS, SDL_Window *window, SDL_Surface *icon)
void Cocoa_SetWindowMaximumSize(_THIS, SDL_Window *window)
void Cocoa_SetWindowResizable(_THIS, SDL_Window *window, SDL_bool resizable)
void Cocoa_SetWindowBordered(_THIS, SDL_Window *window, SDL_bool bordered)
A collection of pixels used in software blitting.
int(* GL_SetSwapInterval)(_THIS, int interval)
void(* ShowWindow)(_THIS, SDL_Window *window)
void(* StartTextInput)(_THIS)
void(* SetWindowSize)(_THIS, SDL_Window *window)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
void Cocoa_SuspendScreenSaver(_THIS)
void Cocoa_SetWindowTitle(_THIS, SDL_Window *window)
void Cocoa_SetWindowPosition(_THIS, SDL_Window *window)
void Cocoa_StartTextInput(_THIS)
int(* GL_LoadLibrary)(_THIS, const char *path)
GLfloat GLfloat GLfloat alpha
int Cocoa_GetDisplayUsableBounds(_THIS, SDL_VideoDisplay *display, SDL_Rect *rect)
int(* SetDisplayMode)(_THIS, SDL_VideoDisplay *display, SDL_DisplayMode *mode)
#define SDL_GetHintBoolean
void(* SetWindowBordered)(_THIS, SDL_Window *window, SDL_bool bordered)
void(* GL_GetDrawableSize)(_THIS, SDL_Window *window, int *w, int *h)
void Cocoa_QuitKeyboard(_THIS)
static SDL_VideoDevice * _this
void Cocoa_RestoreWindow(_THIS, SDL_Window *window)
int Cocoa_SetClipboardText(_THIS, const char *text)
SDL_bool Cocoa_HasClipboardText(_THIS)
void(* HideWindow)(_THIS, SDL_Window *window)
static SDL_AudioDeviceID device
int Cocoa_SetWindowShape(SDL_WindowShaper *shaper, SDL_Surface *shape, SDL_WindowShapeMode *shape_mode)
void(* RaiseWindow)(_THIS, SDL_Window *window)
int(* SetWindowShape)(SDL_WindowShaper *shaper, SDL_Surface *shape, SDL_WindowShapeMode *shape_mode)
void Cocoa_ShowWindow(_THIS, SDL_Window *window)
void(* SetTextInputRect)(_THIS, SDL_Rect *rect)
SDL_bool(* Vulkan_GetInstanceExtensions)(_THIS, SDL_Window *window, unsigned *count, const char **names)
SDL_bool(* GetWindowWMInfo)(_THIS, SDL_Window *window, struct SDL_SysWMinfo *info)
int Cocoa_SetDisplayMode(_THIS, SDL_VideoDisplay *display, SDL_DisplayMode *mode)
NSImage * Cocoa_CreateImage(SDL_Surface *surface)
SDL_GLContext(* GL_CreateContext)(_THIS, SDL_Window *window)
void(* Vulkan_GetDrawableSize)(_THIS, SDL_Window *window, int *w, int *h)
SDL_bool(* Vulkan_CreateSurface)(_THIS, SDL_Window *window, VkInstance instance, VkSurfaceKHR *surface)
void Cocoa_QuitMouse(_THIS)
int(* GL_MakeCurrent)(_THIS, SDL_Window *window, SDL_GLContext context)
void Cocoa_PumpEvents(_THIS)
int Cocoa_SetWindowGammaRamp(_THIS, SDL_Window *window, const Uint16 *ramp)
void Cocoa_DestroyWindow(_THIS, SDL_Window *window)
#define SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES
A variable that dictates policy for fullscreen Spaces on Mac OS X.
void Cocoa_RaiseWindow(_THIS, SDL_Window *window)
void(* Vulkan_UnloadLibrary)(_THIS)
SDL_bool Cocoa_GetWindowWMInfo(_THIS, SDL_Window *window, struct SDL_SysWMinfo *info)
BOOL screensaver_use_iopm
void(* SetWindowMinimumSize)(_THIS, SDL_Window *window)
int Cocoa_GetDisplayDPI(_THIS, SDL_VideoDisplay *display, float *ddpi, float *hpdi, float *vdpi)
int(* GetDisplayBounds)(_THIS, SDL_VideoDisplay *display, SDL_Rect *rect)
void(* DestroyWindow)(_THIS, SDL_Window *window)
void(* StopTextInput)(_THIS)
SDL_WindowShaper * Cocoa_CreateShaper(SDL_Window *window)
void(* SetWindowIcon)(_THIS, SDL_Window *window, SDL_Surface *icon)
int Cocoa_SetWindowOpacity(_THIS, SDL_Window *window, float opacity)
GLint GLint GLsizei GLsizei GLsizei GLint GLenum GLenum const GLvoid * pixels
void Cocoa_SetWindowFullscreen(_THIS, SDL_Window *window, SDL_VideoDisplay *display, SDL_bool fullscreen)
void(* GL_UnloadLibrary)(_THIS)
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int in i)
void(* GetDisplayModes)(_THIS, SDL_VideoDisplay *display)
void(* SetWindowMaximumSize)(_THIS, SDL_Window *window)
int(* CreateSDLWindow)(_THIS, SDL_Window *window)
#define SDL_OutOfMemory()
int Cocoa_CreateWindow(_THIS, SDL_Window *window)
SDL_WindowShaper *(* CreateShaper)(SDL_Window *window)
int Cocoa_GetWindowGammaRamp(_THIS, SDL_Window *window, Uint16 *ramp)
static char text[MAX_TEXT_LENGTH]
int(* ResizeWindowShape)(SDL_Window *window)
int(* SetWindowOpacity)(_THIS, SDL_Window *window, float opacity)
void(* SetWindowPosition)(_THIS, SDL_Window *window)
int(* GL_SwapWindow)(_THIS, SDL_Window *window)
int(* GetWindowGammaRamp)(_THIS, SDL_Window *window, Uint16 *ramp)
void Cocoa_SetWindowSize(_THIS, SDL_Window *window)
void(* MinimizeWindow)(_THIS, SDL_Window *window)
void Cocoa_InitKeyboard(_THIS)
int Cocoa_ResizeWindowShape(SDL_Window *window)
void Cocoa_StopTextInput(_THIS)
VideoBootStrap COCOA_bootstrap
SDL_bool(* HasClipboardText)(_THIS)
SDL_ShapeDriver shape_driver
int(* CreateSDLWindowFrom)(_THIS, SDL_Window *window, const void *data)
void(* SetWindowFullscreen)(_THIS, SDL_Window *window, SDL_VideoDisplay *display, SDL_bool fullscreen)
void Cocoa_HideWindow(_THIS, SDL_Window *window)
int Cocoa_GetDisplayBounds(_THIS, SDL_VideoDisplay *display, SDL_Rect *rect)
void(* GL_DeleteContext)(_THIS, SDL_GLContext context)
void Cocoa_SetWindowGrab(_THIS, SDL_Window *window, SDL_bool grabbed)
char *(* GetClipboardText)(_THIS)
void(* SetWindowTitle)(_THIS, SDL_Window *window)
void(* SetWindowResizable)(_THIS, SDL_Window *window, SDL_bool resizable)
int(* GetDisplayUsableBounds)(_THIS, SDL_VideoDisplay *display, SDL_Rect *rect)
int(* GL_GetSwapInterval)(_THIS)
void(* MaximizeWindow)(_THIS, SDL_Window *window)
int(* SetClipboardText)(_THIS, const char *text)
void Cocoa_QuitModes(_THIS)
int(* SetWindowGammaRamp)(_THIS, SDL_Window *window, const Uint16 *ramp)
void(* SuspendScreenSaver)(_THIS)
void Cocoa_InitModes(_THIS)
void(* SetWindowGrab)(_THIS, SDL_Window *window, SDL_bool grabbed)
void *(* GL_GetProcAddress)(_THIS, const char *proc)
void Cocoa_MaximizeWindow(_THIS, SDL_Window *window)
void(* PumpEvents)(_THIS)
int Cocoa_SetWindowHitTest(SDL_Window *window, SDL_bool enabled)
void Cocoa_SetWindowMinimumSize(_THIS, SDL_Window *window)