/********************************************************************** * X11DRV_CreateCompatibleDC */ static BOOL X11DRV_CreateCompatibleDC( PHYSDEV orig, PHYSDEV *pdev ) { X11DRV_PDEVICE *physDev = create_x11_physdev( stock_bitmap_pixmap ); if (!physDev) return FALSE; physDev->depth = 1; SetRect( &physDev->dc_rect, 0, 0, 1, 1 ); push_dc_driver( pdev, &physDev->dev, &x11drv_funcs ); if (orig) return TRUE; /* we already went through Xrender if we have an orig device */ if (xrender_funcs && !xrender_funcs->pCreateCompatibleDC( NULL, pdev )) return FALSE; return TRUE; }
/********************************************************************** * X11DRV_CreateDC */ static BOOL X11DRV_CreateDC( PHYSDEV *pdev, LPCWSTR driver, LPCWSTR device, LPCWSTR output, const DEVMODEW* initData ) { X11DRV_PDEVICE *physDev = create_x11_physdev( root_window ); if (!physDev) return FALSE; physDev->depth = default_visual.depth; physDev->color_shifts = &X11DRV_PALETTE_default_shifts; physDev->dc_rect = get_virtual_screen_rect(); OffsetRect( &physDev->dc_rect, -physDev->dc_rect.left, -physDev->dc_rect.top ); push_dc_driver( pdev, &physDev->dev, &x11drv_funcs ); if (xrender_funcs && !xrender_funcs->pCreateDC( pdev, driver, device, output, initData )) return FALSE; return TRUE; }
/********************************************************************** * X11DRV_CreateDC */ static BOOL X11DRV_CreateDC( PHYSDEV *pdev, LPCWSTR driver, LPCWSTR device, LPCWSTR output, const DEVMODEW* initData ) { const struct gdi_dc_funcs *glx_funcs = get_glx_driver(); X11DRV_PDEVICE *physDev = create_x11_physdev( root_window ); if (!physDev) return FALSE; physDev->depth = screen_depth; physDev->color_shifts = &X11DRV_PALETTE_default_shifts; SetRect( &physDev->dc_rect, 0, 0, virtual_screen_rect.right - virtual_screen_rect.left, virtual_screen_rect.bottom - virtual_screen_rect.top ); push_dc_driver( pdev, &physDev->dev, &x11drv_funcs ); if (xrender_funcs && !xrender_funcs->pCreateDC( pdev, driver, device, output, initData )) return FALSE; if (glx_funcs && !glx_funcs->pCreateDC( pdev, driver, device, output, initData )) return FALSE; return TRUE; }