1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd/* Copyright (c) 1993, 1994, Oracle and/or its affiliates. All rights reserved.
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd *
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd * Permission is hereby granted, free of charge, to any person obtaining a
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd * copy of this software and associated documentation files (the "Software"),
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd * to deal in the Software without restriction, including without limitation
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd * the rights to use, copy, modify, merge, publish, distribute, sublicense,
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd * and/or sell copies of the Software, and to permit persons to whom the
8b7e19de6d547ab1ad4256316fbf0d2497f724f8humbedooh * Software is furnished to do so, subject to the following conditions:
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd *
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd * The above copyright notice and this permission notice (including the next
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen * paragraph) shall be included in all copies or substantial portions of the
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen * Software.
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen *
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
d229f940abfb2490dee17979e9a5ff31b7012eb5rbowen * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
3f08db06526d6901aa08c110b5bc7dde6bc39905nd * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd * DEALINGS IN THE SOFTWARE.
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd */
8b7e19de6d547ab1ad4256316fbf0d2497f724f8humbedooh
3b3b7fc78d1f5bfc2769903375050048ff41ff26nd
f086b4b402fa9a2fefc7dda85de2a3cc1cd0a654rjung#ifndef _DGA_MBUFSETSTR_H
3b3b7fc78d1f5bfc2769903375050048ff41ff26nd#define _DGA_MBUFSETSTR_H
3b3b7fc78d1f5bfc2769903375050048ff41ff26nd
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd/*
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd** Client structure for multibuffer set.
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd*/
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd/*
8b7e19de6d547ab1ad4256316fbf0d2497f724f8humbedooh** A "multibuffer set" (mbufset) stores client-side info about the multibuffers
8b7e19de6d547ab1ad4256316fbf0d2497f724f8humbedooh** attached to a multibuffered window.
8b7e19de6d547ab1ad4256316fbf0d2497f724f8humbedooh*/
8b7e19de6d547ab1ad4256316fbf0d2497f724f8humbedooh
1eba1be63201689b2d3e651d3a35f0bc2057e2c0ndtypedef struct dga_mbufset {
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd unsigned int refcnt;
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd short numBufs;
30471a4650391f57975f60bbb6e4a90be7b284bfhumbedooh _Dga_pixmap pNbPixmaps[DGA_MAX_GRABBABLE_BUFS];
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd /* shared info for nonviewable mbufs. Indices that
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd correspond to viewable mbufs are always NULL */
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd SHARED_PIXMAP_INFO *pNbShinfo[DGA_MAX_GRABBABLE_BUFS];
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd u_int mbufseq[DGA_MAX_GRABBABLE_BUFS];
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd u_int clipseq[DGA_MAX_GRABBABLE_BUFS];
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd u_int curseq[DGA_MAX_GRABBABLE_BUFS];
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd /* last recorded cache count for nonviewable mbufs. Indices that
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd correspond to viewable mbufs are always 0 */
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd u_int cacheSeqs[DGA_MAX_GRABBABLE_BUFS];
1050464f9f91f75e7a1c5c3daf3fb7b8aa74592ahumbedooh
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd /* last recorded cache count for nonviewable mbufs. Indices that
1050464f9f91f75e7a1c5c3daf3fb7b8aa74592ahumbedooh correspond to viewable mbufs are always 0 (viewable mbufs
1050464f9f91f75e7a1c5c3daf3fb7b8aa74592ahumbedooh don't have devce info) */
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd u_int devInfoSeqs[DGA_MAX_GRABBABLE_BUFS];
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd /* Has the buffer been locked previously? */
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd char prevLocked[DGA_MAX_GRABBABLE_BUFS];
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd} DgaMbufSet;
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd#endif /* _DGA_MBUFSETSTR_H */
1eba1be63201689b2d3e651d3a35f0bc2057e2c0nd
1050464f9f91f75e7a1c5c3daf3fb7b8aa74592ahumbedooh