Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(348)

Side by Side Diff: chrome/common/x11_util.cc

Issue 28192: Linux: fix XRENDER support for NX (Closed)
Patch Set: Created 11 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This file defines utility functions for X11 (Linux only). This code has been 5 // This file defines utility functions for X11 (Linux only). This code has been
6 // ported from XCB since we can't use XCB on Ubuntu while its 32-bit support 6 // ported from XCB since we can't use XCB on Ubuntu while its 32-bit support
7 // remains woefully incomplete. 7 // remains woefully incomplete.
8 8
9 #include "chrome/common/x11_util.h" 9 #include "chrome/common/x11_util.h"
10 #include "chrome/common/x11_util_internal.h" 10 #include "chrome/common/x11_util_internal.h"
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 templ.direct.alphaMask = 0; 127 templ.direct.alphaMask = 0;
128 128
129 static const unsigned long kMask = 129 static const unsigned long kMask =
130 PictFormatType | PictFormatDepth | 130 PictFormatType | PictFormatDepth |
131 PictFormatRed | PictFormatRedMask | 131 PictFormatRed | PictFormatRedMask |
132 PictFormatGreen | PictFormatGreenMask | 132 PictFormatGreen | PictFormatGreenMask |
133 PictFormatBlue | PictFormatBlueMask | 133 PictFormatBlue | PictFormatBlueMask |
134 PictFormatAlphaMask; 134 PictFormatAlphaMask;
135 135
136 pictformat = XRenderFindFormat(dpy, kMask, &templ, 0 /* first result */); 136 pictformat = XRenderFindFormat(dpy, kMask, &templ, 0 /* first result */);
137 CHECK(pictformat) << "XRENDER doesn't not support a Skia compatable format"; 137
138 // TODO(agl): fallback to a picture format with an alpha channel 138 if (!pictformat) {
139 // Not all X servers support xRGB32 formats. However, the XRENDER spec says
140 // that they must support an ARGB32 format, so we can always return that.
141 pictformat = XRenderFindStandardFormat(dpy, PictStandardARGB32);
142 CHECK(pictformat) << "XRENDER ARGB32 not supported.";
143 }
139 144
140 return pictformat; 145 return pictformat;
141 } 146 }
142 147
143 XID AttachSharedMemory(Display* display, int shared_memory_key) { 148 XID AttachSharedMemory(Display* display, int shared_memory_key) {
144 DCHECK(QuerySharedMemorySupport(display)); 149 DCHECK(QuerySharedMemorySupport(display));
145 150
146 XShmSegmentInfo shminfo; 151 XShmSegmentInfo shminfo;
147 memset(&shminfo, 0, sizeof(shminfo)); 152 memset(&shminfo, 0, sizeof(shminfo));
148 shminfo.shmid = shared_memory_key; 153 shminfo.shmid = shared_memory_key;
(...skipping 27 matching lines...) Expand all
176 181
177 void FreePicture(Display* display, XID picture) { 182 void FreePicture(Display* display, XID picture) {
178 XRenderFreePicture(display, picture); 183 XRenderFreePicture(display, picture);
179 } 184 }
180 185
181 void FreePixmap(Display* display, XID pixmap) { 186 void FreePixmap(Display* display, XID pixmap) {
182 XFreePixmap(display, pixmap); 187 XFreePixmap(display, pixmap);
183 } 188 }
184 189
185 } // namespace x11_util 190 } // namespace x11_util
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698