Go to the documentation of this file.
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)
74 device->VideoInit = Cocoa_VideoInit;
75 device->VideoQuit = Cocoa_VideoQuit;
114 #if SDL_VIDEO_OPENGL_CGL
115 device->GL_LoadLibrary = Cocoa_GL_LoadLibrary;
116 device->GL_GetProcAddress = Cocoa_GL_GetProcAddress;
117 device->GL_UnloadLibrary = Cocoa_GL_UnloadLibrary;
118 device->GL_CreateContext = Cocoa_GL_CreateContext;
119 device->GL_MakeCurrent = Cocoa_GL_MakeCurrent;
120 device->GL_GetDrawableSize = Cocoa_GL_GetDrawableSize;
121 device->GL_SetSwapInterval = Cocoa_GL_SetSwapInterval;
122 device->GL_GetSwapInterval = Cocoa_GL_GetSwapInterval;
123 device->GL_SwapWindow = Cocoa_GL_SwapWindow;
124 device->GL_DeleteContext = Cocoa_GL_DeleteContext;
125 #elif SDL_VIDEO_OPENGL_EGL
126 device->GL_LoadLibrary = Cocoa_GLES_LoadLibrary;
127 device->GL_GetProcAddress = Cocoa_GLES_GetProcAddress;
128 device->GL_UnloadLibrary = Cocoa_GLES_UnloadLibrary;
129 device->GL_CreateContext = Cocoa_GLES_CreateContext;
130 device->GL_MakeCurrent = Cocoa_GLES_MakeCurrent;
131 device->GL_SetSwapInterval = Cocoa_GLES_SetSwapInterval;
132 device->GL_GetSwapInterval = Cocoa_GLES_GetSwapInterval;
133 device->GL_SwapWindow = Cocoa_GLES_SwapWindow;
134 device->GL_DeleteContext = Cocoa_GLES_DeleteContext;
138 device->Vulkan_LoadLibrary = Cocoa_Vulkan_LoadLibrary;
139 device->Vulkan_UnloadLibrary = Cocoa_Vulkan_UnloadLibrary;
140 device->Vulkan_GetInstanceExtensions = Cocoa_Vulkan_GetInstanceExtensions;
141 device->Vulkan_CreateSurface = Cocoa_Vulkan_CreateSurface;
142 device->Vulkan_GetDrawableSize = Cocoa_Vulkan_GetDrawableSize;
153 device->free = Cocoa_DeleteDevice;
159 "cocoa",
"SDL Cocoa video driver",
160 Cocoa_Available, Cocoa_CreateDevice
165 Cocoa_VideoInit(
_THIS)
176 data->screensaver_use_iopm =
floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_6;
179 if (!
data->swaplock) {
187 Cocoa_VideoQuit(
_THIS)
202 NSBitmapImageRep *imgrep;
212 imgrep = [[[NSBitmapImageRep alloc] initWithBitmapDataPlanes: NULL
213 pixelsWide: converted->w
214 pixelsHigh: converted->h
219 colorSpaceName: NSDeviceRGBColorSpace
220 bytesPerRow: converted->pitch
221 bitsPerPixel: converted->format->BitsPerPixel] autorelease];
228 pixels = [imgrep bitmapData];
241 img = [[[NSImage alloc] initWithSize: NSMakeSize(surface->w, surface->h)] autorelease];
243 [img addRepresentation: imgrep];
255 void SDL_NSLog(
const char *
text)
void Cocoa_InitMouse(_THIS)
SDL_WindowShaper * Cocoa_CreateShaper(SDL_Window *window)
void Cocoa_StartTextInput(_THIS)
void Cocoa_SuspendScreenSaver(_THIS)
A collection of pixels used in software blitting.
#define SDL_ConvertSurfaceFormat
void Cocoa_SetWindowTitle(_THIS, SDL_Window *window)
int Cocoa_SetClipboardText(_THIS, const char *text)
void Cocoa_SetWindowIcon(_THIS, SDL_Window *window, SDL_Surface *icon)
void Cocoa_MaximizeWindow(_THIS, SDL_Window *window)
int Cocoa_GetDisplayDPI(_THIS, SDL_VideoDisplay *display, float *ddpi, float *hpdi, float *vdpi)
void Cocoa_SetWindowPosition(_THIS, SDL_Window *window)
NSImage * Cocoa_CreateImage(SDL_Surface *surface)
void Cocoa_StopTextInput(_THIS)
VideoBootStrap COCOA_bootstrap
int Cocoa_CreateWindow(_THIS, SDL_Window *window)
void Cocoa_RestoreWindow(_THIS, SDL_Window *window)
int Cocoa_SetWindowGammaRamp(_THIS, SDL_Window *window, const Uint16 *ramp)
int Cocoa_GetDisplayBounds(_THIS, SDL_VideoDisplay *display, SDL_Rect *rect)
char * Cocoa_GetClipboardText(_THIS)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
void Cocoa_QuitMouse(_THIS)
void Cocoa_MinimizeWindow(_THIS, SDL_Window *window)
void Cocoa_AcceptDragAndDrop(SDL_Window *window, SDL_bool accept)
void Cocoa_SetWindowMaximumSize(_THIS, SDL_Window *window)
GLfloat GLfloat GLfloat alpha
void Cocoa_InitKeyboard(_THIS)
#define SDL_GetHintBoolean
static SDL_VideoDevice * _this
int Cocoa_GetDisplayUsableBounds(_THIS, SDL_VideoDisplay *display, SDL_Rect *rect)
int Cocoa_SetDisplayMode(_THIS, SDL_VideoDisplay *display, SDL_DisplayMode *mode)
void Cocoa_SetWindowSize(_THIS, SDL_Window *window)
void Cocoa_RaiseWindow(_THIS, SDL_Window *window)
int Cocoa_ResizeWindowShape(SDL_Window *window)
int Cocoa_CreateWindowFrom(_THIS, SDL_Window *window, const void *data)
void Cocoa_GetDisplayModes(_THIS, SDL_VideoDisplay *display)
#define SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES
A variable that dictates policy for fullscreen Spaces on Mac OS X.
void Cocoa_SetWindowFullscreen(_THIS, SDL_Window *window, SDL_VideoDisplay *display, SDL_bool fullscreen)
void Cocoa_HideWindow(_THIS, SDL_Window *window)
void Cocoa_QuitModes(_THIS)
static char text[MAX_TEXT_LENGTH]
void Cocoa_QuitKeyboard(_THIS)
void Cocoa_DestroyWindow(_THIS, SDL_Window *window)
GLint GLint GLsizei GLsizei GLsizei GLint GLenum GLenum const GLvoid * pixels
#define SDL_OutOfMemory()
void Cocoa_SetWindowBordered(_THIS, SDL_Window *window, SDL_bool bordered)
void Cocoa_SetWindowGrab(_THIS, SDL_Window *window, SDL_bool grabbed)
void Cocoa_RegisterApp(void)
void Cocoa_SetWindowMinimumSize(_THIS, SDL_Window *window)
int Cocoa_SetWindowShape(SDL_WindowShaper *shaper, SDL_Surface *shape, SDL_WindowShapeMode *shape_mode)
void Cocoa_SetTextInputRect(_THIS, SDL_Rect *rect)
void Cocoa_PumpEvents(_THIS)
int Cocoa_SetWindowOpacity(_THIS, SDL_Window *window, float opacity)
int Cocoa_GetWindowGammaRamp(_THIS, SDL_Window *window, Uint16 *ramp)
int Cocoa_SetWindowHitTest(SDL_Window *window, SDL_bool enabled)
SDL_bool Cocoa_HasClipboardText(_THIS)
void Cocoa_InitModes(_THIS)
static SDL_AudioDeviceID device
SDL_bool Cocoa_GetWindowWMInfo(_THIS, SDL_Window *window, struct SDL_SysWMinfo *info)
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 Cocoa_ShowWindow(_THIS, SDL_Window *window)
void Cocoa_SetWindowResizable(_THIS, SDL_Window *window, SDL_bool resizable)