21 #include "../../SDL_internal.h" 23 #if SDL_VIDEO_DRIVER_NACL 25 #include "ppapi/c/pp_errors.h" 26 #include "ppapi/c/pp_instance.h" 27 #include "ppapi_simple/ps.h" 28 #include "ppapi_simple/ps_interface.h" 29 #include "ppapi_simple/ps_event.h" 30 #include "nacl_io/nacl_io.h" 37 #include "../SDL_sysvideo.h" 38 #include "../../events/SDL_events_c.h" 40 #define NACLVID_DRIVER_NAME "nacl" 66 PSInterfaceGraphics3D()->ResizeBuffers(context, width, height);
74 static int NACL_VideoInit(
_THIS);
75 static void NACL_VideoQuit(
_THIS);
77 static int NACL_Available(
void) {
78 return PSGetInstanceId() != 0;
116 device->
free = NACL_DeleteDevice;
134 NACLVID_DRIVER_NAME,
"SDL Native Client Video Driver",
135 NACL_Available, NACL_CreateDevice
138 int NACL_VideoInit(
_THIS) {
144 mode.w = driverdata->
w;
145 mode.h = driverdata->
h;
146 mode.refresh_rate = 0;
155 driverdata->
instance = PSGetInstanceId();
158 driverdata->
ppb_core = PSInterfaceCore();
162 driverdata->
ppb_view = PSInterfaceView();
163 driverdata->
ppb_var = PSInterfaceVar();
164 driverdata->
ppb_input_event = (PPB_InputEvent*) PSGetInterface(PPB_INPUT_EVENT_INTERFACE);
165 driverdata->
ppb_keyboard_input_event = (PPB_KeyboardInputEvent*) PSGetInterface(PPB_KEYBOARD_INPUT_EVENT_INTERFACE);
166 driverdata->
ppb_mouse_input_event = (PPB_MouseInputEvent*) PSGetInterface(PPB_MOUSE_INPUT_EVENT_INTERFACE);
167 driverdata->
ppb_wheel_input_event = (PPB_WheelInputEvent*) PSGetInterface(PPB_WHEEL_INPUT_EVENT_INTERFACE);
168 driverdata->
ppb_touch_input_event = (PPB_TouchInputEvent*) PSGetInterface(PPB_TOUCH_INPUT_EVENT_INTERFACE);
173 PSEventSetFilter(PSE_ALL);
179 void NACL_VideoQuit(
_THIS) {
void NACL_SetWindowTitle(_THIS, SDL_Window *window)
const PPB_MouseInputEvent * ppb_mouse_input_event
const PPB_TouchInputEvent * ppb_touch_input_event
const PPB_WheelInputEvent * ppb_wheel_input_event
const PPB_Instance * ppb_instance
const PPB_Graphics3D * ppb_graphics
int SDL_AddBasicVideoDisplay(const SDL_DisplayMode *desktop_mode)
const PPB_InputEvent * ppb_input_event
int(* GL_SetSwapInterval)(_THIS, int interval)
static screen_context_t context
The structure that defines a display mode.
SDL_GLContext NACL_GLES_CreateContext(_THIS, SDL_Window *window)
int SDL_SendWindowEvent(SDL_Window *window, Uint8 windowevent, int data1, int data2)
const PPB_View * ppb_view
VideoBootStrap NACL_bootstrap
int(* GL_LoadLibrary)(_THIS, const char *path)
GLint GLint GLsizei width
int(* SetDisplayMode)(_THIS, SDL_VideoDisplay *display, SDL_DisplayMode *mode)
static SDL_VideoDevice * _this
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
static SDL_AudioDeviceID device
SDL_GLContext(* GL_CreateContext)(_THIS, SDL_Window *window)
int NACL_GLES_SwapWindow(_THIS, SDL_Window *window)
int(* GL_MakeCurrent)(_THIS, SDL_Window *window, SDL_GLContext context)
int NACL_CreateWindow(_THIS, SDL_Window *window)
SDL_VideoDisplay * displays
void(* DestroyWindow)(_THIS, SDL_Window *window)
int NACL_GLES_GetSwapInterval(_THIS)
void NACL_SetScreenResolution(int width, int height, Uint32 format)
int NACL_GLES_LoadLibrary(_THIS, const char *path)
const PPB_ImageData * ppb_image_data
void(* GL_UnloadLibrary)(_THIS)
void NACL_PumpEvents(_THIS)
const PPB_KeyboardInputEvent * ppb_keyboard_input_event
int(* CreateSDLWindow)(_THIS, SDL_Window *window)
#define SDL_OutOfMemory()
#define SDL_GL_GetCurrentContext
int NACL_GLES_MakeCurrent(_THIS, SDL_Window *window, SDL_GLContext context)
GLint GLint GLsizei GLsizei height
void NACL_DestroyWindow(_THIS, SDL_Window *window)
void NACL_GLES_DeleteContext(_THIS, SDL_GLContext context)
void NACL_GLES_UnloadLibrary(_THIS)
const PPB_MessageLoop * ppb_message_loop
int(* GL_SwapWindow)(_THIS, SDL_Window *window)
const PPB_Fullscreen * ppb_fullscreen
SDL_bool SDL_AddDisplayMode(SDL_VideoDisplay *display, const SDL_DisplayMode *mode)
const PPB_Core * ppb_core
void(* GL_DeleteContext)(_THIS, SDL_GLContext context)
void(* SetWindowTitle)(_THIS, SDL_Window *window)
int(* GL_GetSwapInterval)(_THIS)
int NACL_GLES_SetSwapInterval(_THIS, int interval)
void *(* GL_GetProcAddress)(_THIS, const char *proc)
void(* PumpEvents)(_THIS)
void * NACL_GLES_GetProcAddress(_THIS, const char *proc)