Enlightenment CVS committal Author : kwo Project : e16 Module : e
Dir : e16/e/src Modified Files: ecompmgr.c ecompmgr.h ewins.c x.c xwin.h Log Message: Shuffle some stuff around. Add function to find ARGB visual. =================================================================== RCS file: /cvs/e/e16/e/src/ecompmgr.c,v retrieving revision 1.118 retrieving revision 1.119 diff -u -3 -r1.118 -r1.119 --- ecompmgr.c 1 Jun 2006 19:21:30 -0000 1.118 +++ ecompmgr.c 1 Jun 2006 20:18:40 -0000 1.119 @@ -209,31 +209,6 @@ Desk * dsk, XserverRegion clip); /* - * Visuals - */ - -int -EVisualIsARGB(Visual * vis) -{ - XRenderPictFormat *pictfmt; - -#if 0 /* FIXME - Remove? */ - if (!Mode_compmgr.active) - return 0; -#endif - - pictfmt = XRenderFindVisualFormat(disp, vis); - if (!pictfmt) - return 0; - -#if 0 - Eprintf("Visual ID=%#lx Type=%d, alphamask=%d\n", vis->visualid, - pictfmt->type, pictfmt->direct.alphaMask); -#endif - return pictfmt->type == PictTypeDirect && pictfmt->direct.alphaMask; -} - -/* * Regions */ =================================================================== RCS file: /cvs/e/e16/e/src/ecompmgr.h,v retrieving revision 1.29 retrieving revision 1.30 diff -u -3 -r1.29 -r1.30 --- ecompmgr.h 22 Apr 2006 13:57:54 -0000 1.29 +++ ecompmgr.h 1 Jun 2006 20:18:40 -0000 1.30 @@ -36,8 +36,6 @@ int fade_speed; } cfg_composite; -int EVisualIsARGB(Visual * vis); - int ECompMgrIsActive(void); int ECompMgrDeskConfigure(Desk * dsk); @@ -66,8 +64,6 @@ void ECompMgrRepaint(void); #else - -#define EVisualIsARGB(vis) 0 #define ECompMgrIsActive() 0 =================================================================== RCS file: /cvs/e/e16/e/src/ewins.c,v retrieving revision 1.165 retrieving revision 1.166 diff -u -3 -r1.165 -r1.166 --- ewins.c 21 May 2006 12:17:57 -0000 1.165 +++ ewins.c 1 Jun 2006 20:18:40 -0000 1.166 @@ -181,7 +181,6 @@ { XSetWindowAttributes att; Win frame; - XWindowAttributes win_attr; if (ewin->client.w <= 0) ewin->client.w = 100; @@ -191,8 +190,11 @@ if (ewin->state.docked) ewin->inh_wm.b.border = 1; +#if USE_COMPOSITE if (EVisualIsARGB(WinGetVisual(_EwinGetClientWin(ewin)))) { + XWindowAttributes win_attr; + ewin->o.argb = 1; EGetWindowAttributes(_EwinGetClientWin(ewin), &win_attr); @@ -204,6 +206,7 @@ 0, &win_attr); } else +#endif { frame = ECreateWindow(VRoot.win, ewin->client.x, ewin->client.y, =================================================================== RCS file: /cvs/e/e16/e/src/x.c,v retrieving revision 1.143 retrieving revision 1.144 diff -u -3 -r1.143 -r1.144 --- x.c 24 May 2006 16:36:47 -0000 1.143 +++ x.c 1 Jun 2006 20:18:40 -0000 1.144 @@ -29,6 +29,9 @@ #include <X11/Xatom.h> #include <X11/Xutil.h> #include <X11/Xresource.h> +#if USE_COMPOSITE +#include <X11/extensions/Xrender.h> +#endif #define DEBUG_XWIN 0 @@ -1508,50 +1511,9 @@ return mask; } -void -EGrabServer(void) -{ - if (Mode.grabs.server_grabbed <= 0) - { - if (EventDebug(EDBUG_TYPE_GRABS)) - Eprintf("EGrabServer\n"); - XGrabServer(disp); - } - Mode.grabs.server_grabbed++; -} - -void -EUngrabServer(void) -{ - if (Mode.grabs.server_grabbed == 1) - { - XUngrabServer(disp); - XFlush(disp); - if (EventDebug(EDBUG_TYPE_GRABS)) - Eprintf("EUngrabServer\n"); - } - Mode.grabs.server_grabbed--; - if (Mode.grabs.server_grabbed < 0) - Mode.grabs.server_grabbed = 0; -} - -int -EServerIsGrabbed(void) -{ - return Mode.grabs.server_grabbed; -} - -void -EFlush(void) -{ - XFlush(disp); -} - -void -ESync(void) -{ - XSync(disp, False); -} +/* + * Display + */ Display * EDisplayOpen(const char *dstr, int scr) @@ -1614,6 +1576,113 @@ disp = NULL; } + +/* + * Server + */ + +void +EGrabServer(void) +{ + if (Mode.grabs.server_grabbed <= 0) + { + if (EventDebug(EDBUG_TYPE_GRABS)) + Eprintf("EGrabServer\n"); + XGrabServer(disp); + } + Mode.grabs.server_grabbed++; +} + +void +EUngrabServer(void) +{ + if (Mode.grabs.server_grabbed == 1) + { + XUngrabServer(disp); + XFlush(disp); + if (EventDebug(EDBUG_TYPE_GRABS)) + Eprintf("EUngrabServer\n"); + } + Mode.grabs.server_grabbed--; + if (Mode.grabs.server_grabbed < 0) + Mode.grabs.server_grabbed = 0; +} + +int +EServerIsGrabbed(void) +{ + return Mode.grabs.server_grabbed; +} + +void +EFlush(void) +{ + XFlush(disp); +} + +void +ESync(void) +{ + XSync(disp, False); +} + +/* + * Visuals + */ + +#if USE_COMPOSITE + +Visual * +EVisualFindARGB(void) +{ + XVisualInfo *xvi, xvit; + int i, num; + Visual *vis; + + xvit.screen = VRoot.scr; + xvit.depth = 32; + xvit.class = TrueColor; + + xvi = XGetVisualInfo(disp, + VisualScreenMask | VisualDepthMask | VisualClassMask, + &xvit, &num); + if (!xvi) + return NULL; + + for (i = 0; i < num; i++) + { + if (EVisualIsARGB(xvi[i].visual)) + break; + } + + vis = (i < num) ? xvi[i].visual : NULL; + + XFree(xvi); + + return vis; +} + +int +EVisualIsARGB(Visual * vis) +{ + XRenderPictFormat *pictfmt; + + pictfmt = XRenderFindVisualFormat(disp, vis); + if (!pictfmt) + return 0; + +#if 0 + Eprintf("Visual ID=%#lx Type=%d, alphamask=%d\n", vis->visualid, + pictfmt->type, pictfmt->direct.alphaMask); +#endif + return pictfmt->type == PictTypeDirect && pictfmt->direct.alphaMask; +} + +#endif + +/* + * Misc + */ Time EGetTimestamp(void) =================================================================== RCS file: /cvs/e/e16/e/src/xwin.h,v retrieving revision 1.21 retrieving revision 1.22 diff -u -3 -r1.21 -r1.22 --- xwin.h 21 May 2006 18:44:18 -0000 1.21 +++ xwin.h 1 Jun 2006 20:18:40 -0000 1.22 @@ -28,6 +28,23 @@ #define NoWin ((Win)0) +Display *EDisplayOpen(const char *dstr, int scr); +void EDisplayClose(void); +void EDisplayDisconnect(void); + +void EGrabServer(void); +void EUngrabServer(void); +int EServerIsGrabbed(void); +void EFlush(void); +void ESync(void); + +#if USE_COMPOSITE +int EVisualIsARGB(Visual * vis); +Visual *EVisualFindARGB(void); +#endif + +Time EGetTimestamp(void); + Win ELookupXwin(Window xwin); #define Xwin(win) WinGetXwin(win) @@ -39,16 +56,6 @@ Win ECreateWinFromXwin(Window xwin); void EDestroyWin(Win win); - -Display *EDisplayOpen(const char *dstr, int scr); -void EDisplayClose(void); -void EDisplayDisconnect(void); -void EGrabServer(void); -void EUngrabServer(void); -int EServerIsGrabbed(void); -void EFlush(void); -void ESync(void); -Time EGetTimestamp(void); Win ERegisterWindow(Window xwin, XWindowAttributes * pxwa); void EUnregisterWindow(Win win); _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs