void DirectFB_AddRenderDriver(_THIS) { int i; for (i = 0; i < _this->num_displays; i++) SDL_AddRenderDriver(i, &DirectFB_RenderDriver); }
int PSL1GHT_VideoInit(_THIS) { SDL_DisplayMode mode; SDL_DeviceData *devdata = NULL; devdata = (SDL_DeviceData*) SDL_calloc(1, sizeof(SDL_DeviceData)); if (devdata == NULL) { /* memory allocation problem */ SDL_OutOfMemory(); return -1; } _this->driverdata = devdata; PSL1GHT_InitSysEvent(_this); initializeGPU(devdata); PSL1GHT_InitModes(_this); SDL_AddRenderDriver(&_this->displays[0], &SDL_PSL1GHT_RenderDriver); gcmSetFlipMode(GCM_FLIP_VSYNC); // Wait for VSYNC to flip /* We're done! */ return 0; }
void GDI_AddRenderDriver(_THIS) { int i; for (i = 0; i < _this->num_displays; ++i) { SDL_AddRenderDriver(&_this->displays[i], &GDI_RenderDriver); } }
void gf_addrenderdriver(_THIS) { uint32_t it; for (it=0; it<_this->num_displays; it++) { SDL_AddRenderDriver(it, &gf_renderdriver); } }
void D3D_AddRenderDriver(_THIS) { SDL_VideoData *data = (SDL_VideoData *) _this->driverdata; SDL_RendererInfo *info = &D3D_RenderDriver.info; if (data->d3d) { int i, j; int formats[] = { SDL_PIXELFORMAT_INDEX8, SDL_PIXELFORMAT_RGB332, SDL_PIXELFORMAT_RGB444, SDL_PIXELFORMAT_RGB555, SDL_PIXELFORMAT_ARGB4444, SDL_PIXELFORMAT_ARGB1555, SDL_PIXELFORMAT_RGB565, SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_ARGB2101010, }; for (i = 0; i < _this->num_displays; ++i) { SDL_VideoDisplay *display = &_this->displays[i]; SDL_DisplayMode *mode = &display->desktop_mode; UINT adapter = D3D_FindAdapter(data->d3d, display); /* Get the matching D3D adapter for this display */ info->num_texture_formats = 0; for (j = 0; j < SDL_arraysize(formats); ++j) { if (D3D_IsTextureFormatAvailable (data->d3d, adapter, mode->format, formats[j])) { info->texture_formats[info->num_texture_formats++] = formats[j]; } } info->texture_formats[info->num_texture_formats++] = SDL_PIXELFORMAT_YV12; info->texture_formats[info->num_texture_formats++] = SDL_PIXELFORMAT_IYUV; info->texture_formats[info->num_texture_formats++] = SDL_PIXELFORMAT_YUY2; info->texture_formats[info->num_texture_formats++] = SDL_PIXELFORMAT_UYVY; info->texture_formats[info->num_texture_formats++] = SDL_PIXELFORMAT_YVYU; SDL_AddRenderDriver(display, &D3D_RenderDriver); } } }
void DDRAW_AddRenderDriver(_THIS) { SDL_VideoData *data = (SDL_VideoData *) _this->driverdata; SDL_RendererInfo *info = &DDRAW_RenderDriver.info; SDL_DisplayMode *mode = &SDL_CurrentDisplay->desktop_mode; if (data->ddraw) { int i; int formats[] = { SDL_PIXELFORMAT_INDEX8, SDL_PIXELFORMAT_RGB332, SDL_PIXELFORMAT_RGB444, SDL_PIXELFORMAT_RGB555, SDL_PIXELFORMAT_ARGB4444, SDL_PIXELFORMAT_ARGB1555, SDL_PIXELFORMAT_RGB565, SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_ARGB2101010, }; for (i = 0; i < SDL_arraysize(formats); ++i) { if (DDRAW_IsTextureFormatAvailable (data->ddraw, mode->format, formats[i])) { info->texture_formats[info->num_texture_formats++] = formats[i]; } } //TODO the fourcc formats should get fetched from IDirectDraw::GetFourCCCodes info->texture_formats[info->num_texture_formats++] = SDL_PIXELFORMAT_YV12; info->texture_formats[info->num_texture_formats++] = SDL_PIXELFORMAT_IYUV; info->texture_formats[info->num_texture_formats++] = SDL_PIXELFORMAT_YUY2; info->texture_formats[info->num_texture_formats++] = SDL_PIXELFORMAT_UYVY; info->texture_formats[info->num_texture_formats++] = SDL_PIXELFORMAT_YVYU; for (i = 0; i < _this->num_displays; ++i) SDL_AddRenderDriver(&_this->displays[i], &DDRAW_RenderDriver); } }
void X11_AddRenderDriver(_THIS) { SDL_RendererInfo *info = &X11_RenderDriver.info; SDL_DisplayMode *mode = &SDL_CurrentDisplay->desktop_mode; int i; info->texture_formats[info->num_texture_formats++] = mode->format; info->texture_formats[info->num_texture_formats++] = SDL_PIXELFORMAT_YV12; info->texture_formats[info->num_texture_formats++] = SDL_PIXELFORMAT_IYUV; info->texture_formats[info->num_texture_formats++] = SDL_PIXELFORMAT_YUY2; info->texture_formats[info->num_texture_formats++] = SDL_PIXELFORMAT_UYVY; info->texture_formats[info->num_texture_formats++] = SDL_PIXELFORMAT_YVYU; for (i = 0; i < _this->num_displays; ++i) { SDL_AddRenderDriver(&_this->displays[i], &X11_RenderDriver); } }
void D3D_AddRenderDriver(_THIS) { SDL_VideoData *data = (SDL_VideoData *) _this->driverdata; SDL_RendererInfo *info = &D3D_RenderDriver.info; SDL_DisplayMode *mode = &SDL_CurrentDisplay.desktop_mode; if (data->d3d) { int i; int formats[] = { SDL_PIXELFORMAT_INDEX8, SDL_PIXELFORMAT_RGB332, SDL_PIXELFORMAT_RGB444, SDL_PIXELFORMAT_RGB555, SDL_PIXELFORMAT_ARGB4444, SDL_PIXELFORMAT_ARGB1555, SDL_PIXELFORMAT_RGB565, SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_ARGB8888, SDL_PIXELFORMAT_ARGB2101010, }; for (i = 0; i < SDL_arraysize(formats); ++i) { if (D3D_IsTextureFormatAvailable (data->d3d, mode->format, formats[i])) { info->texture_formats[info->num_texture_formats++] = formats[i]; } } info->texture_formats[info->num_texture_formats++] = SDL_PIXELFORMAT_YV12; info->texture_formats[info->num_texture_formats++] = SDL_PIXELFORMAT_IYUV; info->texture_formats[info->num_texture_formats++] = SDL_PIXELFORMAT_YUY2; info->texture_formats[info->num_texture_formats++] = SDL_PIXELFORMAT_UYVY; info->texture_formats[info->num_texture_formats++] = SDL_PIXELFORMAT_YVYU; SDL_AddRenderDriver(0, &D3D_RenderDriver); } }
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 PS3_VideoInit(_THIS) { int i; deprintf(1, "PS3_VideoInit()\n"); SDL_VideoData *data = (SDL_VideoData *) _this->driverdata; SDL_DisplayMode mode; /* Create SPU fb_parms and thread structure */ data->fb_parms = (struct fb_writer_parms_t *) memalign(16, sizeof(struct fb_writer_parms_t)); data->fb_thread_data = (spu_data_t *) malloc(sizeof(spu_data_t)); if (data->fb_parms == NULL || data->fb_thread_data == NULL) { SDL_OutOfMemory(); return -1; } data->fb_thread_data->program = fb_writer_spu; data->fb_thread_data->program_name = "fb_writer_spu"; data->fb_thread_data->argp = (void *)data->fb_parms; data->fb_thread_data->keepalive = 1; data->fb_thread_data->booted = 0; SPE_Start(data->fb_thread_data); /* Open the device */ data->fbdev = open(PS3DEV, O_RDWR); if (data->fbdev < 0) { SDL_SetError("[PS3] Unable to open device %s", PS3DEV); return -1; } /* Take control of frame buffer from kernel, for details see * http://felter.org/wesley/files/ps3/linux-20061110-docs/ApplicationProgrammingEnvironment.html * kernel will no longer flip the screen itself */ ioctl(data->fbdev, PS3FB_IOCTL_ON, 0); /* Unblank screen */ ioctl(data->fbdev, FBIOBLANK, 0); struct fb_fix_screeninfo fb_finfo; if (ioctl(data->fbdev, FBIOGET_FSCREENINFO, &fb_finfo)) { SDL_SetError("[PS3] Can't get fixed screeninfo"); return (0); } /* Note: on PS3, fb_finfo.smem_len is enough for double buffering */ if ((data->frame_buffer = (uint8_t *)mmap(0, fb_finfo.smem_len, PROT_READ | PROT_WRITE, MAP_SHARED, data->fbdev, 0)) == (uint8_t *) - 1) { SDL_SetError("[PS3] Can't mmap for %s", PS3DEV); return (0); } else { /* Enable double buffering */ } /* Blank screen */ memset(data->frame_buffer, 0x00, fb_finfo.smem_len); PS3_InitModes(_this); for (i = 0; i < _this->num_displays; ++i) { SDL_AddRenderDriver(&_this->displays[i], &SDL_PS3_RenderDriver); } /* We're done! */ return 0; }