diff options
Diffstat (limited to 'src/x.hpp')
-rw-r--r-- | src/x.hpp | 16 |
1 files changed, 13 insertions, 3 deletions
@@ -23,10 +23,13 @@ #include <iostream> #include <X11/Xlib.h> +#include <X11/Xatom.h> #include <X11/extensions/XShm.h> #include <X11/extensions/Xrender.h> +#include <X11/extensions/shape.h> #include <X11/extensions/Xcomposite.h> #include <X11/extensions/Xrandr.h> +//#include <meta/meta-shadow-factory.h> #include <sys/shm.h> #include <string> #include <vector> @@ -35,9 +38,17 @@ class X11 { private: - bool haveXShm; - XImage* getImageShm( Window d, int x, int y, int w, int h ); + bool hasClipping( Window d ); + XserverRegion findRegion( Window d ); + void unionClippingRegions( XserverRegion rootRegion, Window child ); + void unionBorderRegions( XserverRegion rootRegion, Window d ); + XImage* getImageUsingXRender( Window draw, int localx, int localy, int w, int h ); + XImage* getImageUsingXShm( Window draw, int localx, int localy, int w, int h ); public: + bool haveXComposite; + bool haveXRender; + bool haveXShm; + bool haveXFixes; bool haveXRR; X11( std::string displayName ); ~X11(); @@ -52,6 +63,5 @@ public: }; glm::ivec4 getWindowGeometry( X11* x11, Window win ); -//glm::ivec4 getWindowGeometryWithoutBorder( X11* x11, Window win ); #endif |