OLD | NEW |
1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium OS 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 #ifndef WINDOW_MANAGER_X11_REAL_X_CONNECTION_H_ | 5 #ifndef WINDOW_MANAGER_X11_REAL_X_CONNECTION_H_ |
6 #define WINDOW_MANAGER_X11_REAL_X_CONNECTION_H_ | 6 #define WINDOW_MANAGER_X11_REAL_X_CONNECTION_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
11 | 11 |
12 extern "C" { | 12 extern "C" { |
13 #include <X11/Xlib.h> | 13 #include <X11/Xlib.h> |
14 #include <X11/Xutil.h> | 14 #include <X11/Xutil.h> |
15 } | 15 } |
16 #include <gtest/gtest_prod.h> // for FRIEND_TEST() macro | 16 #include <gtest/gtest_prod.h> // for FRIEND_TEST() macro |
17 #include <xcb/xcb.h> | 17 #include <xcb/xcb.h> |
18 | 18 |
19 #include "window_manager/geometry.h" | 19 #include "window_manager/geometry.h" |
20 #include "window_manager/image_enums.h" | 20 #include "window_manager/image_enums.h" |
| 21 #include "window_manager/math_types.h" |
21 #include "window_manager/x11/x_connection.h" | 22 #include "window_manager/x11/x_connection.h" |
22 #include "window_manager/x11/x_types.h" | 23 #include "window_manager/x11/x_types.h" |
23 | 24 |
24 namespace window_manager { | 25 namespace window_manager { |
25 | 26 |
26 typedef ::Display XDisplay; | 27 typedef ::Display XDisplay; |
27 | 28 |
28 // This wraps an actual connection to an X server. | 29 // This wraps an actual connection to an X server. |
29 class RealXConnection : public XConnection { | 30 class RealXConnection : public XConnection { |
30 public: | 31 public: |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
150 virtual void DestroyDamage(XDamage damage); | 151 virtual void DestroyDamage(XDamage damage); |
151 virtual void ClearDamage(XDamage damage); | 152 virtual void ClearDamage(XDamage damage); |
152 virtual void SetSyncCounter(XID counter_id, int64_t value); | 153 virtual void SetSyncCounter(XID counter_id, int64_t value); |
153 virtual XID CreateSyncCounterAlarm(XID counter_id, | 154 virtual XID CreateSyncCounterAlarm(XID counter_id, |
154 int64_t initial_trigger_value); | 155 int64_t initial_trigger_value); |
155 virtual void DestroySyncCounterAlarm(XID alarm_id); | 156 virtual void DestroySyncCounterAlarm(XID alarm_id); |
156 virtual bool SetDetectableKeyboardAutoRepeat(bool detectable); | 157 virtual bool SetDetectableKeyboardAutoRepeat(bool detectable); |
157 virtual bool QueryKeyboardState(std::vector<uint8_t>* keycodes_out); | 158 virtual bool QueryKeyboardState(std::vector<uint8_t>* keycodes_out); |
158 virtual bool QueryPointerPosition(Point* absolute_pos_out); | 159 virtual bool QueryPointerPosition(Point* absolute_pos_out); |
159 virtual bool SetWindowBackgroundPixmap(XWindow xid, XPixmap pixmap); | 160 virtual bool SetWindowBackgroundPixmap(XWindow xid, XPixmap pixmap); |
| 161 virtual bool RenderQueryExtension(); |
| 162 virtual XPicture RenderCreatePicture(XDrawable drawable, int depth); |
| 163 virtual XPixmap CreatePixmapFromContainer(const ImageContainer* container); |
| 164 virtual void RenderComposite(bool blend, XPicture src, XPicture mask, |
| 165 XPicture dst, Point srcpos, Point maskpos, |
| 166 Matrix4 transform, Size size); |
| 167 virtual void RenderFreePicture(XPicture pict); |
| 168 virtual void RenderFillRectangle(XPicture dst, float red, float green, |
| 169 float blue, Point pos, Size size); |
160 // End XConnection methods. | 170 // End XConnection methods. |
161 | 171 |
162 // This convenience function is ONLY available for a real X | 172 // This convenience function is ONLY available for a real X |
163 // connection. It is not part of the XConnection interface. This | 173 // connection. It is not part of the XConnection interface. This |
164 // should not be used by anything other than GLInterface. | 174 // should not be used by anything other than GLInterface. |
165 XDisplay* GetDisplay() { return display_; } | 175 XDisplay* GetDisplay() { return display_; } |
166 | 176 |
167 void Free(void* item); | 177 void Free(void* item); |
168 | 178 |
169 // Caller assumes ownership of the memory returned from this | 179 // Caller assumes ownership of the memory returned from this |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
240 // ID for the UTF8_STRING atom (we look this up ourselves so as to avoid | 250 // ID for the UTF8_STRING atom (we look this up ourselves so as to avoid |
241 // a circular dependency with AtomCache). | 251 // a circular dependency with AtomCache). |
242 XAtom utf8_string_atom_; | 252 XAtom utf8_string_atom_; |
243 | 253 |
244 DISALLOW_COPY_AND_ASSIGN(RealXConnection); | 254 DISALLOW_COPY_AND_ASSIGN(RealXConnection); |
245 }; | 255 }; |
246 | 256 |
247 } // namespace window_manager | 257 } // namespace window_manager |
248 | 258 |
249 #endif // WINDOW_MANAGER_X11_REAL_X_CONNECTION_H_ | 259 #endif // WINDOW_MANAGER_X11_REAL_X_CONNECTION_H_ |
OLD | NEW |