xenocara/driver/xf86-video-ati/src/aticursor.c

80 lines
2.4 KiB
C
Raw Normal View History

2006-11-26 13:00:15 -07:00
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticursor.c,v 1.4 2003/04/23 21:51:27 tsi Exp $ */
/*
* Copyright 2001 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
* the above copyright notice appear in all copies and that both that copyright
* notice and this permission notice appear in supporting documentation, and
* that the name of Marc Aurele La France not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. Marc Aurele La France makes no representations
* about the suitability of this software for any purpose. It is provided
* "as-is" without express or implied warranty.
*
* MARC AURELE LA FRANCE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
* EVENT SHALL MARC AURELE LA FRANCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "atiadapter.h"
#include "aticursor.h"
#include "atimach64cursor.h"
#include "atistruct.h"
#include "xf86.h"
/*
* ATIInitializeCursor --
*
* This function initialises the screen cursor.
*/
Bool
ATIInitializeCursor
(
ScreenPtr pScreen,
ATIPtr pATI
)
{
/* Initialise software cursor */
if (!miDCInitialize(pScreen, xf86GetPointerScreenFuncs()))
return FALSE;
if (pATI->Cursor == ATI_CURSOR_SOFTWARE)
return TRUE;
if (!(pATI->pCursorInfo = xf86CreateCursorInfoRec()))
return FALSE;
switch (pATI->Adapter)
{
case ATI_ADAPTER_MACH64:
if (ATIMach64CursorInit(pATI->pCursorInfo))
break;
/* Fall through */
default:
xf86DestroyCursorInfoRec(pATI->pCursorInfo);
pATI->pCursorInfo = NULL;
return FALSE;
}
if (xf86InitCursor(pScreen, pATI->pCursorInfo))
{
xf86SetSilkenMouse(pScreen);
return TRUE;
}
xf86DestroyCursorInfoRec(pATI->pCursorInfo);
pATI->pCursorInfo = NULL;
return FALSE;
}