1 /* Copyright (c) 1993, 2015, Oracle and/or its affiliates. All rights reserved.
3 * Permission is hereby granted, free of charge, to any person obtaining a
4 * copy of this software and associated documentation files (the "Software"),
5 * to deal in the Software without restriction, including without limitation
6 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
7 * and/or sell copies of the Software, and to permit persons to whom the
8 * Software is furnished to do so, subject to the following conditions:
10 * The above copyright notice and this permission notice (including the next
11 * paragraph) shall be included in all copies or substantial portions of the
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20 * DEALINGS IN THE SOFTWARE.
25 ** draw_inquiry.c - state inquiry routines for drawable veneer.
30 #endif /* SERVER_DGA */
31 #include "dga_incls.h"
33 extern int dgai_mbsmemb_devinfochg (_Dga_window dgawin
);
34 extern int dgai_pix_devinfochg(_Dga_pixmap dgapix
);
37 dga_draw_display (Dga_drawable dgadraw
)
39 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
41 return (dgai_mbsmemb_display((_Dga_window
)dgadraw
));
43 return (dgai_pix_display((_Dga_pixmap
)dgadraw
));
49 dga_draw_id (Dga_drawable dgadraw
)
51 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
53 return ((Drawable
)((_Dga_window
)dgadraw
)->w_id
);
55 return ((Drawable
)((_Dga_pixmap
)dgadraw
)->p_id
);
61 dga_draw_type (Dga_drawable dgadraw
)
63 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
65 return ((((_Dga_window
)dgadraw
)->isOverlay
)
69 return (DGA_DRAW_PIXMAP
);
75 dga_draw_devname (Dga_drawable dgadraw
)
77 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
79 return (dgai_mbsmemb_devname((_Dga_window
)dgadraw
));
81 return (dgai_pix_devname((_Dga_pixmap
)dgadraw
));
87 dga_draw_devfd (Dga_drawable dgadraw
)
89 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
91 return (dgai_mbsmemb_devfd((_Dga_window
)dgadraw
));
93 return (dgai_pix_devfd((_Dga_pixmap
)dgadraw
));
99 dga_draw_depth (Dga_drawable dgadraw
)
101 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
102 case DGA_DRAW_WINDOW
:
103 return (dgai_mbsmemb_depth((_Dga_window
)dgadraw
));
104 case DGA_DRAW_PIXMAP
:
105 return (dgai_pix_depth((_Dga_pixmap
)dgadraw
));
111 dga_draw_set_client_infop (Dga_drawable dgadraw
, void *client_info_ptr
)
114 mutex_lock(&dgaGlobalMutex
);
116 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
117 case DGA_DRAW_WINDOW
:
118 dgai_mbsmemb_set_client_infop((_Dga_window
)dgadraw
, client_info_ptr
);
120 case DGA_DRAW_PIXMAP
:
121 dgai_pix_set_client_infop((_Dga_pixmap
)dgadraw
, client_info_ptr
);
125 mutex_unlock(&dgaGlobalMutex
);
130 dga_draw_get_client_infop (Dga_drawable dgadraw
)
134 mutex_lock(&dgaGlobalMutex
);
136 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
137 case DGA_DRAW_WINDOW
:
138 rval
= dgai_mbsmemb_get_client_infop((_Dga_window
)dgadraw
);
140 case DGA_DRAW_PIXMAP
:
141 rval
= dgai_pix_get_client_infop((_Dga_pixmap
)dgadraw
);
145 mutex_unlock(&dgaGlobalMutex
);
151 dga_draw_devinfochg (Dga_drawable dgadraw
)
156 mutex_lock(&dgaGlobalMutex
);
158 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
159 case DGA_DRAW_WINDOW
:
160 rval
= dgai_mbsmemb_devinfochg((_Dga_window
)dgadraw
);
162 case DGA_DRAW_PIXMAP
:
163 rval
= dgai_pix_devinfochg((_Dga_pixmap
)dgadraw
);
167 mutex_unlock(&dgaGlobalMutex
);
173 dga_draw_devinfo (Dga_drawable dgadraw
)
178 mutex_lock(&dgaGlobalMutex
);
180 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
181 case DGA_DRAW_WINDOW
:
182 rval
= dgai_mbsmemb_devinfo((_Dga_window
)dgadraw
);
184 case DGA_DRAW_PIXMAP
:
185 rval
= dgai_pix_devinfo((_Dga_pixmap
)dgadraw
);
189 mutex_unlock(&dgaGlobalMutex
);
195 dga_draw_sitechg (Dga_drawable dgadraw
, int *reason
)
200 mutex_lock(&dgaGlobalMutex
);
202 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
203 case DGA_DRAW_WINDOW
:
204 rval
= dgai_mbsmemb_sitechg((_Dga_window
)dgadraw
, reason
);
206 case DGA_DRAW_PIXMAP
:
207 rval
= dgai_pix_sitechg((_Dga_pixmap
)dgadraw
, reason
);
211 mutex_unlock(&dgaGlobalMutex
);
217 dga_draw_sitesetnotify (Dga_drawable dgadraw
, DgaSiteNotifyFunc site_notify_func
,
221 mutex_lock(&dgaGlobalMutex
);
223 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
224 case DGA_DRAW_WINDOW
:
225 dgai_mbsmemb_sitesetnotify((_Dga_window
)dgadraw
, site_notify_func
, client_data
);
227 case DGA_DRAW_PIXMAP
:
228 dgai_pix_sitesetnotify((_Dga_pixmap
)dgadraw
, site_notify_func
, client_data
);
232 mutex_unlock(&dgaGlobalMutex
);
237 dga_draw_sitegetnotify (Dga_drawable dgadraw
, DgaSiteNotifyFunc
*site_notify_func
,
241 mutex_lock(&dgaGlobalMutex
);
243 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
244 case DGA_DRAW_WINDOW
:
245 dgai_mbsmemb_sitegetnotify((_Dga_window
)dgadraw
, site_notify_func
, client_data
);
247 case DGA_DRAW_PIXMAP
:
248 dgai_pix_sitegetnotify((_Dga_pixmap
)dgadraw
, site_notify_func
, client_data
);
252 mutex_unlock(&dgaGlobalMutex
);
257 dga_draw_site (Dga_drawable dgadraw
)
262 mutex_lock(&dgaGlobalMutex
);
264 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
265 case DGA_DRAW_WINDOW
:
266 rval
= dgai_mbsmemb_site((_Dga_window
)dgadraw
);
268 case DGA_DRAW_PIXMAP
:
269 rval
= dgai_pix_site((_Dga_pixmap
)dgadraw
);
273 mutex_unlock(&dgaGlobalMutex
);
279 dga_draw_address (Dga_drawable dgadraw
)
284 mutex_lock(&dgaGlobalMutex
);
286 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
287 case DGA_DRAW_WINDOW
:
288 rval
= dgai_mbsmemb_address((_Dga_window
)dgadraw
);
290 case DGA_DRAW_PIXMAP
:
291 rval
= dgai_pix_address((_Dga_pixmap
)dgadraw
);
295 mutex_unlock(&dgaGlobalMutex
);
301 dga_draw_linebytes (Dga_drawable dgadraw
)
306 mutex_lock(&dgaGlobalMutex
);
308 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
309 case DGA_DRAW_WINDOW
:
310 rval
= dgai_mbsmemb_linebytes((_Dga_window
)dgadraw
);
312 case DGA_DRAW_PIXMAP
:
313 rval
= dgai_pix_linebytes((_Dga_pixmap
)dgadraw
);
317 mutex_unlock(&dgaGlobalMutex
);
323 dga_draw_bitsperpixel (Dga_drawable dgadraw
)
328 mutex_lock(&dgaGlobalMutex
);
330 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
331 case DGA_DRAW_WINDOW
:
332 rval
= dgai_mbsmemb_bitsperpixel((_Dga_window
)dgadraw
);
334 case DGA_DRAW_PIXMAP
:
335 rval
= dgai_pix_bitsperpixel((_Dga_pixmap
)dgadraw
);
339 mutex_unlock(&dgaGlobalMutex
);
345 dga_draw_clipchg (Dga_drawable dgadraw
)
350 mutex_lock(&dgaGlobalMutex
);
352 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
353 case DGA_DRAW_WINDOW
:
354 rval
= dgai_mbsmemb_clipchg((_Dga_window
)dgadraw
);
356 case DGA_DRAW_PIXMAP
:
357 rval
= dgai_pix_clipchg((_Dga_pixmap
)dgadraw
);
361 mutex_unlock(&dgaGlobalMutex
);
367 dga_draw_bbox(Dga_drawable dgadraw
, int *xp
, int *yp
, int *widthp
, int *heightp
)
370 mutex_lock(&dgaGlobalMutex
);
372 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
373 case DGA_DRAW_WINDOW
:
374 dgai_mbsmemb_bbox((_Dga_window
)dgadraw
, xp
, yp
, widthp
, heightp
);
376 case DGA_DRAW_PIXMAP
:
377 dgai_pix_bbox((_Dga_pixmap
)dgadraw
, xp
, yp
, widthp
, heightp
);
381 mutex_unlock(&dgaGlobalMutex
);
386 dga_draw_visibility (Dga_drawable dgadraw
)
391 mutex_lock(&dgaGlobalMutex
);
393 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
394 case DGA_DRAW_WINDOW
:
395 rval
= dgai_mbsmemb_visibility((_Dga_window
)dgadraw
);
397 case DGA_DRAW_PIXMAP
:
398 /* always unobscured */
399 rval
= DGA_VIS_UNOBSCURED
;
403 mutex_unlock(&dgaGlobalMutex
);
409 dga_draw_empty (Dga_drawable dgadraw
)
414 mutex_lock(&dgaGlobalMutex
);
416 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
417 case DGA_DRAW_WINDOW
:
418 rval
= dgai_mbsmemb_empty((_Dga_window
)dgadraw
);
420 case DGA_DRAW_PIXMAP
:
421 rval
= dgai_pix_empty((_Dga_pixmap
)dgadraw
);
425 mutex_unlock(&dgaGlobalMutex
);
431 dga_draw_clipinfo (Dga_drawable dgadraw
)
436 mutex_lock(&dgaGlobalMutex
);
438 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
439 case DGA_DRAW_WINDOW
:
440 rval
= dgai_mbsmemb_clipinfo((_Dga_window
)dgadraw
);
442 case DGA_DRAW_PIXMAP
:
443 rval
= dgai_pix_clipinfo((_Dga_pixmap
)dgadraw
);
447 mutex_unlock(&dgaGlobalMutex
);
454 dga_draw_singlerect (Dga_drawable dgadraw
)
459 mutex_lock(&dgaGlobalMutex
);
461 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
462 case DGA_DRAW_WINDOW
:
463 rval
= dgai_mbsmemb_singlerect((_Dga_window
)dgadraw
);
465 case DGA_DRAW_PIXMAP
:
467 /* always a single rect */
472 mutex_unlock(&dgaGlobalMutex
);
478 dga_draw_obscured (Dga_drawable dgadraw
)
483 mutex_lock(&dgaGlobalMutex
);
485 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
486 case DGA_DRAW_WINDOW
:
487 rval
= dgai_mbsmemb_obscured((_Dga_window
)dgadraw
);
489 case DGA_DRAW_PIXMAP
:
496 mutex_unlock(&dgaGlobalMutex
);
502 /* CONSOLIDATION PRIVATE */
504 dga_draw_borderwidth (Dga_drawable dgadraw
)
509 mutex_lock(&dgaGlobalMutex
);
511 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
512 case DGA_DRAW_WINDOW
:
513 rval
= dgai_mbsmemb_borderwidth((_Dga_window
)dgadraw
);
515 case DGA_DRAW_PIXMAP
:
522 mutex_unlock(&dgaGlobalMutex
);
529 dga_draw_curshandle (Dga_drawable dgadraw
, DgaCursTakeDownFunc take_down_func
,
533 mutex_lock(&dgaGlobalMutex
);
535 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
536 case DGA_DRAW_WINDOW
:
537 dgai_mbsmemb_curshandle((_Dga_window
)dgadraw
, take_down_func
, client_data
);
539 case DGA_DRAW_PIXMAP
:
540 /* pixmaps never have cursors */
544 mutex_unlock(&dgaGlobalMutex
);
550 dga_draw_rtngrab (Dga_drawable dgadraw
)
555 mutex_lock(&dgaGlobalMutex
);
557 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
558 case DGA_DRAW_WINDOW
:
559 rval
= dgai_mbsmemb_rtngrab((_Dga_window
)dgadraw
);
561 case DGA_DRAW_PIXMAP
:
563 /* not applicable to pixmaps */
568 mutex_unlock(&dgaGlobalMutex
);
574 dga_draw_rtnungrab (Dga_drawable dgadraw
)
579 mutex_lock(&dgaGlobalMutex
);
581 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
582 case DGA_DRAW_WINDOW
:
583 rval
= dgai_mbsmemb_rtnungrab((_Dga_window
)dgadraw
);
585 case DGA_DRAW_PIXMAP
:
587 /* not applicable to pixmaps */
592 mutex_unlock(&dgaGlobalMutex
);
598 dga_draw_rtnchg (Dga_drawable dgadraw
)
603 mutex_lock(&dgaGlobalMutex
);
605 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
606 case DGA_DRAW_WINDOW
:
607 rval
= dgai_mbsmemb_rtnchg((_Dga_window
)dgadraw
);
609 case DGA_DRAW_PIXMAP
:
611 /* not applicable to pixmaps -- force a query for active */
616 mutex_unlock(&dgaGlobalMutex
);
622 dga_draw_rtnactive (Dga_drawable dgadraw
)
627 mutex_lock(&dgaGlobalMutex
);
629 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
630 case DGA_DRAW_WINDOW
:
631 rval
= dgai_mbsmemb_rtnactive((_Dga_window
)dgadraw
);
633 case DGA_DRAW_PIXMAP
:
635 /* not applicable to pixmaps -- never active */
640 mutex_unlock(&dgaGlobalMutex
);
646 dga_draw_rtncached (Dga_drawable dgadraw
)
651 mutex_lock(&dgaGlobalMutex
);
653 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
654 case DGA_DRAW_WINDOW
:
655 rval
= dgai_mbsmemb_rtncached((_Dga_window
)dgadraw
);
657 case DGA_DRAW_PIXMAP
:
659 /* not applicable to pixmaps -- consider never cached */
664 mutex_unlock(&dgaGlobalMutex
);
670 dga_draw_rtndevinfop (Dga_drawable dgadraw
)
675 mutex_lock(&dgaGlobalMutex
);
677 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
678 case DGA_DRAW_WINDOW
:
679 rval
= dgai_mbsmemb_rtndevinfop((_Dga_window
)dgadraw
);
681 case DGA_DRAW_PIXMAP
:
683 /* not applicable to pixmaps -- doesn't have devinfo */
688 mutex_unlock(&dgaGlobalMutex
);
693 /* This routine is for compatibility only. In the old interface both
694 * the "p" and the "non-p" version were in but the "p" version was the
695 * one that was documented. */
697 dga_draw_rtndevinfo (Dga_drawable dgadraw
)
699 return(dga_draw_rtndevinfop (dgadraw
));
703 dga_draw_rtndevtype (Dga_drawable dgadraw
, u_char
*type
,
707 mutex_lock(&dgaGlobalMutex
);
709 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
710 case DGA_DRAW_WINDOW
:
711 dgai_mbsmemb_rtndevtype((_Dga_window
)dgadraw
, type
, name
);
713 case DGA_DRAW_PIXMAP
:
715 /* not applicable to pixmaps -- no dev type and name */
721 mutex_unlock(&dgaGlobalMutex
);
726 dga_draw_rtndimensions (Dga_drawable dgadraw
, short *width
,
727 short *height
, u_int
*linebytes
)
730 mutex_lock(&dgaGlobalMutex
);
732 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
733 case DGA_DRAW_WINDOW
:
734 dgai_mbsmemb_rtndimensions((_Dga_window
)dgadraw
, width
, height
, linebytes
);
736 case DGA_DRAW_PIXMAP
:
738 /* not applicable to pixmaps -- no dimensions */
745 mutex_unlock(&dgaGlobalMutex
);
750 dga_draw_rtnbitsperpixel (Dga_drawable dgadraw
)
755 mutex_lock(&dgaGlobalMutex
);
757 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
758 case DGA_DRAW_WINDOW
:
759 rval
= dgai_mbsmemb_rtnbitsperpixel((_Dga_window
)dgadraw
);
761 case DGA_DRAW_PIXMAP
:
763 /* not applicable to pixmaps */
768 mutex_unlock(&dgaGlobalMutex
);
774 dga_draw_rtnpixels (Dga_drawable dgadraw
)
779 mutex_lock(&dgaGlobalMutex
);
781 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
782 case DGA_DRAW_WINDOW
:
783 rval
= dgai_mbsmemb_rtnpixels((_Dga_window
)dgadraw
);
785 case DGA_DRAW_PIXMAP
:
787 /* not applicable to pixmaps -- doesn't have retained pixels */
792 mutex_unlock(&dgaGlobalMutex
);
798 dga_draw_widinfop (Dga_drawable dgadraw
)
803 mutex_lock(&dgaGlobalMutex
);
805 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
806 case DGA_DRAW_WINDOW
:
807 rval
= dga_win_widinfop((Dga_window
)dgadraw
);
809 case DGA_DRAW_PIXMAP
:
811 /* not applicable to pixmaps -- doesn't have retained pixels */
816 mutex_unlock(&dgaGlobalMutex
);
822 /* Note: the following routines are consolidation private. They are not
823 a part of the public interface. */
826 dga_draw_mbchg (Dga_drawable dgadraw
, int *reason
)
828 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
829 case DGA_DRAW_WINDOW
:
830 return (dgai_mbsmemb_mbchg((_Dga_window
)dgadraw
, reason
));
831 case DGA_DRAW_PIXMAP
:
833 /* pixmaps never are multibuffered */
839 dga_draw_mbsetnotify (Dga_drawable dgadraw
, DgaMbNotifyFunc mb_notify_func
,
842 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
843 case DGA_DRAW_WINDOW
:
844 dgai_mbsmemb_mbsetnotify((_Dga_window
)dgadraw
, mb_notify_func
, client_data
);
846 case DGA_DRAW_PIXMAP
:
847 /* pixmaps never are multibuffered */
853 dga_draw_mbgetnotify (Dga_drawable dgadraw
, DgaMbNotifyFunc
*mb_notify_func
,
856 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
857 case DGA_DRAW_WINDOW
:
858 dgai_mbsmemb_mbgetnotify((_Dga_window
)dgadraw
, mb_notify_func
, client_data
);
860 case DGA_DRAW_PIXMAP
:
861 /* pixmaps never are multibuffered */
868 dga_draw_mbaccessmode (Dga_drawable dgadraw
)
870 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
871 case DGA_DRAW_WINDOW
:
872 return (dgai_mbsmemb_mbaccessmode((_Dga_window
)dgadraw
));
873 case DGA_DRAW_PIXMAP
:
875 return (DGA_MBACCESS_NONE
);
880 dga_draw_mbsitetypeconst (Dga_drawable dgadraw
)
882 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
883 case DGA_DRAW_WINDOW
:
884 return (dgai_mbsmemb_mbsitetypeconst((_Dga_window
)dgadraw
));
885 case DGA_DRAW_PIXMAP
:
887 /* can't tell for pixmaps - be conservative */
893 dga_draw_mbsetrendbufnotify (Dga_drawable dgadraw
, DgaRendBufNotifyFunc rb_notify_func
,
896 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
897 case DGA_DRAW_WINDOW
:
898 dgai_mbsmemb_mbsetrendbufnotify((_Dga_window
)dgadraw
, rb_notify_func
, client_data
);
900 case DGA_DRAW_PIXMAP
:
901 /* pixmaps never are multibuffered */
907 dga_draw_mbgetrendbufnotify (Dga_drawable dgadraw
, DgaRendBufNotifyFunc
*rb_notify_func
,
910 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
911 case DGA_DRAW_WINDOW
:
912 dgai_mbsmemb_mbgetrendbufnotify((_Dga_window
)dgadraw
, rb_notify_func
, client_data
);
914 case DGA_DRAW_PIXMAP
:
915 /* pixmaps never are multibuffered */
922 dga_draw_ovlstatechg (Dga_drawable dgadraw
)
924 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
925 case DGA_DRAW_WINDOW
:
926 return (dgai_mbsmemb_ovlstatechg((_Dga_window
)dgadraw
));
927 case DGA_DRAW_PIXMAP
:
929 /* Pixmaps never have an ovlstate */
935 dga_draw_ovlstate (Dga_drawable dgadraw
)
937 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
938 case DGA_DRAW_WINDOW
:
939 return (dgai_mbsmemb_ovlstate((_Dga_window
)dgadraw
));
940 case DGA_DRAW_PIXMAP
:
942 /* Pixmaps never have an ovlstate */
943 return (DGA_OVLSTATE_CONFLICT
);
948 dga_draw_ovlstatesetnotify (Dga_drawable dgadraw
,
949 DgaOvlStateNotifyFunc ovlstate_notify_func
,
952 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
953 case DGA_DRAW_WINDOW
:
954 dgai_mbsmemb_setovlstatenotify((_Dga_window
)dgadraw
,
955 ovlstate_notify_func
,
957 case DGA_DRAW_PIXMAP
:
958 /* Pixmaps never have an ovlstate */
964 dga_draw_ovlstategetnotify (Dga_drawable dgadraw
,
965 DgaOvlStateNotifyFunc
*ovlstate_notify_func
,
968 switch ( ((_Dga_drawable
)dgadraw
)->drawable_type
) {
969 case DGA_DRAW_WINDOW
:
970 dgai_mbsmemb_getovlstatenotify((_Dga_window
)dgadraw
,
971 ovlstate_notify_func
,
973 case DGA_DRAW_PIXMAP
:
974 /* Pixmaps never have an ovlstate */