static void CheckSetDisplayMode(_THIS, SDL_VideoDisplay * display, DFB_DisplayData * data, SDL_DisplayMode * mode) { SDL_DFB_DEVICEDATA(_this); DFBDisplayLayerConfig config; DFBDisplayLayerConfigFlags failed; SDL_DFB_CHECKERR(data->layer->SetCooperativeLevel(data->layer, DLSCL_ADMINISTRATIVE)); config.width = mode->w; config.height = mode->h; config.pixelformat = DirectFB_SDLToDFBPixelFormat(mode->format); config.flags = DLCONF_WIDTH | DLCONF_HEIGHT | DLCONF_PIXELFORMAT; if (devdata->use_yuv_underlays) { config.flags |= DLCONF_OPTIONS; config.options = DLOP_ALPHACHANNEL; } failed = 0; data->layer->TestConfiguration(data->layer, &config, &failed); SDL_DFB_CHECKERR(data->layer->SetCooperativeLevel(data->layer, DLSCL_SHARED)); if (failed == 0) { SDL_AddDisplayMode(display, mode); SDL_DFB_LOG("Mode %d x %d Added\n", mode->w, mode->h); } else SDL_DFB_ERR("Mode %d x %d not available: %x\n", mode->w, mode->h, failed); return; error: return; }
int Android_VideoInit(_THIS) { SDL_DisplayMode mode; mode.format = Android_ScreenFormat; mode.w = Android_ScreenWidth; mode.h = Android_ScreenHeight; mode.refresh_rate = Android_ScreenRate; mode.driverdata = NULL; if (SDL_AddBasicVideoDisplay(&mode) < 0) { return -1; } SDL_AddDisplayMode(&_this->displays[0], &mode); Android_InitKeyboard(); Android_InitTouch(); Android_InitMouse(); /* We're done! */ return 0; }
void WIN_GetDisplayModes(_THIS, SDL_VideoDisplay * display) { SDL_DisplayData *data = (SDL_DisplayData *) display->driverdata; DWORD i; SDL_DisplayMode mode; for (i = 0;; ++i) { if (!WIN_GetDisplayMode(_this, data->DeviceName, i, &mode)) { break; } if (SDL_ISPIXELFORMAT_INDEXED(mode.format)) { /* We don't support palettized modes now */ SDL_free(mode.driverdata); continue; } if (mode.format != SDL_PIXELFORMAT_UNKNOWN) { if (!SDL_AddDisplayMode(display, &mode)) { SDL_free(mode.driverdata); } } else { SDL_free(mode.driverdata); } } }
int OFFSCREEN_VideoInit(_THIS) { SDL_DisplayMode mode; SDL_Mouse *mouse = NULL; /* Use a fake 32-bpp desktop mode */ mode.format = SDL_PIXELFORMAT_RGB888; mode.w = 1024; mode.h = 768; mode.refresh_rate = 0; mode.driverdata = NULL; if (SDL_AddBasicVideoDisplay(&mode) < 0) { return -1; } SDL_zero(mode); SDL_AddDisplayMode(&_this->displays[0], &mode); /* Init mouse */ mouse = SDL_GetMouse(); /* This function needs to be implemented by every driver */ mouse->GetGlobalMouseState = OFFSCREEN_GetGlobalMouseState; /* We're done! */ return 0; }
void NDS_GetDisplayModes(_THIS, SDL_VideoDisplay * display) { SDL_DisplayMode *mode; for (mode = display_modes; mode->w; mode++) { mode->driverdata = mode; /* point back to self */ SDL_AddDisplayMode(display, mode); } }
void ANDROID_GetDisplayModes(_THIS, SDL_VideoDisplay * display) { SDL_DisplayMode mode; mode.w = SDL_ANDROID_sWindowWidth; mode.h = SDL_ANDROID_sWindowHeight; mode.refresh_rate = 0; mode.format = SDL_PIXELFORMAT_RGB565; mode.driverdata = NULL; SDL_AddDisplayMode(display, &mode); }
int Android_VideoInit(_THIS) { SDL_DisplayMode mode; mode.format = Android_ScreenFormat; mode.w = Android_ScreenWidth; mode.h = Android_ScreenHeight; mode.refresh_rate = Android_ScreenRate; mode.driverdata = NULL; // Urho3D: merge patch found in https://bugzilla.libsdl.org/show_bug.cgi?id=2291 submitted by Thomas Faller SDL_PixelFormat pixelFormat; Uint32 mask; int bitCount; /* We need to set color sizes */ if(!SDL_InitFormat(&pixelFormat, mode.format)){ for(mask = pixelFormat.Rmask >> pixelFormat.Rshift, bitCount = 0; mask > 0; mask >>= 1) bitCount += 1; SDL_GL_SetAttribute(SDL_GL_RED_SIZE, bitCount); for(mask = pixelFormat.Gmask >> pixelFormat.Gshift, bitCount = 0; mask > 0; mask >>= 1) bitCount += 1; SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, bitCount); for(mask = pixelFormat.Bmask >> pixelFormat.Bshift, bitCount = 0; mask > 0; mask >>= 1) bitCount += 1; SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, bitCount); for(mask = pixelFormat.Amask >> pixelFormat.Ashift, bitCount = 0; mask > 0; mask >>= 1) bitCount += 1; SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, bitCount); } if (SDL_AddBasicVideoDisplay(&mode) < 0) { return -1; } SDL_AddDisplayMode(&_this->displays[0], &mode); Android_InitKeyboard(); Android_InitTouch(); Android_InitMouse(); /* We're done! */ return 0; }
int WIN_VideoInit(_THIS) { SDL_DisplayMode mode; mode.format = SDL_PIXELFORMAT_ABGR8888; get_screen_size(mode.w, mode.h); mode.refresh_rate = 0; mode.driverdata = NULL; if (SDL_AddBasicVideoDisplay(&mode) < 0) { return -1; } SDL_AddDisplayMode(&_this->displays[0], &mode); return 0; }
void WIN_GetDisplayModes(_THIS, SDL_VideoDisplay * display) { SDL_DisplayData *data = (SDL_DisplayData *) display->driverdata; DWORD i; SDL_DisplayMode mode; for (i = 0;; ++i) { if (!WIN_GetDisplayMode(data->DeviceName, i, &mode)) { break; } if (mode.format != SDL_PIXELFORMAT_UNKNOWN) { if (!SDL_AddDisplayMode(display, &mode)) { SDL_free(mode.driverdata); } } } }
void PSL1GHT_GetDisplayModes(_THIS, SDL_VideoDisplay * display) { deprintf(1, "+PSL1GHT_GetDisplayModes()\n"); unsigned int nummodes; nummodes = sizeof(ps3fb_modedb) / sizeof(SDL_DisplayMode); int n; for (n=0; n<nummodes; ++n) { /* Get driver specific mode data */ ps3fb_modedb[n].driverdata = &ps3fb_data[n]; /* Add DisplayMode to list */ printf("Adding resolution %u x %u\n", ps3fb_modedb[n].w, ps3fb_modedb[n].h); SDL_AddDisplayMode(display, &ps3fb_modedb[n]); } printf("-PSL1GHT_GetDisplayModes()\n"); }
int DUMMY_VideoInit(_THIS) { SDL_DisplayMode mode; /* Use a fake 32-bpp desktop mode */ mode.format = SDL_PIXELFORMAT_RGB888; mode.w = 1024; mode.h = 768; mode.refresh_rate = 0; mode.driverdata = NULL; SDL_AddBasicVideoDisplay(&mode); SDL_AddRenderDriver(0, &SDL_DUMMY_RenderDriver); SDL_zero(mode); SDL_AddDisplayMode(0, &mode); /* We're done! */ return 0; }
int DUMMY_VideoInit(_THIS) { SDL_DisplayMode mode; /* Use a fake 32-bpp desktop mode */ mode.format = SDL_PIXELFORMAT_RGB888; mode.w = 1024; mode.h = 768; mode.refresh_rate = 0; mode.driverdata = NULL; if (SDL_AddBasicVideoDisplay(&mode) < 0) { return -1; } SDL_zero(mode); SDL_AddDisplayMode(&_this->displays[0], &mode); /* We're done! */ return 0; }
int NACL_VideoInit(_THIS) { SDL_VideoData *driverdata = (SDL_VideoData *) _this->driverdata; SDL_DisplayMode mode; SDL_zero(mode); mode.format = driverdata->format; mode.w = driverdata->w; mode.h = driverdata->h; mode.refresh_rate = 0; mode.driverdata = NULL; if (SDL_AddBasicVideoDisplay(&mode) < 0) { return -1; } SDL_AddDisplayMode(&_this->displays[0], &mode); PSInterfaceInit(); driverdata->instance = PSGetInstanceId(); driverdata->ppb_graphics = PSInterfaceGraphics3D(); driverdata->ppb_message_loop = PSInterfaceMessageLoop(); driverdata->ppb_core = PSInterfaceCore(); driverdata->ppb_fullscreen = PSInterfaceFullscreen(); driverdata->ppb_instance = PSInterfaceInstance(); driverdata->ppb_image_data = PSInterfaceImageData(); driverdata->ppb_view = PSInterfaceView(); driverdata->ppb_var = PSInterfaceVar(); driverdata->ppb_input_event = (PPB_InputEvent*) PSGetInterface(PPB_INPUT_EVENT_INTERFACE); driverdata->ppb_keyboard_input_event = (PPB_KeyboardInputEvent*) PSGetInterface(PPB_KEYBOARD_INPUT_EVENT_INTERFACE); driverdata->ppb_mouse_input_event = (PPB_MouseInputEvent*) PSGetInterface(PPB_MOUSE_INPUT_EVENT_INTERFACE); driverdata->ppb_wheel_input_event = (PPB_WheelInputEvent*) PSGetInterface(PPB_WHEEL_INPUT_EVENT_INTERFACE); driverdata->ppb_touch_input_event = (PPB_TouchInputEvent*) PSGetInterface(PPB_TOUCH_INPUT_EVENT_INTERFACE); driverdata->message_loop = driverdata->ppb_message_loop->Create(driverdata->instance); PSEventSetFilter(PSE_ALL); /* We're done! */ return 0; }
static void display_handle_mode(void *data, struct wl_output *output, uint32_t flags, int width, int height, int refresh) { SDL_VideoDisplay *display = data; SDL_DisplayMode mode; SDL_zero(mode); mode.w = width; mode.h = height; mode.refresh_rate = refresh / 1000; // mHz to Hz SDL_AddDisplayMode(display, &mode); if (flags & WL_OUTPUT_MODE_CURRENT) { display->current_mode = mode; display->desktop_mode = mode; } }
void VIVANTE_GetDisplayModes(_THIS, SDL_VideoDisplay * display) { /* Only one display mode available, the current one */ SDL_AddDisplayMode(display, &display->current_mode); }