summaryrefslogtreecommitdiff
path: root/hw/kdrive/epson/epson13806draw.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/kdrive/epson/epson13806draw.c')
-rw-r--r--hw/kdrive/epson/epson13806draw.c80
1 files changed, 41 insertions, 39 deletions
diff --git a/hw/kdrive/epson/epson13806draw.c b/hw/kdrive/epson/epson13806draw.c
index 791ad3c21..15c07025d 100644
--- a/hw/kdrive/epson/epson13806draw.c
+++ b/hw/kdrive/epson/epson13806draw.c
@@ -33,6 +33,8 @@
#include "epson13806draw.h"
#include "epson13806reg.h"
+#include "kaa.h"
+
#include "gcstruct.h"
#include "scrnintstr.h"
#include "pixmapstr.h"
@@ -182,7 +184,28 @@ epsonWaitForHwBltDone (void)
{
while (EPSON13806_REG (EPSON13806_BLTCTRL0) & EPSON13806_BLTCTRL0_ACTIVE) {}
}
-
+
+
+/*
+ * epsonDrawSync
+ *
+ * Description: Sync hardware acceleration
+ *
+ * History:
+ * 11-Feb-04 C.Stylianou NBL: Created.
+ *
+ */
+
+static void
+epsonWaitMarker (ScreenPtr pScreen, int marker)
+{
+ EPSON_DEBUG (fprintf(stderr,"+epsonDrawSync\n"));
+
+ epsonWaitForHwBltDone ();
+
+ EPSON_DEBUG (fprintf(stderr,"-epsonDrawSync\n"));
+}
+
/*
* epsonPrepareSolid
@@ -428,20 +451,6 @@ epsonDoneCopy (void)
EPSON_DEBUG_COPY (fprintf(stderr,"-epsonDoneCopy\n"));
}
-static KaaScreenInfoRec epsonKaa = {
- .PrepareSolid = epsonPrepareSolid,
- .Solid = epsonSolid,
- .DoneSolid = epsonDoneSolid,
-
- .PrepareCopy = epsonPrepareCopy,
- .Copy = epsonCopy,
- .DoneCopy = epsonDoneCopy,
-
- 0,
- 0,
- .flags = KAA_OFFSCREEN_PIXMAPS, /* Flags */
-};
-
/*
* epsonDrawInit
@@ -456,6 +465,10 @@ static KaaScreenInfoRec epsonKaa = {
Bool
epsonDrawInit (ScreenPtr pScreen)
{
+ KdScreenPriv(pScreen);
+ KdScreenInfo *screen = pScreenPriv->screen;
+ EpsonScrPriv *epsons = screen->driver;
+
EPSON_DEBUG (fprintf(stderr,"+epsonDrawInit\n"));
epsonSet(pScreen);
@@ -535,7 +548,17 @@ epsonDrawInit (ScreenPtr pScreen)
EPSON13806_REG16(EPSON13806_GPIOCTRL) |= 0x00fc;
#endif
- if (!kaaDrawInit (pScreen, &epsonKaa))
+ memset(&epsons->kaa, 0, sizeof(KaaScreenInfoRec));
+ epsons->kaa.waitMarker = epsonWaitMarker;
+ epsons->kaa.PrepareSolid = epsonPrepareSolid;
+ epsons->kaa.Solid = epsonSolid;
+ epsons->kaa.DoneSolid = epsonDoneSolid;
+ epsons->kaa.PrepareCopy = epsonPrepareCopy;
+ epsons->kaa.Copy = epsonCopy;
+ epsons->kaa.DoneCopy = epsonDoneCopy;
+ epsons->kaa.flags = KAA_OFFSCREEN_PIXMAPS;
+
+ if (!kaaDrawInit (pScreen, &epsons->kaa))
return FALSE;
EPSON_DEBUG (fprintf(stderr,"-epsonDrawInit\n"));
@@ -558,29 +581,8 @@ epsonDrawEnable (ScreenPtr pScreen)
{
EPSON_DEBUG (fprintf(stderr,"+epsonDrawEnable\n"));
epsonWaitForHwBltDone ();
- KdMarkSync (pScreen);
- EPSON_DEBUG (fprintf(stderr,"+epsonDrawEnable\n"));
-}
-
-
-/*
- * epsonDrawSync
- *
- * Description: Sync hardware acceleration
- *
- * History:
- * 11-Feb-04 C.Stylianou NBL: Created.
- *
- */
-
-void
-epsonDrawSync (ScreenPtr pScreen)
-{
- EPSON_DEBUG (fprintf(stderr,"+epsonDrawSync\n"));
-
- epsonWaitForHwBltDone ();
-
- EPSON_DEBUG (fprintf(stderr,"-epsonDrawSync\n"));
+ kaaMarkSync (pScreen);
+ EPSON_DEBUG (fprintf(stderr,"-epsonDrawEnable\n"));
}