open-src/lib/libdga/sun-src/mbsmemb_inquiry.c
author Alan Coopersmith <Alan.Coopersmith@Sun.COM>
Thu, 18 Feb 2010 16:03:08 -0800
changeset 907 3c35d611cdaa
parent 830 186f3c438b46
child 919 425233ae7236
permissions -rw-r--r--
6927784 Remove SCCS ident tags from X gate
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
830
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
     1
/* Copyright 1997 Sun Microsystems, Inc.  All rights reserved.
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
     2
 * Use is subject to license terms.
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
     3
 *
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
     4
 * Permission is hereby granted, free of charge, to any person obtaining a
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
     5
 * copy of this software and associated documentation files (the
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
     6
 * "Software"), to deal in the Software without restriction, including
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
     7
 * without limitation the rights to use, copy, modify, merge, publish,
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
     8
 * distribute, and/or sell copies of the Software, and to permit persons
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
     9
 * to whom the Software is furnished to do so, provided that the above
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    10
 * copyright notice(s) and this permission notice appear in all copies of
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    11
 * the Software and that both the above copyright notice(s) and this
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    12
 * permission notice appear in supporting documentation.
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    13
 *
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    14
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    15
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    16
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    17
 * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    18
 * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    19
 * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    20
 * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    21
 * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    22
 * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    23
 *
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    24
 * Except as contained in this notice, the name of a copyright holder
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    25
 * shall not be used in advertising or otherwise to promote the sale, use
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    26
 * or other dealings in this Software without prior written authorization
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    27
 * of the copyright holder.
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    28
 */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    29
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    30
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    31
/* 
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    32
** mbsmemb_inquiry.c - state inquiry routines for mbufset members.
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    33
*/
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    34
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    35
#ifdef SERVER_DGA
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    36
#include <X11/Xlib.h>
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    37
#endif  /* SERVER_DGA */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    38
#include "dga_incls.h"
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    39
#include "pix_grab.h"
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    40
#include "mbufsetstr.h"
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    41
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    42
extern int dgai_rtn_ungrab_common(_Dga_window dgawin, int drawableGrabber);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    43
extern int dga_rtn_bitsperpixel(Dga_window clientpi);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    44
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    45
Display *
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    46
dgai_mbsmemb_display (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    47
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    48
    return (dgawin->w_dpy);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    49
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    50
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    51
char *
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    52
dgai_mbsmemb_devname (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    53
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    54
    if (dgawin->changeMask & DGA_CHANGE_ZOMBIE)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    55
	return (NULL);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    56
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    57
    return(((WXINFO *) (dgawin->w_info))->w_devname);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    58
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    59
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    60
int
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    61
dgai_mbsmemb_devfd (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    62
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    63
    return(dgawin->w_devfd);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    64
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    65
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    66
int
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    67
dgai_mbsmemb_depth (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    68
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    69
    WXINFO *infop = (WXINFO *) dgawin->w_info;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    70
	
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    71
    if (dgawin->changeMask & DGA_CHANGE_ZOMBIE)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    72
	return (NULL);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    73
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    74
    if (infop->w_version >= 3) 
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    75
	return((int)infop->w_depth);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    76
    else 
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    77
	return (0);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    78
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    79
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    80
void
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    81
dgai_mbsmemb_set_client_infop (_Dga_window dgawin, void *client_info_ptr)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    82
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    83
    dgawin->w_client = client_info_ptr;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    84
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    85
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    86
void *
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    87
dgai_mbsmemb_get_client_infop (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    88
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    89
    return (dgawin->w_client);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    90
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    91
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    92
void *
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    93
dgai_mbsmemb_devinfo (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    94
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    95
    SHARED_PIXMAP_INFO *infop;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    96
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    97
    if ((dgawin->eLockSubj == DGA_LOCKSUBJ_INVALID) ||
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    98
	dgawin->changeMask & DGA_CHANGE_ZOMBIE) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    99
	return (NULL);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   100
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   101
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   102
    if (dgawin->eLockSubj == -1) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   103
        WXINFO *infop = (WXINFO *) dgawin->w_info;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   104
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   105
        return ((void *) &(infop->wx_dbuf.device_info));
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   106
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   107
    infop = dgawin->pMbs->pNbShinfo[dgawin->eLockSubj];
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   108
    return (((char *)infop) + infop->device_offset);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   109
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   110
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   111
int
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   112
dgai_mbsmemb_devinfochg (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   113
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   114
    if (dgawin->changeMask & DGA_CHANGE_DEVINFO) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   115
	dgawin->changeMask &= ~DGA_CHANGE_DEVINFO;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   116
	return (1);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   117
    } else {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   118
	return (0);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   119
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   120
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   121
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   122
int
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   123
dgai_mbsmemb_sitechg (_Dga_window dgawin, int *reason)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   124
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   125
    if (dgawin->changeMask & DGA_CHANGE_SITE) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   126
	dgawin->changeMask &= ~DGA_CHANGE_SITE;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   127
	*reason = dgawin->siteChgReason;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   128
	return (1);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   129
    } else {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   130
	*reason = DGA_SITECHG_UNKNOWN;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   131
	return (0);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   132
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   133
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   134
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   135
void
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   136
dgai_mbsmemb_sitesetnotify (_Dga_window dgawin, DgaSiteNotifyFunc site_notify_func,
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   137
			   void *client_data)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   138
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   139
    dgawin->siteNotifyFunc = site_notify_func;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   140
    dgawin->siteNotifyClientData = client_data;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   141
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   142
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   143
void
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   144
dgai_mbsmemb_sitegetnotify (_Dga_window dgawin, DgaSiteNotifyFunc *site_notify_func,
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   145
			   void **client_data)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   146
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   147
    *site_notify_func = dgawin->siteNotifyFunc;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   148
    *client_data = dgawin->siteNotifyClientData;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   149
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   150
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   151
int
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   152
dgai_mbsmemb_site (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   153
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   154
    SHARED_PIXMAP_INFO *infop;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   155
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   156
    if ((dgawin->eLockSubj == DGA_LOCKSUBJ_INVALID)||
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   157
	 dgawin->changeMask & DGA_CHANGE_ZOMBIE) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   158
	return (DGA_SITE_NULL);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   159
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   160
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   161
    /* viewable drawables always are in device site */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   162
    if (DGA_LOCKSUBJ_VIEWABLE(dgawin, dgawin->eLockSubj)) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   163
	return (DGA_SITE_DEVICE);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   164
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   165
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   166
    /* the site of a nonviewable multibuffer depends on whether or not
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   167
       it is cached */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   168
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   169
    infop = dgawin->pMbs->pNbShinfo[dgawin->eLockSubj];
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   170
    return (infop->cached ? DGA_SITE_DEVICE : DGA_SITE_SYSTEM);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   171
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   172
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   173
void *
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   174
dgai_mbsmemb_address (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   175
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   176
    SHARED_PIXMAP_INFO *infop;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   177
    
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   178
    if ((dgawin->eLockSubj == DGA_LOCKSUBJ_INVALID) ||
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   179
    	dgawin->changeMask & DGA_CHANGE_ZOMBIE ||
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   180
	DGA_LOCKSUBJ_VIEWABLE(dgawin, dgawin->eLockSubj)) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   181
	return (NULL);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   182
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   183
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   184
    /* the return value is only valid for nonviewable multibuffers that
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   185
       are not cached */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   186
    	infop = dgawin->pMbs->pNbShinfo[dgawin->eLockSubj];
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   187
    	return (infop->cached ? NULL : (void *)(infop + 1));
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   188
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   189
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   190
int
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   191
dgai_mbsmemb_linebytes (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   192
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   193
    SHARED_PIXMAP_INFO *infop;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   194
    
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   195
    if ((dgawin->eLockSubj == DGA_LOCKSUBJ_INVALID) ||
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   196
	dgawin->changeMask & DGA_CHANGE_ZOMBIE ||
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   197
	DGA_LOCKSUBJ_VIEWABLE(dgawin, dgawin->eLockSubj)) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   198
	return (0);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   199
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   200
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   201
    /* the return value is only valid for nonviewable multibuffers that
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   202
       are not cached */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   203
    infop = dgawin->pMbs->pNbShinfo[dgawin->eLockSubj];
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   204
    return (infop->cached ? 0 : infop->linebytes);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   205
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   206
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   207
int
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   208
dgai_mbsmemb_bitsperpixel (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   209
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   210
    SHARED_PIXMAP_INFO *infop;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   211
    
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   212
    if ((dgawin->eLockSubj == DGA_LOCKSUBJ_INVALID) ||
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   213
	dgawin->changeMask & DGA_CHANGE_ZOMBIE ||
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   214
	DGA_LOCKSUBJ_VIEWABLE(dgawin, dgawin->eLockSubj)) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   215
	return (0);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   216
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   217
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   218
    /* the return value is only valid for nonviewable multibuffers that
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   219
       are not cached */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   220
    infop = dgawin->pMbs->pNbShinfo[dgawin->eLockSubj];
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   221
    return (infop->cached ? 0 : infop->bitsperpixel);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   222
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   223
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   224
int
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   225
dgai_mbsmemb_clipchg (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   226
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   227
    /* always force a clip change on a zombie to get the client
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   228
       to notice */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   229
    if (dgawin->changeMask & DGA_CHANGE_ZOMBIE) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   230
	return (1);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   231
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   232
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   233
    if (DGA_LOCKSUBJ_VIEWABLE(dgawin, dgawin->eLockSubj)) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   234
	if (dga_win_clipchg((Dga_window)dgawin) || 
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   235
	    (dgawin->changeMask & DGA_CHANGE_CLIP)) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   236
	    dgawin->changeMask &= ~DGA_CHANGE_CLIP;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   237
	    return (1);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   238
	} else {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   239
	    return (0);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   240
	}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   241
    } else {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   242
	/* nonviewable */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   243
	if (dgawin->changeMask & DGA_CHANGE_CLIP) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   244
	    dgawin->changeMask &= ~DGA_CHANGE_CLIP;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   245
	    return (1);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   246
        } else {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   247
	    return (0);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   248
	}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   249
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   250
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   251
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   252
void
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   253
dgai_mbsmemb_bbox(_Dga_window dgawin, int *xp, int *yp, int *widthp, int *heightp)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   254
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   255
    if ((dgawin->eLockSubj == DGA_LOCKSUBJ_INVALID) ||
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   256
	dgawin->changeMask & DGA_CHANGE_ZOMBIE) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   257
	*xp = 0;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   258
	*yp = 0;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   259
	*widthp = 0;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   260
	*heightp = 0;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   261
	return;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   262
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   263
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   264
    if (DGA_LOCKSUBJ_VIEWABLE(dgawin, dgawin->eLockSubj)) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   265
	dga_win_bbox((Dga_window)dgawin, xp, yp, widthp, heightp);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   266
    } else {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   267
	/* nonviewable */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   268
	SHARED_PIXMAP_INFO *infop;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   269
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   270
	infop = dgawin->pMbs->pNbShinfo[dgawin->eLockSubj];
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   271
	*xp = 0;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   272
	*yp = 0;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   273
	*widthp = infop->width;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   274
	*heightp = infop->height;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   275
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   276
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   277
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   278
int
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   279
dgai_mbsmemb_visibility (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   280
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   281
    if (dgawin->changeMask & DGA_CHANGE_ZOMBIE) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   282
	return (DGA_VIS_FULLY_OBSCURED);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   283
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   284
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   285
    if (DGA_LOCKSUBJ_VIEWABLE(dgawin, dgawin->eLockSubj)) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   286
	return (dgai_win_visibility((Dga_window)dgawin));
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   287
    } else {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   288
        /* Non viewable mbufs are always unobscured */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   289
        return (DGA_VIS_UNOBSCURED);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   290
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   291
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   292
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   293
int
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   294
dgai_mbsmemb_empty (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   295
{ 
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   296
    if ((dgawin->eLockSubj == DGA_LOCKSUBJ_INVALID)||
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   297
	dgawin->changeMask & DGA_CHANGE_ZOMBIE) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   298
	return (1);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   299
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   300
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   301
    if (DGA_LOCKSUBJ_VIEWABLE(dgawin, dgawin->eLockSubj)) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   302
	return (dga_win_empty((Dga_window)dgawin));
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   303
    } else {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   304
	/* nonviewable */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   305
	SHARED_PIXMAP_INFO *infop;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   306
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   307
	infop = dgawin->pMbs->pNbShinfo[dgawin->eLockSubj];
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   308
	return (infop->width <= 0 || infop->height <= 0);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   309
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   310
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   311
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   312
static short nonviewableShape[] = {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   313
    0, /* ymin */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   314
    0, /* ymax: fill in based on height */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   315
    0, /* xmin */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   316
    0, /* xmax: fill in based on width */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   317
    DGA_X_EOL,
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   318
    DGA_Y_EOL,
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   319
};
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   320
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   321
#define YMAX_INDEX 1
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   322
#define XMAX_INDEX 3
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   323
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   324
short *
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   325
dgai_mbsmemb_clipinfo (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   326
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   327
    if ((dgawin->eLockSubj == DGA_LOCKSUBJ_INVALID) ||
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   328
	 dgawin->changeMask & DGA_CHANGE_ZOMBIE) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   329
	return (NULL);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   330
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   331
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   332
    if (DGA_LOCKSUBJ_VIEWABLE(dgawin, dgawin->eLockSubj)) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   333
	return (dga_win_clipinfo((Dga_window)dgawin));
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   334
    } else {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   335
	/* nonviewable */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   336
	SHARED_PIXMAP_INFO *infop;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   337
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   338
	/* build a dummy shape describing the rectangle */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   339
	infop = dgawin->pMbs->pNbShinfo[dgawin->eLockSubj];
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   340
	if (infop->width <= 0 || infop->height <= 0) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   341
	    return (NULL);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   342
	} else {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   343
	    nonviewableShape[YMAX_INDEX] = infop->height - 1;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   344
	    nonviewableShape[XMAX_INDEX] = infop->width - 1;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   345
	    return (nonviewableShape);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   346
	}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   347
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   348
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   349
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   350
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   351
int
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   352
dgai_mbsmemb_singlerect (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   353
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   354
    if (dgawin->changeMask & DGA_CHANGE_ZOMBIE) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   355
	/* consider a zombie to be a "single rectangle" of 0 width and height */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   356
	return (1);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   357
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   358
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   359
    if (DGA_LOCKSUBJ_VIEWABLE(dgawin, dgawin->eLockSubj)) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   360
	return (dga_win_singlerect((Dga_window)dgawin));
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   361
    } else {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   362
	/* nonviewable is always a single rectangle */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   363
	return (1);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   364
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   365
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   366
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   367
int
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   368
dgai_mbsmemb_obscured (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   369
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   370
    if (dgawin->changeMask & DGA_CHANGE_ZOMBIE) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   371
	/* consider a zombie to be always fully obscured */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   372
	return (1);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   373
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   374
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   375
    if (DGA_LOCKSUBJ_VIEWABLE(dgawin, dgawin->eLockSubj)) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   376
	return (dga_win_obscured((Dga_window)dgawin));
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   377
    } else {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   378
	/* nonviewable can never be obscured */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   379
	return (0);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   380
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   381
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   382
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   383
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   384
u_short
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   385
dgai_mbsmemb_borderwidth (_Dga_window dgawin) 
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   386
{ 
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   387
    if (dgawin->changeMask & DGA_CHANGE_ZOMBIE) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   388
	/* zombies don't have borders */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   389
	return (0);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   390
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   391
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   392
    if (DGA_LOCKSUBJ_WINDOW(dgawin, dgawin->eLockSubj)) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   393
	return (dga_win_borderwidth((Dga_window)dgawin));
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   394
    } else {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   395
	/* multibuffers don't have borders */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   396
	return (0);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   397
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   398
} 
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   399
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   400
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   401
typedef void (*DgaCursTakeDownFuncOld)();
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   402
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   403
void
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   404
dgai_mbsmemb_curshandle (_Dga_window dgawin, DgaCursTakeDownFunc take_down_func,
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   405
		        void *client_data)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   406
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   407
    Dga_window dgaw;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   408
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   409
    /* Nonviewable drawables never have a cursor */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   410
    if (!DGA_LOCKSUBJ_VIEWABLE(dgawin, dgawin->eLockSubj)) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   411
	return;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   412
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   413
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   414
    /* viewable multibuffers share the cursor of the main window */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   415
    dgaw = (Dga_window) dgawin;    
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   416
    if (dga_win_curschg(dgaw)) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   417
	if (dga_win_cursactive(dgaw)) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   418
	    dga_win_cursupdate(dgaw, 
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   419
			       (DgaCursTakeDownFuncOld)take_down_func,
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   420
			       client_data);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   421
	}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   422
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   423
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   424
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   425
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   426
int
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   427
dgai_mbsmemb_rtngrab (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   428
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   429
    /* rtngrab is not something that must be called from inside a lock
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   430
     * and therefore the eLockSubj is meaningless.  Just do a
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   431
     * dga_rtn_grab() on the window. */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   432
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   433
    return (dga_rtn_grab((Dga_window)dgawin));
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   434
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   435
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   436
int
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   437
dgai_mbsmemb_rtnungrab (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   438
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   439
    return (dgai_rtn_ungrab_common(dgawin,1));
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   440
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   441
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   442
int
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   443
dgai_mbsmemb_rtnchg (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   444
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   445
    if (DGA_LOCKSUBJ_WINDOW(dgawin, dgawin->eLockSubj)) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   446
	return (dga_win_rtnchg((Dga_window)dgawin));
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   447
    } else {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   448
	/* rtn is not applicable to multibuffers -- always force an activity check */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   449
	return (1);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   450
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   451
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   452
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   453
int
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   454
dgai_mbsmemb_rtnactive (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   455
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   456
    if (DGA_LOCKSUBJ_WINDOW(dgawin, dgawin->eLockSubj)) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   457
	return (dga_rtn_active((Dga_window)dgawin));
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   458
    } else {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   459
	/* rtn is not applicable to multibuffers -- never active */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   460
	return (0);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   461
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   462
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   463
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   464
int
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   465
dgai_mbsmemb_rtncached (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   466
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   467
    if (DGA_LOCKSUBJ_WINDOW(dgawin, dgawin->eLockSubj)) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   468
	return (dga_rtn_cached((Dga_window)dgawin));
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   469
    } else {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   470
	/* rtn is not applicable to multibuffers -- never cached */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   471
	return (0);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   472
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   473
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   474
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   475
void *
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   476
dgai_mbsmemb_rtndevinfop (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   477
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   478
    if (DGA_LOCKSUBJ_WINDOW(dgawin, dgawin->eLockSubj)) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   479
	return (dga_rtn_devinfo((Dga_window)dgawin));
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   480
    } else {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   481
	/* rtn is not applicable to multibuffers -- no devinfo */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   482
	return (NULL);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   483
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   484
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   485
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   486
void
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   487
dgai_mbsmemb_rtndevtype (_Dga_window dgawin, u_char *type, char **name)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   488
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   489
    if (DGA_LOCKSUBJ_WINDOW(dgawin, dgawin->eLockSubj)) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   490
	dga_rtn_devtype((Dga_window)dgawin, type, name);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   491
    } else {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   492
	/* rtn is not applicable to multibuffers -- values of return args are arbitrary */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   493
	*type = (u_char) 0;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   494
	*name = NULL;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   495
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   496
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   497
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   498
void
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   499
dgai_mbsmemb_rtndimensions (_Dga_window dgawin, short *width, short *height, 
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   500
			    u_int *linebytes)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   501
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   502
    if (DGA_LOCKSUBJ_WINDOW(dgawin, dgawin->eLockSubj)) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   503
	dga_rtn_dimensions((Dga_window)dgawin, width, height, linebytes);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   504
    } else {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   505
	/* rtn is not applicable to multibuffers -- values of return args are arbitrary */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   506
	*width =  0;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   507
	*height = 0;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   508
	*linebytes = 0;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   509
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   510
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   511
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   512
int
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   513
dgai_mbsmemb_rtnbitsperpixel (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   514
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   515
    if (DGA_LOCKSUBJ_WINDOW(dgawin, dgawin->eLockSubj)) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   516
	return (dga_rtn_bitsperpixel((Dga_window)dgawin));
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   517
    } else {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   518
	/* rtn is not applicable to multibuffers -- values of return args are arbitrary */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   519
	return (0);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   520
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   521
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   522
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   523
void *
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   524
dgai_mbsmemb_rtnpixels (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   525
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   526
    if (DGA_LOCKSUBJ_WINDOW(dgawin, dgawin->eLockSubj)) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   527
	return (dga_rtn_pixels((Dga_window)dgawin));
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   528
    } else {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   529
	/* rtn is not applicable to multibuffers -- return NULL */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   530
	return (NULL);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   531
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   532
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   533
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   534
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   535
int
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   536
dgai_mbsmemb_mbchg (_Dga_window dgawin, int *reason)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   537
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   538
    if (dgawin->changeMask & DGA_CHANGE_MBUFSET) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   539
	dgawin->changeMask &= ~DGA_CHANGE_MBUFSET;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   540
	*reason = dgawin->mbChgReason;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   541
	return (1);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   542
    } else {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   543
	*reason = DGA_MBCHG_UNKNOWN;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   544
	return (0);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   545
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   546
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   547
 
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   548
void
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   549
dgai_mbsmemb_mbsetnotify (_Dga_window dgawin, DgaMbNotifyFunc mb_notify_func,
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   550
			   void *client_data)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   551
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   552
    dgawin->mbNotifyFunc = mb_notify_func;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   553
    dgawin->mbNotifyClientData = client_data;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   554
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   555
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   556
void
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   557
dgai_mbsmemb_mbgetnotify (_Dga_window dgawin, DgaMbNotifyFunc *mb_notify_func,
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   558
			   void **client_data)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   559
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   560
    *mb_notify_func = dgawin->mbNotifyFunc;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   561
    *client_data = dgawin->mbNotifyClientData;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   562
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   563
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   564
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   565
int
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   566
dgai_mbsmemb_mbaccessmode (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   567
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   568
    if (!dgawin->pMbs) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   569
	return (DGA_MBACCESS_NONE);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   570
    } else {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   571
	WXINFO	*infop;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   572
	
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   573
	infop = (WXINFO *) dgawin->w_info;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   574
	
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   575
	return (infop->w_mbsInfo.accessMode);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   576
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   577
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   578
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   579
int
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   580
dgai_mbsmemb_mbsitetypeconst (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   581
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   582
    if (!dgawin->pMbs) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   583
	return (1);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   584
    } else {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   585
	WXINFO	*infop;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   586
	
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   587
	infop = (WXINFO *) dgawin->w_info;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   588
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   589
	return (infop->w_mbsInfo.siteTypeConst);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   590
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   591
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   592
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   593
void
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   594
dgai_mbsmemb_mbsetrendbufnotify (_Dga_window dgawin, DgaRendBufNotifyFunc rb_notify_func,
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   595
				void *client_data)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   596
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   597
    dgawin->rendBufNotifyFunc = rb_notify_func;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   598
    dgawin->rendBufNotifyClientData = client_data;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   599
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   600
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   601
void
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   602
dgai_mbsmemb_mbgetrendbufnotify (_Dga_window dgawin, DgaRendBufNotifyFunc *rb_notify_func,
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   603
				void **client_data)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   604
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   605
    *rb_notify_func = dgawin->rendBufNotifyFunc;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   606
    *client_data = dgawin->rendBufNotifyClientData;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   607
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   608
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   609
int
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   610
dgai_mbsmemb_ovlstatechg (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   611
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   612
    if (dgawin->changeMask & DGA_CHANGE_OVLSTATE) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   613
	dgawin->changeMask &= ~DGA_CHANGE_OVLSTATE;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   614
	return (1);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   615
    } else {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   616
	return (0);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   617
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   618
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   619
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   620
int
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   621
dgai_mbsmemb_ovlstate (_Dga_window dgawin)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   622
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   623
    /* REMIND: Do we need to check this stuff? */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   624
    if ((dgawin->eLockSubj == DGA_LOCKSUBJ_INVALID) ||
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   625
	(dgawin->changeMask & DGA_CHANGE_ZOMBIE)) {
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   626
	return (DGA_OVLSTATE_CONFLICT);
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   627
    }
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   628
    if (!dgawin->isOverlay)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   629
	/* Don't let clients do "overlay" rendering to regular windows! */
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   630
	return DGA_OVLSTATE_CONFLICT;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   631
    else
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   632
	return dgawin->c_ovlstate;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   633
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   634
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   635
void
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   636
dgai_mbsmemb_setovlstatenotify (_Dga_window dgawin, 
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   637
				DgaOvlStateNotifyFunc ovlstate_notify_func,
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   638
				void *client_data)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   639
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   640
    dgawin->ovlStateNotifyFunc = ovlstate_notify_func;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   641
    dgawin->ovlStateNotifyClientData = client_data;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   642
}
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   643
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   644
void
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   645
dgai_mbsmemb_getovlstatenotify (_Dga_window dgawin, 
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   646
				DgaOvlStateNotifyFunc *ovlstate_notify_func,
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   647
				void **client_data)
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   648
{
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   649
    *ovlstate_notify_func = dgawin->ovlStateNotifyFunc;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   650
    *client_data = dgawin->ovlStateNotifyClientData;
186f3c438b46 6899630 move libdga to open-src & /usr/X11
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   651
}