hw/kdrive/ati/radeon_composite.c Support linear filtering
Change how touch screens work -- make them just another 'mouse' device. Add unfinished (and unused) code to accelerate tiled fills.
This commit is contained in:
parent
70d3a9192f
commit
db2c83551c
|
@ -164,7 +164,7 @@ R100TextureSetup(PicturePtr pPict, PixmapPtr pPix, int unit)
|
||||||
{
|
{
|
||||||
ATIScreenInfo *atis = accel_atis;
|
ATIScreenInfo *atis = accel_atis;
|
||||||
KdScreenPriv(pPix->drawable.pScreen);
|
KdScreenPriv(pPix->drawable.pScreen);
|
||||||
CARD32 txformat, txoffset, txpitch;
|
CARD32 txfilter, txformat, txoffset, txpitch;
|
||||||
int w = pPict->pDrawable->width;
|
int w = pPict->pDrawable->width;
|
||||||
int h = pPict->pDrawable->height;
|
int h = pPict->pDrawable->height;
|
||||||
int i;
|
int i;
|
||||||
|
@ -196,10 +196,24 @@ R100TextureSetup(PicturePtr pPict, PixmapPtr pPix, int unit)
|
||||||
if ((txpitch & 0x1f) != 0)
|
if ((txpitch & 0x1f) != 0)
|
||||||
ATI_FALLBACK(("Bad texture pitch 0x%x\n", txpitch));
|
ATI_FALLBACK(("Bad texture pitch 0x%x\n", txpitch));
|
||||||
|
|
||||||
|
switch (pPict->filter) {
|
||||||
|
case PictFilterNearest:
|
||||||
|
txfilter = (RADEON_MAG_FILTER_NEAREST |
|
||||||
|
RADEON_MIN_FILTER_NEAREST);
|
||||||
|
break;
|
||||||
|
case PictFilterBilinear:
|
||||||
|
txfilter = (RADEON_MAG_FILTER_LINEAR |
|
||||||
|
RADEON_MIN_FILTER_LINEAR);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ATI_FALLBACK (("Bad filter 0x%x\n", pPict->filter));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
BEGIN_DMA(7);
|
BEGIN_DMA(7);
|
||||||
if (unit == 0) {
|
if (unit == 0) {
|
||||||
OUT_RING(DMA_PACKET0(RADEON_REG_PP_TXFILTER_0, 3));
|
OUT_RING(DMA_PACKET0(RADEON_REG_PP_TXFILTER_0, 3));
|
||||||
OUT_RING_REG(RADEON_REG_PP_TXFILTER_0, 0);
|
OUT_RING_REG(RADEON_REG_PP_TXFILTER_0, txfilter);
|
||||||
OUT_RING_REG(RADEON_REG_PP_TXFORMAT_0, txformat);
|
OUT_RING_REG(RADEON_REG_PP_TXFORMAT_0, txformat);
|
||||||
OUT_RING_REG(RADEON_REG_PP_TXOFFSET_0, txoffset);
|
OUT_RING_REG(RADEON_REG_PP_TXOFFSET_0, txoffset);
|
||||||
OUT_RING(DMA_PACKET0(RADEON_REG_PP_TEX_SIZE_0, 2));
|
OUT_RING(DMA_PACKET0(RADEON_REG_PP_TEX_SIZE_0, 2));
|
||||||
|
@ -209,7 +223,7 @@ R100TextureSetup(PicturePtr pPict, PixmapPtr pPix, int unit)
|
||||||
OUT_RING_REG(RADEON_REG_PP_TEX_PITCH_0, txpitch - 32);
|
OUT_RING_REG(RADEON_REG_PP_TEX_PITCH_0, txpitch - 32);
|
||||||
} else {
|
} else {
|
||||||
OUT_RING(DMA_PACKET0(RADEON_REG_PP_TXFILTER_1, 3));
|
OUT_RING(DMA_PACKET0(RADEON_REG_PP_TXFILTER_1, 3));
|
||||||
OUT_RING_REG(RADEON_REG_PP_TXFILTER_1, 0);
|
OUT_RING_REG(RADEON_REG_PP_TXFILTER_1, txfilter);
|
||||||
OUT_RING_REG(RADEON_REG_PP_TXFORMAT_1, txformat);
|
OUT_RING_REG(RADEON_REG_PP_TXFORMAT_1, txformat);
|
||||||
OUT_RING_REG(RADEON_REG_PP_TXOFFSET_1, txoffset);
|
OUT_RING_REG(RADEON_REG_PP_TXOFFSET_1, txoffset);
|
||||||
OUT_RING(DMA_PACKET0(RADEON_REG_PP_TEX_SIZE_1, 2));
|
OUT_RING(DMA_PACKET0(RADEON_REG_PP_TEX_SIZE_1, 2));
|
||||||
|
|
|
@ -47,7 +47,7 @@ InitInput (int argc, char **argv)
|
||||||
{
|
{
|
||||||
KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs);
|
KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs);
|
||||||
#ifdef TOUCHSCREEN
|
#ifdef TOUCHSCREEN
|
||||||
KdInitTouchScreen (&TsFuncs);
|
KdAddMouseDriver (&TsFuncs);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -52,7 +52,7 @@ InitInput (int argc, char **argv)
|
||||||
{
|
{
|
||||||
KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs);
|
KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs);
|
||||||
#ifdef TOUCHSCREEN
|
#ifdef TOUCHSCREEN
|
||||||
KdInitTouchScreen (&TsFuncs);
|
KdAddMouseDriver (&TsFuncs);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@ liblinux_a_SOURCES = \
|
||||||
klinux.h \
|
klinux.h \
|
||||||
linux.c \
|
linux.c \
|
||||||
mouse.c \
|
mouse.c \
|
||||||
|
evdev.c \
|
||||||
ms.c \
|
ms.c \
|
||||||
ps2.c \
|
ps2.c \
|
||||||
$(TSLIB_C) \
|
$(TSLIB_C) \
|
||||||
|
@ -32,6 +33,7 @@ liblinux_a_DEPENDENCIES = \
|
||||||
keyboard.c \
|
keyboard.c \
|
||||||
linux.c \
|
linux.c \
|
||||||
mouse.c \
|
mouse.c \
|
||||||
|
evdev.c \
|
||||||
ms.c \
|
ms.c \
|
||||||
ps2.c \
|
ps2.c \
|
||||||
$(TSLIB_C) \
|
$(TSLIB_C) \
|
||||||
|
|
|
@ -429,28 +429,31 @@ LinuxFini (void)
|
||||||
}
|
}
|
||||||
memset (&vts, '\0', sizeof (vts)); /* valgrind */
|
memset (&vts, '\0', sizeof (vts)); /* valgrind */
|
||||||
ioctl (LinuxConsoleFd, VT_GETSTATE, &vts);
|
ioctl (LinuxConsoleFd, VT_GETSTATE, &vts);
|
||||||
/*
|
if (vtno == vts.v_active)
|
||||||
* Find a legal VT to switch to, either the one we started from
|
|
||||||
* or the lowest active one that isn't ours
|
|
||||||
*/
|
|
||||||
if (activeVT < 0 ||
|
|
||||||
activeVT == vts.v_active ||
|
|
||||||
!(vts.v_state & (1 << activeVT)))
|
|
||||||
{
|
{
|
||||||
for (activeVT = 1; activeVT < 16; activeVT++)
|
/*
|
||||||
if (activeVT != vtno && (vts.v_state & (1 << activeVT)))
|
* Find a legal VT to switch to, either the one we started from
|
||||||
break;
|
* or the lowest active one that isn't ours
|
||||||
if (activeVT == 16)
|
*/
|
||||||
|
if (activeVT < 0 ||
|
||||||
|
activeVT == vts.v_active ||
|
||||||
|
!(vts.v_state & (1 << activeVT)))
|
||||||
|
{
|
||||||
|
for (activeVT = 1; activeVT < 16; activeVT++)
|
||||||
|
if (activeVT != vtno && (vts.v_state & (1 << activeVT)))
|
||||||
|
break;
|
||||||
|
if (activeVT == 16)
|
||||||
|
activeVT = -1;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* Perform a switch back to the active VT when we were started
|
||||||
|
*/
|
||||||
|
if (activeVT >= -1)
|
||||||
|
{
|
||||||
|
ioctl (LinuxConsoleFd, VT_ACTIVATE, activeVT);
|
||||||
|
ioctl (LinuxConsoleFd, VT_WAITACTIVE, activeVT);
|
||||||
activeVT = -1;
|
activeVT = -1;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
* Perform a switch back to the active VT when we were started
|
|
||||||
*/
|
|
||||||
if (activeVT >= -1)
|
|
||||||
{
|
|
||||||
ioctl (LinuxConsoleFd, VT_ACTIVATE, activeVT);
|
|
||||||
ioctl (LinuxConsoleFd, VT_WAITACTIVE, activeVT);
|
|
||||||
activeVT = -1;
|
|
||||||
}
|
}
|
||||||
close(LinuxConsoleFd); /* make the vt-manager happy */
|
close(LinuxConsoleFd); /* make the vt-manager happy */
|
||||||
fd = open ("/dev/tty0", O_RDWR|O_NDELAY, 0);
|
fd = open ("/dev/tty0", O_RDWR|O_NDELAY, 0);
|
||||||
|
|
|
@ -41,6 +41,8 @@ InitCard (char *name)
|
||||||
KdCardInfoAdd (&mach64Funcs, &attr, 0);
|
KdCardInfoAdd (&mach64Funcs, &attr, 0);
|
||||||
else if (LinuxFindPci (0x1002, 0x4c46, 0, &attr))
|
else if (LinuxFindPci (0x1002, 0x4c46, 0, &attr))
|
||||||
KdCardInfoAdd (&mach64Funcs, &attr, 0);
|
KdCardInfoAdd (&mach64Funcs, &attr, 0);
|
||||||
|
else if (LinuxFindPci (0x1002, 0x4c42, 0, &attr))
|
||||||
|
KdCardInfoAdd (&mach64Funcs, &attr, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -1,3 +1,37 @@
|
||||||
|
2005-02-08 Keith Packard <keithp@keithp.com>
|
||||||
|
|
||||||
|
reviewed by: <delete if not using a buddy>
|
||||||
|
|
||||||
|
* ChangeLog:
|
||||||
|
* neomagicstub.c: (InitInput):
|
||||||
|
|
||||||
|
2005-02-08 Keith Packard <keithp@keithp.com>
|
||||||
|
|
||||||
|
reviewed by: <delete if not using a buddy>
|
||||||
|
|
||||||
|
* ChangeLog:
|
||||||
|
* neomagicstub.c: (InitInput):
|
||||||
|
|
||||||
|
2005-02-08 Keith Packard <keithp@keithp.com>
|
||||||
|
|
||||||
|
reviewed by: <delete if not using a buddy>
|
||||||
|
|
||||||
|
* ChangeLog:
|
||||||
|
* neomagicstub.c: (InitInput):
|
||||||
|
|
||||||
|
2005-02-08 Keith Packard <keithp@keithp.com>
|
||||||
|
|
||||||
|
reviewed by: <delete if not using a buddy>
|
||||||
|
|
||||||
|
* ChangeLog:
|
||||||
|
* neomagicstub.c: (InitInput):
|
||||||
|
|
||||||
|
2005-02-08 Keith Packard <keithp@keithp.com>
|
||||||
|
|
||||||
|
reviewed by: <delete if not using a buddy>
|
||||||
|
|
||||||
|
* neomagicstub.c: (InitInput):
|
||||||
|
|
||||||
2004-07-21 Phil Blundell <pb@nexus.co.uk>
|
2004-07-21 Phil Blundell <pb@nexus.co.uk>
|
||||||
|
|
||||||
* Makefile.am (Xneomagic_LDADD): Include -lts if appropriate.
|
* Makefile.am (Xneomagic_LDADD): Include -lts if appropriate.
|
||||||
|
|
|
@ -53,7 +53,7 @@ InitInput (int argc, char **argv)
|
||||||
{
|
{
|
||||||
KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs);
|
KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs);
|
||||||
#ifdef TOUCHSCREEN
|
#ifdef TOUCHSCREEN
|
||||||
KdInitTouchScreen (&TsFuncs);
|
KdAddMouseDriver (&TsFuncs);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -384,6 +384,53 @@ kaaDrawableIsOffscreen (DrawablePtr pDrawable)
|
||||||
return kaaPixmapIsOffscreen (pPixmap);
|
return kaaPixmapIsOffscreen (pPixmap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
static void
|
||||||
|
kaaFillTiled(int dst_x,
|
||||||
|
int dst_y,
|
||||||
|
int width,
|
||||||
|
int height,
|
||||||
|
int src_x,
|
||||||
|
int src_y,
|
||||||
|
int src_width,
|
||||||
|
int src_height,
|
||||||
|
void (*Copy) (int srcX,
|
||||||
|
int srcY,
|
||||||
|
int dstX,
|
||||||
|
int dstY,
|
||||||
|
int width,
|
||||||
|
int height))
|
||||||
|
{
|
||||||
|
modulus (src_x, src_width, src_x);
|
||||||
|
modulus (src_y, src_height, src_y);
|
||||||
|
|
||||||
|
while (height)
|
||||||
|
{
|
||||||
|
int dst_x_tmp = dst_x;
|
||||||
|
int src_x_tmp = src_x;
|
||||||
|
int width_tmp = width;
|
||||||
|
int height_left = src_height - src_y;
|
||||||
|
int height_this = min (height, height_left);
|
||||||
|
|
||||||
|
while (width_tmp)
|
||||||
|
{
|
||||||
|
int width_left = src_width - src_x_tmp;
|
||||||
|
int width_this = min (width_tmp, width_left);
|
||||||
|
|
||||||
|
(*Copy) (src_x_tmp, src_y,
|
||||||
|
dst_x_tmp, dst_y,
|
||||||
|
width_this, height_this);
|
||||||
|
|
||||||
|
width_tmp -= width_this;
|
||||||
|
dst_x_tmp += width_this;
|
||||||
|
}
|
||||||
|
height -= height_this;
|
||||||
|
dst_y += height_this;
|
||||||
|
src_y = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void
|
static void
|
||||||
kaaFillSpans(DrawablePtr pDrawable, GCPtr pGC, int n,
|
kaaFillSpans(DrawablePtr pDrawable, GCPtr pGC, int n,
|
||||||
DDXPointPtr ppt, int *pwidth, int fSorted)
|
DDXPointPtr ppt, int *pwidth, int fSorted)
|
||||||
|
@ -956,6 +1003,18 @@ kaaFillRegionSolid (DrawablePtr pDrawable,
|
||||||
kaaDrawableDirty (pDrawable);
|
kaaDrawableDirty (pDrawable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
static void
|
||||||
|
kaaFillRegionTiled (DrawablePtr pDrawable,
|
||||||
|
RegionPtr pRegion,
|
||||||
|
Pixmap pTile)
|
||||||
|
{
|
||||||
|
else
|
||||||
|
{
|
||||||
|
KdCheckSync
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void
|
static void
|
||||||
kaaPaintWindow(WindowPtr pWin, RegionPtr pRegion, int what)
|
kaaPaintWindow(WindowPtr pWin, RegionPtr pRegion, int what)
|
||||||
{
|
{
|
||||||
|
@ -977,6 +1036,11 @@ kaaPaintWindow(WindowPtr pWin, RegionPtr pRegion, int what)
|
||||||
case BackgroundPixel:
|
case BackgroundPixel:
|
||||||
kaaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->background.pixel);
|
kaaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->background.pixel);
|
||||||
return;
|
return;
|
||||||
|
#if 0
|
||||||
|
case BackgroundPixmap:
|
||||||
|
kaaFillRegionTiled((DrawablePtr)pWin, pRegion, pWin->background.pixmap);
|
||||||
|
return;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PW_BORDER:
|
case PW_BORDER:
|
||||||
|
@ -985,6 +1049,13 @@ kaaPaintWindow(WindowPtr pWin, RegionPtr pRegion, int what)
|
||||||
kaaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->border.pixel);
|
kaaFillRegionSolid((DrawablePtr)pWin, pRegion, pWin->border.pixel);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#if 0
|
||||||
|
else
|
||||||
|
{
|
||||||
|
kaaFillRegionTiled((DrawablePtr)pWin, pRegion, pWin->border.pixmap);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
KdCheckPaintWindow (pWin, pRegion, what);
|
KdCheckPaintWindow (pWin, pRegion, what);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* $RCSId$
|
* $RCSId: $
|
||||||
*
|
*
|
||||||
* Copyright © 2001 Keith Packard
|
* Copyright © 2001 Keith Packard
|
||||||
*
|
*
|
||||||
|
|
|
@ -708,6 +708,9 @@ KdScreenInfoDispose (KdScreenInfo *si);
|
||||||
void
|
void
|
||||||
KdInitInput(KdMouseFuncs *, KdKeyboardFuncs *);
|
KdInitInput(KdMouseFuncs *, KdKeyboardFuncs *);
|
||||||
|
|
||||||
|
void
|
||||||
|
KdAddMouseDriver(KdMouseFuncs *);
|
||||||
|
|
||||||
int
|
int
|
||||||
KdAllocInputType (void);
|
KdAllocInputType (void);
|
||||||
|
|
||||||
|
@ -722,11 +725,6 @@ KdRegisterFdEnableDisable (int fd,
|
||||||
void
|
void
|
||||||
KdUnregisterFds (int type, Bool do_close);
|
KdUnregisterFds (int type, Bool do_close);
|
||||||
|
|
||||||
#ifdef TOUCHSCREEN
|
|
||||||
void
|
|
||||||
KdInitTouchScreen(KdMouseFuncs *pTsFuncs);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void
|
void
|
||||||
KdEnqueueKeyboardEvent(unsigned char scan_code,
|
KdEnqueueKeyboardEvent(unsigned char scan_code,
|
||||||
unsigned char is_up);
|
unsigned char is_up);
|
||||||
|
@ -778,6 +776,7 @@ void
|
||||||
ProcessInputEvents (void);
|
ProcessInputEvents (void);
|
||||||
|
|
||||||
extern KdMouseFuncs LinuxMouseFuncs;
|
extern KdMouseFuncs LinuxMouseFuncs;
|
||||||
|
extern KdMouseFuncs LinuxEvdevFuncs;
|
||||||
extern KdMouseFuncs Ps2MouseFuncs;
|
extern KdMouseFuncs Ps2MouseFuncs;
|
||||||
extern KdMouseFuncs BusMouseFuncs;
|
extern KdMouseFuncs BusMouseFuncs;
|
||||||
extern KdMouseFuncs MsMouseFuncs;
|
extern KdMouseFuncs MsMouseFuncs;
|
||||||
|
|
|
@ -45,7 +45,10 @@
|
||||||
|
|
||||||
static DeviceIntPtr pKdKeyboard, pKdPointer;
|
static DeviceIntPtr pKdKeyboard, pKdPointer;
|
||||||
|
|
||||||
static KdMouseFuncs *kdMouseFuncs;
|
#define MAX_MOUSE_DRIVERS 4
|
||||||
|
|
||||||
|
static KdMouseFuncs *kdMouseFuncs[MAX_MOUSE_DRIVERS];
|
||||||
|
static int kdNMouseFuncs;
|
||||||
static KdKeyboardFuncs *kdKeyboardFuncs;
|
static KdKeyboardFuncs *kdKeyboardFuncs;
|
||||||
static int kdBellPitch;
|
static int kdBellPitch;
|
||||||
static int kdBellDuration;
|
static int kdBellDuration;
|
||||||
|
@ -58,10 +61,6 @@ static KdMouseMatrix kdMouseMatrix = {
|
||||||
{ 0, 1, 0 } }
|
{ 0, 1, 0 } }
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef TOUCHSCREEN
|
|
||||||
static KdMouseFuncs *kdTsFuncs;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int kdMouseButtonCount;
|
int kdMouseButtonCount;
|
||||||
int kdMinScanCode;
|
int kdMinScanCode;
|
||||||
int kdMaxScanCode;
|
int kdMaxScanCode;
|
||||||
|
@ -327,12 +326,8 @@ KdMouseProc(DeviceIntPtr pDevice, int onoff)
|
||||||
case DEVICE_ON:
|
case DEVICE_ON:
|
||||||
pDev->on = TRUE;
|
pDev->on = TRUE;
|
||||||
pKdPointer = pDevice;
|
pKdPointer = pDevice;
|
||||||
#ifdef TOUCHSCREEN
|
for (i = 0; i < kdNMouseFuncs; i++)
|
||||||
if (kdTsFuncs)
|
(*kdMouseFuncs[i]->Init)();
|
||||||
(*kdTsFuncs->Init) ();
|
|
||||||
#endif
|
|
||||||
if (kdMouseFuncs)
|
|
||||||
(*kdMouseFuncs->Init) ();
|
|
||||||
break;
|
break;
|
||||||
case DEVICE_OFF:
|
case DEVICE_OFF:
|
||||||
case DEVICE_CLOSE:
|
case DEVICE_CLOSE:
|
||||||
|
@ -340,12 +335,8 @@ KdMouseProc(DeviceIntPtr pDevice, int onoff)
|
||||||
{
|
{
|
||||||
pDev->on = FALSE;
|
pDev->on = FALSE;
|
||||||
pKdPointer = 0;
|
pKdPointer = 0;
|
||||||
if (kdMouseFuncs)
|
for (i = 0; i < kdNMouseFuncs; i++)
|
||||||
(*kdMouseFuncs->Fini) ();
|
(*kdMouseFuncs[i]->Fini) ();
|
||||||
#ifdef TOUCHSCREEN
|
|
||||||
if (kdTsFuncs)
|
|
||||||
(*kdTsFuncs->Fini) ();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -578,6 +569,13 @@ KdInitModMap (void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
KdAddMouseDriver(KdMouseFuncs *pMouseFuncs)
|
||||||
|
{
|
||||||
|
if (kdNMouseFuncs < MAX_MOUSE_DRIVERS)
|
||||||
|
kdMouseFuncs[kdNMouseFuncs++] = pMouseFuncs;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
KdInitInput(KdMouseFuncs *pMouseFuncs,
|
KdInitInput(KdMouseFuncs *pMouseFuncs,
|
||||||
KdKeyboardFuncs *pKeyboardFuncs)
|
KdKeyboardFuncs *pKeyboardFuncs)
|
||||||
|
@ -594,7 +592,8 @@ KdInitInput(KdMouseFuncs *pMouseFuncs,
|
||||||
kdMouseButtonCount = mi->nbutton;
|
kdMouseButtonCount = mi->nbutton;
|
||||||
}
|
}
|
||||||
|
|
||||||
kdMouseFuncs = pMouseFuncs;
|
kdNMouseFuncs = 0;
|
||||||
|
KdAddMouseDriver (pMouseFuncs);
|
||||||
kdKeyboardFuncs = pKeyboardFuncs;
|
kdKeyboardFuncs = pKeyboardFuncs;
|
||||||
memset (kdKeyState, '\0', sizeof (kdKeyState));
|
memset (kdKeyState, '\0', sizeof (kdKeyState));
|
||||||
if (kdKeyboardFuncs)
|
if (kdKeyboardFuncs)
|
||||||
|
@ -629,14 +628,6 @@ KdInitInput(KdMouseFuncs *pMouseFuncs,
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef TOUCHSCREEN
|
|
||||||
void
|
|
||||||
KdInitTouchScreen(KdMouseFuncs *pTsFuncs)
|
|
||||||
{
|
|
||||||
kdTsFuncs = pTsFuncs;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Middle button emulation state machine
|
* Middle button emulation state machine
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue