diff options
Diffstat (limited to 'src/cwindow.h')
-rw-r--r-- | src/cwindow.h | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/src/cwindow.h b/src/cwindow.h new file mode 100644 index 00000000..b2224faf --- /dev/null +++ b/src/cwindow.h @@ -0,0 +1,107 @@ +#include "config.h" +#include <X11/extensions/Xfixes.h> +#include <X11/extensions/Xdamage.h> +#include <X11/extensions/Xrender.h> +#include <glib.h> +#include "screen.h" + +#define USE_RENDER 0 + +typedef struct CWindow CWindow; +typedef struct Quad Quad; +typedef struct Point Point; +typedef struct Rectangle Rectangle; +typedef struct Distortion Distortion; + +struct Point +{ + int x, y; +}; + +struct Quad +{ + Point points[4]; +}; + +struct Rectangle +{ + int x, y; + int width, height; +}; + +struct Distortion +{ + Rectangle source; + Quad destination; +}; + +void cwindow_set_transformation (CWindow *window, + const Distortion *distortions, + int n_distortions); +void cwindow_free (CWindow *cwindow); +XserverRegion cwindow_extents (CWindow *cwindow); +XserverRegion cwindow_get_opaque_region (CWindow *cwindow); +Drawable cwindow_get_drawable (CWindow *cwindow); +Window cwindow_get_xwindow (CWindow *cwindow); +gboolean cwindow_get_viewable (CWindow *cwindow); +gboolean cwindow_get_input_only (CWindow *cwindow); +Visual * cwindow_get_visual (CWindow *cwindow); +XserverRegion cwindow_get_last_painted_extents (CWindow *cwindow); +void cwindow_set_last_painted_extents (CWindow *cwindow, + XserverRegion region); +void cwindow_destroy_last_painted_extents (CWindow *cwindow); +int cwindow_get_x (CWindow *cwindow); +int cwindow_get_y (CWindow *cwindow); +int cwindow_get_width (CWindow *cwindow); +int cwindow_get_height (CWindow *cwindow); +int cwindow_get_border_width (CWindow *cwindow); +MetaScreen * cwindow_get_screen (CWindow *cwindow); +Damage cwindow_get_damage (CWindow *cwindow); +void cwindow_set_pending_x (CWindow *cwindow, + int pending_x); +void cwindow_set_pending_y (CWindow *cwindow, + int pending_y); +void cwindow_set_pending_width (CWindow *cwindow, + int width); +void cwindow_set_pending_height (CWindow *cwindow, + int height); +void cwindow_set_pending_border_width (CWindow *cwindow, + int border_width); +void cwindow_set_x (CWindow *cwindow, + int x); +void cwindow_set_y (CWindow *cwindow, + int y); +void cwindow_set_width (CWindow *cwindow, + int width); +void cwindow_set_height (CWindow *cwindow, + int height); +Pixmap cwindow_get_pixmap (CWindow *cwindow); +void cwindow_set_border_width (CWindow *cwindow, + int border_width); +void cwindow_set_viewable (CWindow *cwindow, + gboolean viewable); +CWindow * cwindow_new (MetaCompositor *compositor, + Window xwindow, + XWindowAttributes *attrs); +XID * cwindow_get_xid_address (CWindow *cwindow); +MetaCompositor *cwindow_get_compositor (CWindow *cwindow); +#if 0 +void cwindow_draw (CWindow *cwindow, + Picture picture, + XserverRegion damaged_region); +#endif +gboolean cwindow_is_translucent (CWindow *cwindow); +void cwindow_draw_warped (CWindow *cwindow, + MetaScreen *screen, + Picture picture, + Quad *destination); +void cwindow_process_damage_notify (CWindow *cwindow, + XDamageNotifyEvent *event); +void cwindow_process_configure_notify (CWindow *cwindow, + XConfigureEvent *event); +void cwindow_draw (CWindow *cwindow, + Picture destination, + XserverRegion clip); +void cwindow_freeze (CWindow *cwindow); +void cwindow_thaw (CWindow *cwindow); +void cwindow_set_translucent (CWindow *cwindow, gboolean translucent); |