dmxpixmap.h revision 040abec2534dadc53ebc8fa378ef03f4feecb7db
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy/*
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy * Copyright 2001-2004 Red Hat Inc., Durham, North Carolina.
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy *
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy * All Rights Reserved.
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy *
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy * Permission is hereby granted, free of charge, to any person obtaining
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy * a copy of this software and associated documentation files (the
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy * "Software"), to deal in the Software without restriction, including
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy * without limitation on the rights to use, copy, modify, merge,
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy * publish, distribute, sublicense, and/or sell copies of the Software,
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy * and to permit persons to whom the Software is furnished to do so,
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy * subject to the following conditions:
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy *
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy * The above copyright notice and this permission notice (including the
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy * next paragraph) shall be included in all copies or substantial
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy * portions of the Software.
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy *
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy * NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy * SOFTWARE.
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy */
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy/*
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy * Authors:
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy * Kevin E. Martin <kem@redhat.com>
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy *
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy */
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy/** \file
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy * Interface for pixmap support. \see dmxpixmap.c */
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy#ifndef DMXPIXMAP_H
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy#define DMXPIXMAP_H
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy#include "pixmapstr.h"
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy/** Pixmap private area. */
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roytypedef struct _dmxPixPriv {
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy Pixmap pixmap;
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy XImage *detachedImage;
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy} dmxPixPrivRec, *dmxPixPrivPtr;
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Royextern Bool dmxInitPixmap(ScreenPtr pScreen);
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Royextern PixmapPtr dmxCreatePixmap(ScreenPtr pScreen,
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy int width, int height, int depth,
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy unsigned usage_hint);
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Royextern Bool dmxDestroyPixmap(PixmapPtr pPixmap);
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Royextern RegionPtr dmxBitmapToRegion(PixmapPtr pPixmap);
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Royextern void dmxBECreatePixmap(PixmapPtr pPixmap);
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Royextern Bool dmxBEFreePixmap(PixmapPtr pPixmap);
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy/** Private index. \see dmxpicmap.h \see dmxscrinit.c */
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Royextern DevPrivateKey dmxPixPrivateKey;
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy/** Get pixmap private pointer. */
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy#define DMX_GET_PIXMAP_PRIV(_pPix) \
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy (dmxPixPrivPtr)dixLookupPrivate(&(_pPix)->devPrivates, dmxPixPrivateKey)
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy#endif /* DMXPIXMAP_H */
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy