xrender: Remove findFormatForVisual()
Use XRenderUtils::findPictFormat() instead.
This commit is contained in:
parent
3a47b1c1c0
commit
ada5d02170
1 changed files with 4 additions and 40 deletions
|
@ -56,42 +56,6 @@ ScreenPaintData SceneXrender::screen_paint;
|
||||||
#define FIXED_TO_DOUBLE(f) ((double) ((f) / 65536.0))
|
#define FIXED_TO_DOUBLE(f) ((double) ((f) / 65536.0))
|
||||||
|
|
||||||
|
|
||||||
static xcb_render_pictformat_t findFormatForVisual(xcb_visualid_t visual)
|
|
||||||
{
|
|
||||||
static QHash<xcb_visualid_t, xcb_render_pictformat_t> s_cache;
|
|
||||||
|
|
||||||
if (xcb_render_pictformat_t format = s_cache.value(visual, 0)) {
|
|
||||||
return format;
|
|
||||||
}
|
|
||||||
if (!s_cache.isEmpty()) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
ScopedCPointer<xcb_render_query_pict_formats_reply_t> formats(xcb_render_query_pict_formats_reply(
|
|
||||||
connection(), xcb_render_query_pict_formats_unchecked(connection()), NULL));
|
|
||||||
if (!formats) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
int screen = QX11Info::appScreen();
|
|
||||||
for (xcb_render_pictscreen_iterator_t sit = xcb_render_query_pict_formats_screens_iterator(formats.data());
|
|
||||||
sit.rem;
|
|
||||||
--screen, xcb_render_pictscreen_next(&sit)) {
|
|
||||||
if (screen != 0) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
for (xcb_render_pictdepth_iterator_t dit = xcb_render_pictscreen_depths_iterator(sit.data);
|
|
||||||
dit.rem;
|
|
||||||
xcb_render_pictdepth_next(&dit)) {
|
|
||||||
for (xcb_render_pictvisual_iterator_t vit = xcb_render_pictdepth_visuals_iterator(dit.data);
|
|
||||||
vit.rem;
|
|
||||||
xcb_render_pictvisual_next(&vit)) {
|
|
||||||
s_cache.insert(vit.data->visual, vit.data->format);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return s_cache.value(visual, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
//****************************************
|
//****************************************
|
||||||
// XRenderBackend
|
// XRenderBackend
|
||||||
//****************************************
|
//****************************************
|
||||||
|
@ -193,7 +157,7 @@ void X11XRenderBackend::init(bool createOverlay)
|
||||||
setFailed("Failed getting window attributes for overlay window");
|
setFailed("Failed getting window attributes for overlay window");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
m_format = findFormatForVisual(attribs->visual);
|
m_format = XRenderUtils::findPictFormat(attribs->visual);
|
||||||
if (m_format == 0) {
|
if (m_format == 0) {
|
||||||
setFailed("Failed to find XRender format for overlay window");
|
setFailed("Failed to find XRender format for overlay window");
|
||||||
return;
|
return;
|
||||||
|
@ -202,7 +166,7 @@ void X11XRenderBackend::init(bool createOverlay)
|
||||||
xcb_render_create_picture(connection(), m_front, m_overlayWindow->window(), m_format, 0, NULL);
|
xcb_render_create_picture(connection(), m_front, m_overlayWindow->window(), m_format, 0, NULL);
|
||||||
} else {
|
} else {
|
||||||
// create XRender picture for the root window
|
// create XRender picture for the root window
|
||||||
m_format = findFormatForVisual(defaultScreen()->root_visual);
|
m_format = XRenderUtils::findPictFormat(defaultScreen()->root_visual);
|
||||||
if (m_format == 0) {
|
if (m_format == 0) {
|
||||||
setFailed("Failed to find XRender format for root window");
|
setFailed("Failed to find XRender format for root window");
|
||||||
return; // error
|
return; // error
|
||||||
|
@ -284,7 +248,7 @@ WaylandXRenderBackend::~WaylandXRenderBackend()
|
||||||
|
|
||||||
void WaylandXRenderBackend::init()
|
void WaylandXRenderBackend::init()
|
||||||
{
|
{
|
||||||
m_format = findFormatForVisual(defaultScreen()->root_visual);
|
m_format = XRenderUtils::findPictFormat(defaultScreen()->root_visual);
|
||||||
if (m_format == 0) {
|
if (m_format == 0) {
|
||||||
setFailed("Failed to find XRender format for root window");
|
setFailed("Failed to find XRender format for root window");
|
||||||
return; // error
|
return; // error
|
||||||
|
@ -461,7 +425,7 @@ QRect SceneXrender::Window::temp_visibleRect;
|
||||||
SceneXrender::Window::Window(Toplevel* c, SceneXrender *scene)
|
SceneXrender::Window::Window(Toplevel* c, SceneXrender *scene)
|
||||||
: Scene::Window(c)
|
: Scene::Window(c)
|
||||||
, m_scene(scene)
|
, m_scene(scene)
|
||||||
, format(findFormatForVisual(c->visual()))
|
, format(XRenderUtils::findPictFormat(c->visual()))
|
||||||
, alpha_cached_opacity(0.0)
|
, alpha_cached_opacity(0.0)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue