+ wenn man beispielsweise zwar einen XV_COLORKEY setzen kann, aber kein XV_AUTOPAINT_COLORKEY +
+ + ++ ...dann kann ich das ganze Fenster füllen, durchaus auch mit beliebigen Farben (wobei hier eine Falle wartet, da die Farbtiefe unterschiedlich sein könnte). +
+ + ++ dixplay_x11.c, line 623 +
++ +
++ static inline void xv_draw_colorkey(void) { +
++ XSetForeground( xj_dpy, xj_gc, 0 ); +
++ if (xj_box[1] > 0 ) { +
++ XFillRectangle( xj_dpy, xj_win, xj_gc, 0, 0, xj_box[2], xj_box[1]); +
++ XFillRectangle( xj_dpy, xj_win, xj_gc, 0, xj_box[1]+xj_box[3], xj_box[2], xj_box[1]+xj_box[3]+xj_box[1]); +
++ } /* else */ +
++ if (xj_box[0] > 0 ) { +
++ XFillRectangle( xj_dpy, xj_win, xj_gc, 0, 0, xj_box[0], xj_box[3]); +
++ XFillRectangle( xj_dpy, xj_win, xj_gc, xj_box[0]+xj_box[2], 0, xj_box[0]+xj_box[2]+xj_box[0], xj_box[3]); +
++ } +
++ } +
++ +
++ +
++ ... verwende dann in XSetForeground ggfs eine andere Farbe, wie 0x00FF00 für Grün +
+ + ++ number of attributes: 7 +
++ "XV_SET_DEFAULTS" (range 0 to 0) +
++ client settable attribute +
++ "XV_ITURBT_709" (range 0 to 1) +
++ client settable attribute +
++ client gettable attribute (current value is 0) +
++ "XV_SYNC_TO_VBLANK" (range 0 to 1) +
++ client settable attribute +
++ client gettable attribute (current value is 1) +
++ "XV_BRIGHTNESS" (range -1000 to 1000) +
++ client settable attribute +
++ client gettable attribute (current value is 0) +
++ "XV_CONTRAST" (range -1000 to 1000) +
++ client settable attribute +
++ client gettable attribute (current value is 0) +
++ "XV_SATURATION" (range -1000 to 1000) +
++ client settable attribute +
++ client gettable attribute (current value is 0) +
++ "XV_HUE" (range -1000 to 1000) +
++ client settable attribute +
++ client gettable attribute (current value is 0) +
++ maximum XvImage size: 16384 x 16384 +
++ Number of image formats: 4 +
++ id: 0x32595559 (YUY2) +
++ guid: 59555932-0000-0010-8000-00aa00389b71 +
++ bits per pixel: 16 +
++ number of planes: 1 +
++ type: YUV (packed) +
++ id: 0x32315659 (YV12) +
++ guid: 59563132-0000-0010-8000-00aa00389b71 +
++ bits per pixel: 12 +
++ number of planes: 3 +
++ type: YUV (planar) +
++ id: 0x59565955 (UYVY) +
++ guid: 55595659-0000-0010-8000-00aa00389b71 +
++ bits per pixel: 16 +
++ number of planes: 1 +
++ type: YUV (packed) +
++ id: 0x30323449 (I420) +
++ guid: 49343230-0000-0010-8000-00aa00389b71 +
++ bits per pixel: 12 +
++ number of planes: 3 +
++ type: YUV (planar) +
+ + ++ number of attributes: 5 +
++ "XV_COLORKEY" (range 0 to 16777215) +
++ client settable attribute +
++ client gettable attribute (current value is 2110) +
++ "XV_BRIGHTNESS" (range -128 to 127) +
++ client settable attribute +
++ client gettable attribute (current value is 0) +
++ "XV_CONTRAST" (range 0 to 255) +
++ client settable attribute +
++ client gettable attribute (current value is 128) +
++ "XV_SATURATION" (range 0 to 255) +
++ client settable attribute +
++ client gettable attribute (current value is 128) +
++ "XV_HUE" (range -180 to 180) +
++ client settable attribute +
++ client gettable attribute (current value is 0) +
++ maximum XvImage size: 1024 x 1024 +
++ Number of image formats: 7 +
++ id: 0x32595559 (YUY2) +
++ guid: 59555932-0000-0010-8000-00aa00389b71 +
++ bits per pixel: 16 +
++ number of planes: 1 +
++ type: YUV (packed) +
++ id: 0x32315659 (YV12) +
++ guid: 59563132-0000-0010-8000-00aa00389b71 +
++ bits per pixel: 12 +
++ number of planes: 3 +
++ type: YUV (planar) +
++ id: 0x30323449 (I420) +
++ guid: 49343230-0000-0010-8000-00aa00389b71 +
++ bits per pixel: 12 +
++ number of planes: 3 +
++ type: YUV (planar) +
++ id: 0x36315652 (RV16) +
++ guid: 52563135-0000-0000-0000-000000000000 +
++ bits per pixel: 16 +
++ number of planes: 1 +
++ type: RGB (packed) +
++ depth: 0 +
++ red, green, blue masks: 0x1f, 0x3e0, 0x7c00 +
++ id: 0x35315652 (RV15) +
++ guid: 52563136-0000-0000-0000-000000000000 +
++ bits per pixel: 16 +
++ number of planes: 1 +
++ type: RGB (packed) +
++ depth: 0 +
++ red, green, blue masks: 0x1f, 0x7e0, 0xf800 +
++ id: 0x31313259 (Y211) +
++ 222 +
++ guid: 59323131-0000-0010-8000-00aa00389b71 +
++ bits per pixel: 6 +
++ number of planes: 3 +
++ type: YUV (packed) +
++ id: 0x0 +
++ guid: 00000000-0000-0000-0000-000000000000 +
++ bits per pixel: 0 +
++ number of planes: 0 +
++ type: RGB (packed) +
++ depth: 1 +
++ red, green, blue masks: 0x0, 0x0, 0x0 +
+ + ++ Es ist ein sehr alter Standard, durchaus komplex und detailiertere Doku ist kaum noch zu finden (-> Einzelfragen auf Stackoverflow). Manpages sind, wie üblich, nur dann sinnvoll, wenn man schon weiß, worum es geht). Hinzu kommt, daß es wohl erhebliche Streubreite gibt bzgl. der Implementierung. »Beispielsweise« unterstützt meine uralt-Nvidia-Karte nicht das automatische Keying (Attribut XV_COLORKEY und XV_AUTOPAINT_COLORKEY sind nicht definiert, aber der X-Treiber macht ein Auto-Keying auf dem gesamten X-Window und das ist problematisch mit den Dockingpanels, die das gleiche XWindow verwenden) +
+ + ++ Weil da nun die Kopfzeile (Docking-Panel) nicht richtig gezeichnet wird, bzw. pseudo-transparent wird. +
++ Abbruch. Es zeigt sich, daß meine Grafikkarte das Auto-Keying von XV nicht unterstützt, d.h. die Attribute XV_AUTOPAINT_COLORKEY und XV_COLORKEY sind nicht definiert. Habe noch mind. 2 Stunden herumexperimentiert, bin aber auf keinen »grünen Zweig« gekommen. Diese Erfahrung läßt es für mich sehr fraglich erscheinen, ob wir XV unterstützen sollen....? +
+ + +