diff options
Diffstat (limited to 'hw')
-rw-r--r-- | hw/kdrive/Kdrive.tmpl | 17 | ||||
-rw-r--r-- | hw/kdrive/ephyr/ephyr.c | 2 | ||||
-rw-r--r-- | hw/kdrive/fake/fake.c | 2 | ||||
-rw-r--r-- | hw/kdrive/fbdev/fbdev.c | 2 | ||||
-rw-r--r-- | hw/kdrive/src/Makefile.am | 3 | ||||
-rw-r--r-- | hw/kdrive/src/kdrive.c | 8 | ||||
-rw-r--r-- | hw/kdrive/src/kdrive.h | 140 | ||||
-rw-r--r-- | hw/kdrive/src/kloadmap.c | 199 | ||||
-rw-r--r-- | hw/kdrive/src/knoop.c | 251 | ||||
-rw-r--r-- | hw/kdrive/src/koffscreen.c | 351 | ||||
-rw-r--r-- | hw/kdrive/src/ktest.c | 76 | ||||
-rw-r--r-- | hw/kdrive/src/kxv.c | 41 | ||||
-rw-r--r-- | hw/kdrive/src/kxv.h | 37 | ||||
-rw-r--r-- | hw/kdrive/vesa/vesa.c | 2 |
14 files changed, 0 insertions, 1131 deletions
diff --git a/hw/kdrive/Kdrive.tmpl b/hw/kdrive/Kdrive.tmpl deleted file mode 100644 index e259b59a2..000000000 --- a/hw/kdrive/Kdrive.tmpl +++ /dev/null @@ -1,17 +0,0 @@ -XCOMM $RCSId: xc/programs/Xserver/hw/kdrive/Kdrive.tmpl,v 1.3tsi Exp $ - -#include <Server.tmpl> - -#if BuildRender -RENDERINCS=-I$(KDRIVE)/../../render -#endif - -#if BuildRandR -RANDRINCS=-I$(KDRIVE)/../../randr -#endif - -KDINCS = -I$(KDRIVE) -I$(XBUILDINCDIR) -I$(FONTINCSRC) \ - -I$(KDRIVE)/../../fb -I$(KDRIVE)/../../mi -I$(KDRIVE)/../../Xext \ - -I$(KDRIVE)/../../miext/shadow -I$(KDRIVE)/../../miext/layer \ - -I$(KDRIVE)/../../include -I$(KDRIVE)/../../os \ - -I$(EXTINCSRC) -I$(XINCLUDESRC) $(RENDERINCS) $(RANDRINCS) diff --git a/hw/kdrive/ephyr/ephyr.c b/hw/kdrive/ephyr/ephyr.c index e5b16c95a..65d55af11 100644 --- a/hw/kdrive/ephyr/ephyr.c +++ b/hw/kdrive/ephyr/ephyr.c @@ -526,8 +526,6 @@ ephyrRandRSetConfig (ScreenPtr pScreen, scrpriv->randr = KdAddRotation (screen->randr, randr); - KdOffscreenSwapOut (screen->pScreen); - ephyrUnmapFramebuffer (screen); screen->width = newwidth; diff --git a/hw/kdrive/fake/fake.c b/hw/kdrive/fake/fake.c index 6211ab871..d77c4f106 100644 --- a/hw/kdrive/fake/fake.c +++ b/hw/kdrive/fake/fake.c @@ -324,8 +324,6 @@ fakeRandRSetConfig (ScreenPtr pScreen, scrpriv->randr = KdAddRotation (screen->randr, randr); - KdOffscreenSwapOut (screen->pScreen); - fakeUnmapFramebuffer (screen); if (!fakeMapFramebuffer (screen)) diff --git a/hw/kdrive/fbdev/fbdev.c b/hw/kdrive/fbdev/fbdev.c index 7721e608a..fcc3267e4 100644 --- a/hw/kdrive/fbdev/fbdev.c +++ b/hw/kdrive/fbdev/fbdev.c @@ -529,8 +529,6 @@ fbdevRandRSetConfig (ScreenPtr pScreen, scrpriv->randr = KdAddRotation (screen->randr, randr); - KdOffscreenSwapOut (screen->pScreen); - fbdevUnmapFramebuffer (screen); if (!fbdevMapFramebuffer (screen)) diff --git a/hw/kdrive/src/Makefile.am b/hw/kdrive/src/Makefile.am index fbb5e511a..792f64a4d 100644 --- a/hw/kdrive/src/Makefile.am +++ b/hw/kdrive/src/Makefile.am @@ -29,10 +29,7 @@ libkdrive_a_SOURCES = \ kkeymap.c \ kmap.c \ kmode.c \ - knoop.c \ - koffscreen.c \ kshadow.c \ - ktest.c \ $(KDRIVE_XV_SOURCES) \ $(KDRIVE_HW_SOURCES) \ $(top_srcdir)/mi/miinitext.c diff --git a/hw/kdrive/src/kdrive.c b/hw/kdrive/src/kdrive.c index 51dc633f7..c0364b0c8 100644 --- a/hw/kdrive/src/kdrive.c +++ b/hw/kdrive/src/kdrive.c @@ -208,7 +208,6 @@ KdDisableScreen (ScreenPtr pScreen) if (!pScreenPriv->closed) KdSetRootClip (pScreen, FALSE); KdDisableColormap (pScreen); - KdOffscreenSwapOut (pScreen); if (!pScreenPriv->screen->dumb && pScreenPriv->card->cfuncs->disableAccel) (*pScreenPriv->card->cfuncs->disableAccel) (pScreen); if (!pScreenPriv->screen->softCursor && pScreenPriv->card->cfuncs->disableCursor) @@ -285,7 +284,6 @@ KdEnableScreen (ScreenPtr pScreen) pScreenPriv->enabled = TRUE; pScreenPriv->dpmsState = KD_DPMS_NORMAL; pScreenPriv->card->selected = pScreenPriv->screen->mynum; - KdOffscreenSwapIn (pScreen); if (!pScreenPriv->screen->softCursor && pScreenPriv->card->cfuncs->enableCursor) (*pScreenPriv->card->cfuncs->enableCursor) (pScreen); if (!pScreenPriv->screen->dumb && pScreenPriv->card->cfuncs->enableAccel) @@ -796,9 +794,6 @@ KdCloseScreen (int index, ScreenPtr pScreen) else ret = TRUE; - if (screen->off_screen_base < screen->memory_size) - KdOffscreenFini (pScreen); - if (pScreenPriv->dpmsState != KD_DPMS_NORMAL) (*card->cfuncs->dpms) (pScreen, KD_DPMS_NORMAL); @@ -1097,9 +1092,6 @@ KdScreenInit(int index, ScreenPtr pScreen, int argc, char **argv) if (!screen->dumb && card->cfuncs->initAccel) if (!(*card->cfuncs->initAccel) (pScreen)) screen->dumb = TRUE; - - if (screen->off_screen_base < screen->memory_size) - KdOffscreenInit (pScreen); #ifdef PSEUDO8 (void) p8Init (pScreen, PSEUDO8_USE_DEFAULT); diff --git a/hw/kdrive/src/kdrive.h b/hw/kdrive/src/kdrive.h index 212e01607..e3878e223 100644 --- a/hw/kdrive/src/kdrive.h +++ b/hw/kdrive/src/kdrive.h @@ -114,30 +114,6 @@ typedef struct _KdFrameBuffer { void *closure; } KdFrameBuffer; -typedef struct _KdOffscreenArea KdOffscreenArea; - -typedef void (*KdOffscreenSaveProc) (ScreenPtr pScreen, KdOffscreenArea *area); - -typedef enum _KdOffscreenState { - KdOffscreenAvail, - KdOffscreenRemovable, - KdOffscreenLocked, -} KdOffscreenState; - -struct _KdOffscreenArea { - int offset; - int save_offset; - int size; - int score; - pointer privData; - - KdOffscreenSaveProc save; - - KdOffscreenState state; - - KdOffscreenArea *next; -}; - #define RR_Rotate_All (RR_Rotate_0|RR_Rotate_90|RR_Rotate_180|RR_Rotate_270) #define RR_Reflect_All (RR_Reflect_X|RR_Reflect_Y) @@ -205,8 +181,6 @@ typedef struct { int bytesPerPixel[KD_MAX_FB]; int dpmsState; - - KdOffscreenArea *off_screen_areas; ColormapPtr pInstalledmap[KD_MAX_FB]; /* current colormap */ xColorItem systemPalette[KD_MAX_PSEUDO_SIZE];/* saved windows colors */ @@ -401,90 +375,6 @@ typedef struct _KdPointerMatrix { int matrix[2][3]; } KdPointerMatrix; -typedef struct _KaaTrapezoid { - float tl, tr, ty; - float bl, br, by; -} KaaTrapezoid; - -typedef struct _KaaScreenInfo { - int offsetAlign; - int pitchAlign; - int flags; - - int (*markSync) (ScreenPtr pScreen); - void (*waitMarker) (ScreenPtr pScreen, int marker); - - Bool (*PrepareSolid) (PixmapPtr pPixmap, - int alu, - Pixel planemask, - Pixel fg); - void (*Solid) (int x1, int y1, int x2, int y2); - void (*DoneSolid) (void); - - Bool (*PrepareCopy) (PixmapPtr pSrcPixmap, - PixmapPtr pDstPixmap, - Bool upsidedown, - Bool reverse, - int alu, - Pixel planemask); - void (*Copy) (int srcX, - int srcY, - int dstX, - int dstY, - int width, - int height); - void (*DoneCopy) (void); - - Bool (*PrepareBlend) (int op, - PicturePtr pSrcPicture, - PicturePtr pDstPicture, - PixmapPtr pSrc, - PixmapPtr pDst); - void (*Blend) (int srcX, - int srcY, - int dstX, - int dstY, - int width, - int height); - void (*DoneBlend) (void); - - Bool (*CheckComposite) (int op, - PicturePtr pSrcPicture, - PicturePtr pMaskPicture, - PicturePtr pDstPicture); - Bool (*PrepareComposite) (int op, - PicturePtr pSrcPicture, - PicturePtr pMaskPicture, - PicturePtr pDstPicture, - PixmapPtr pSrc, - PixmapPtr pMask, - PixmapPtr pDst); - void (*Composite) (int srcX, - int srcY, - int maskX, - int maskY, - int dstX, - int dstY, - int width, - int height); - void (*DoneComposite) (void); - - Bool (*PrepareTrapezoids) (PicturePtr pDstPicture, - PixmapPtr pDst); - void (*Trapezoids) (KaaTrapezoid *traps, - int ntraps); - void (*DoneTrapezoids) (void); - - Bool (*UploadToScreen) (PixmapPtr pDst, - char *src, - int src_pitch); - Bool (*UploadToScratch) (PixmapPtr pSrc, - PixmapPtr pDst); -} KaaScreenInfoRec, *KaaScreenInfoPtr; - -#define KAA_OFFSCREEN_PIXMAPS (1 << 0) -#define KAA_OFFSCREEN_ALIGN_POT (1 << 1) - /* * This is the only completely portable way to * compute this info. @@ -821,36 +711,6 @@ KdShadowSet (ScreenPtr pScreen, int randr, ShadowUpdateProc update, ShadowWindow void KdShadowUnset (ScreenPtr pScreen); -/* ktest.c */ -Bool -KdFrameBufferValid (CARD8 *base, int size); - -int -KdFrameBufferSize (CARD8 *base, int max); - -/* koffscreen.c */ - -Bool -KdOffscreenInit (ScreenPtr pScreen); - -KdOffscreenArea * -KdOffscreenAlloc (ScreenPtr pScreen, int size, int align, - Bool locked, - KdOffscreenSaveProc save, - pointer privData); - -KdOffscreenArea * -KdOffscreenFree (ScreenPtr pScreen, KdOffscreenArea *area); - -void -KdOffscreenSwapOut (ScreenPtr pScreen); - -void -KdOffscreenSwapIn (ScreenPtr pScreen); - -void -KdOffscreenFini (ScreenPtr pScreen); - /* function prototypes to be implemented by the drivers */ void InitCard (char *name); diff --git a/hw/kdrive/src/kloadmap.c b/hw/kdrive/src/kloadmap.c deleted file mode 100644 index 21440a423..000000000 --- a/hw/kdrive/src/kloadmap.c +++ /dev/null @@ -1,199 +0,0 @@ -/* - * Copyright © 1999 Keith Packard - * - * 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 Keith Packard not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. Keith Packard makes no - * representations about the suitability of this software for any purpose. It - * is provided "as is" without express or implied warranty. - * - * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL KEITH PACKARD 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 <kdrive-config.h> -#endif -#include "kdrive.h" - -#ifdef WINDOWS -#define KM_BUF 1024 -#define KM_EOF -1 - -typedef struct _km_file { - HANDLE handle; - char buf[KM_BUF]; - char *bufptr; - DWORD remain; -} km_file; - -int -km_fill (km_file *kf) -{ - BOOL r; - - NCD_DEBUG ((DEBUG_INIT, "km_fill")); - r = ReadFile (kf->handle, kf->buf, KM_BUF, - &kf->remain, NULL); - NCD_DEBUG ((DEBUG_INIT, "Got %d", kf->remain)); - if (!r || !kf->remain) - return KM_EOF; - kf->bufptr = kf->buf; - --kf->remain; - return *kf->bufptr++; -} - -#define km_getchar(kf) ((kf)->remain-- ? *kf->bufptr++ : km_fill (kf)) -#else -#define km_getchar(kf) getc(kf) -#endif - -BOOL -km_word (km_file *kf, char *buf, int len) -{ - int c; - - for (;;) - { - switch (c = km_getchar (kf)) { - case KM_EOF: - return FALSE; - case ' ': - case '\t': - case '\n': - case '\r': - continue; - } - break; - } - len--; - while (len--) - { - *buf++ = c; - switch (c = km_getchar (kf)) { - case KM_EOF: - case ' ': - case '\t': - case '\n': - case '\r': - *buf++ = '\0'; - return TRUE; - } - } - return FALSE; -} - -BOOL -km_int (km_file *kf, int *r) -{ - char word[64]; - - if (km_word (kf, word, sizeof (word))) - { - *r = strtol (word, NULL, 0); - return TRUE; - } - return FALSE; -} - -WCHAR *winKbdExtensions[] = { - L".xku", - L".xkb" -}; - -#define NUM_KBD_EXTENSIONS (sizeof (winKbdExtensions) / sizeof (winKbdExtensions[0])) - -BOOL -winLoadKeymap (void) -{ - WCHAR file[32 + KL_NAMELENGTH]; - WCHAR name[KL_NAMELENGTH]; - HKL layout; - km_file kf; - int width; - BOOL ret; - KeySym *m; - int scancode; - int w; - int e; - - layout = GetKeyboardLayout (0); - /* - * Pre-build 46 versions of ThinSTAR software return 0 - * for all layouts - */ - if (!layout) - return FALSE; - NCD_DEBUG ((DEBUG_INIT, "Keyboard layout 0x%x", layout)); - for (e = 0; e < NUM_KBD_EXTENSIONS; e++) - { - wstrcpy (file, L"\\Storage Card\\"); - wsprintf (name, TEXT("%08x"), layout); - wstrcat (file, name); - wstrcat (file, winKbdExtensions[e]); - NCD_DEBUG ((DEBUG_INIT, "Loading keymap from %S", file)); - kf.handle = CreateFile (file, - GENERIC_READ, - FILE_SHARE_READ|FILE_SHARE_WRITE, - NULL, - OPEN_EXISTING, - FILE_ATTRIBUTE_NORMAL, - NULL); - if (kf.handle != INVALID_HANDLE_VALUE) - break; - } - if (kf.handle == INVALID_HANDLE_VALUE) - { - NCD_DEBUG ((DEBUG_INIT, "No such file")); - return FALSE; - } - ret = FALSE; - kf.remain = 0; - /* - * Keymap format: - * - * flags (optional) - * width - * keycode -> keysym array (num_keycodes * width) - */ - if (!km_int (&kf, &width)) - goto bail1; - if (width & KEYMAP_FLAGS) - { - CEKeymapFlags = (unsigned long) width; - if (!km_int (&kf, &width)) - goto bail1; - } - else - CEKeymapFlags = 0; - if (width > MAX_WIDTH) - goto bail1; - NCD_DEBUG ((DEBUG_INIT, "Keymap width %d flags 0x%x", - width, CEKeymapFlags)); - m = CEKeymap; - for (scancode = MIN_SCANCODE; scancode <= MAX_SCANCODE; scancode++) - { - for (w = 0; w < width; w++) - { - if (!km_int (&kf, m)) - break; - m++; - } - if (w != width) - break; - } - CEKeySyms.mapWidth = width; - ret = TRUE; -bail1: - CloseHandle (kf.handle); - return ret; -} diff --git a/hw/kdrive/src/knoop.c b/hw/kdrive/src/knoop.c deleted file mode 100644 index a3e9468ed..000000000 --- a/hw/kdrive/src/knoop.c +++ /dev/null @@ -1,251 +0,0 @@ -/* - * Copyright © 1999 Keith Packard - * - * 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 Keith Packard not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. Keith Packard makes no - * representations about the suitability of this software for any purpose. It - * is provided "as is" without express or implied warranty. - * - * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL KEITH PACKARD 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. - */ - -/* - * GC ops that don't do anything - */ - -#ifdef HAVE_CONFIG_H -#include <kdrive-config.h> -#endif -#include "kdrive.h" -#include <gcstruct.h> - -typedef void (* typeFillSpans)( - DrawablePtr /*pDrawable*/, - GCPtr /*pGC*/, - int /*nInit*/, - DDXPointPtr /*pptInit*/, - int * /*pwidthInit*/, - int /*fSorted*/ -); - -typedef void (* typeSetSpans)( - DrawablePtr /*pDrawable*/, - GCPtr /*pGC*/, - char * /*psrc*/, - DDXPointPtr /*ppt*/, - int * /*pwidth*/, - int /*nspans*/, - int /*fSorted*/ -); - -typedef void (* typePutImage)( - DrawablePtr /*pDrawable*/, - GCPtr /*pGC*/, - int /*depth*/, - int /*x*/, - int /*y*/, - int /*w*/, - int /*h*/, - int /*leftPad*/, - int /*format*/, - char * /*pBits*/ -); - -typedef RegionPtr (* typeCopyArea)( - DrawablePtr /*pSrc*/, - DrawablePtr /*pDst*/, - GCPtr /*pGC*/, - int /*srcx*/, - int /*srcy*/, - int /*w*/, - int /*h*/, - int /*dstx*/, - int /*dsty*/ -); - -typedef RegionPtr (* typeCopyPlane)( - DrawablePtr /*pSrcDrawable*/, - DrawablePtr /*pDstDrawable*/, - GCPtr /*pGC*/, - int /*srcx*/, - int /*srcy*/, - int /*width*/, - int /*height*/, - int /*dstx*/, - int /*dsty*/, - unsigned long /*bitPlane*/ -); -typedef void (* typePolyPoint)( - DrawablePtr /*pDrawable*/, - GCPtr /*pGC*/, - int /*mode*/, - int /*npt*/, - DDXPointPtr /*pptInit*/ -); - -typedef void (* typePolylines)( - DrawablePtr /*pDrawable*/, - GCPtr /*pGC*/, - int /*mode*/, - int /*npt*/, - DDXPointPtr /*pptInit*/ -); - -typedef void (* typePolySegment)( - DrawablePtr /*pDrawable*/, - GCPtr /*pGC*/, - int /*nseg*/, - xSegment * /*pSegs*/ -); - -typedef void (* typePolyRectangle)( - DrawablePtr /*pDrawable*/, - GCPtr /*pGC*/, - int /*nrects*/, - xRectangle * /*pRects*/ -); - -typedef void (* typePolyArc)( - DrawablePtr /*pDrawable*/, - GCPtr /*pGC*/, - int /*narcs*/, - xArc * /*parcs*/ -); - -typedef void (* typeFillPolygon)( - DrawablePtr /*pDrawable*/, - GCPtr /*pGC*/, - int /*shape*/, - int /*mode*/, - int /*count*/, - DDXPointPtr /*pPts*/ -); - -typedef void (* typePolyFillRect)( - DrawablePtr /*pDrawable*/, - GCPtr /*pGC*/, - int /*nrectFill*/, - xRectangle * /*prectInit*/ -); - -typedef void (* typePolyFillArc)( - DrawablePtr /*pDrawable*/, - GCPtr /*pGC*/, - int /*narcs*/, - xArc * /*parcs*/ -); - -typedef int (* typePolyText8)( - DrawablePtr /*pDrawable*/, - GCPtr /*pGC*/, - int /*x*/, - int /*y*/, - int /*count*/, - char * /*chars*/ -); - -typedef int (* typePolyText16)( - DrawablePtr /*pDrawable*/, - GCPtr /*pGC*/, - int /*x*/, - int /*y*/, - int /*count*/, - unsigned short * /*chars*/ -); - -typedef void (* typeImageText8)( - DrawablePtr /*pDrawable*/, - GCPtr /*pGC*/, - int /*x*/, - int /*y*/, - int /*count*/, - char * /*chars*/ -); - -typedef void (* typeImageText16)( - DrawablePtr /*pDrawable*/, - GCPtr /*pGC*/, - int /*x*/, - int /*y*/, - int /*count*/, - unsigned short * /*chars*/ -); - -typedef void (* typeImageGlyphBlt)( - DrawablePtr /*pDrawable*/, - GCPtr /*pGC*/, - int /*x*/, - int /*y*/, - unsigned int /*nglyph*/, - CharInfoPtr * /*ppci*/, - pointer /*pglyphBase*/ -); - -typedef void (* typePolyGlyphBlt)( - DrawablePtr /*pDrawable*/, - GCPtr /*pGC*/, - int /*x*/, - int /*y*/, - unsigned int /*nglyph*/, - CharInfoPtr * /*ppci*/, - pointer /*pglyphBase*/ -); - -typedef void (* typePushPixels)( - GCPtr /*pGC*/, - PixmapPtr /*pBitMap*/, - DrawablePtr /*pDst*/, - int /*w*/, - int /*h*/, - int /*x*/, - int /*y*/ -); - -static RegionPtr -KdNoopCopyArea(DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable, GCPtr pGC, - int srcx, int srcy, int width, int height, int dstx, int dsty) -{ - return NullRegion; -} - -static RegionPtr -KdNoopCopyPlane(DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable, GCPtr pGC, - int srcx, int srcy, int width, int height, - int dstx, int dsty, unsigned long bitPlane) -{ - return NullRegion; -} - -GCOps kdNoopOps = { - (typeFillSpans) NoopDDA, /* fill spans */ - (typeSetSpans) NoopDDA, /* set spans */ - (typePutImage) NoopDDA, /* put image */ - KdNoopCopyArea, /* copy area */ - KdNoopCopyPlane, /* copy plane */ - (typePolyPoint) NoopDDA, /* poly point */ - (typePolylines) NoopDDA, /* poly lines */ - (typePolySegment) NoopDDA, /* poly segment */ - (typePolyRectangle) NoopDDA, /* poly rectangle */ - (typePolyArc) NoopDDA, /* poly arc */ - (typeFillPolygon) NoopDDA, /* fill polygon */ - (typePolyFillRect) NoopDDA, /* poly fillrect */ - (typePolyFillArc) NoopDDA, /* poly fillarc */ - (typePolyText8) NoopDDA, /* text 8 */ - (typePolyText16) NoopDDA, /* text 16 */ - (typeImageText8) NoopDDA, /* itext 8 */ - (typeImageText16) NoopDDA, /* itext 16 */ - (typePolyGlyphBlt) NoopDDA, /* glyph blt */ - (typeImageGlyphBlt) NoopDDA, /* iglyph blt */ - (typePushPixels) NoopDDA, /* push pixels */ -}; diff --git a/hw/kdrive/src/koffscreen.c b/hw/kdrive/src/koffscreen.c deleted file mode 100644 index 24ba7ffb3..000000000 --- a/hw/kdrive/src/koffscreen.c +++ /dev/null @@ -1,351 +0,0 @@ -/* - * Copyright © 2003 Anders Carlsson - * - * 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 Anders Carlsson not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. Anders Carlsson makes no - * representations about the suitability of this software for any purpose. It - * is provided "as is" without express or implied warranty. - * - * ANDERS CARLSSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL ANDERS CARLSSON 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 <kdrive-config.h> -#endif -#include "kdrive.h" - -#define DEBUG_OFFSCREEN 0 -#if DEBUG_OFFSCREEN -#define DBG_OFFSCREEN(a) ErrorF a -#else -#define DBG_OFFSCREEN(a) -#endif - -#if DEBUG_OFFSCREEN -static void -KdOffscreenValidate (ScreenPtr pScreen) -{ - KdScreenPriv (pScreen); - KdOffscreenArea *prev = 0, *area; - - assert (pScreenPriv->screen->off_screen_areas->area.offset == 0); - for (area = pScreenPriv->off_screen_areas; area; area = area->next) - { - if (prev) - assert (prev->offset + prev->size == area->offset); - - prev = area; - } - assert (prev->offset + prev->size == pScreenPriv->screen->memory_size); -} -#else -#define KdOffscreenValidate(s) -#endif - -static KdOffscreenArea * -KdOffscreenKickOut (ScreenPtr pScreen, KdOffscreenArea *area) -{ - if (area->save) - (*area->save) (pScreen, area); - return KdOffscreenFree (pScreen, area); -} - -KdOffscreenArea * -KdOffscreenAlloc (ScreenPtr pScreen, int size, int align, - Bool locked, - KdOffscreenSaveProc save, - pointer privData) -{ - KdOffscreenArea *area, *begin, *best; - KdScreenPriv (pScreen); - int tmp, real_size = 0, best_score; - - KdOffscreenValidate (pScreen); - if (!align) - align = 1; - - if (!size) - { - DBG_OFFSCREEN (("Alloc 0x%x -> EMPTY\n", size)); - return NULL; - } - - /* throw out requests that cannot fit */ - if (size > (pScreenPriv->screen->memory_size - pScreenPriv->screen->off_screen_base)) - { - DBG_OFFSCREEN (("Alloc 0x%x -> TOBIG\n", size)); - return NULL; - } - - /* Try to find a free space that'll fit. */ - for (area = pScreenPriv->off_screen_areas; area; area = area->next) - { - /* skip allocated areas */ - if (area->state != KdOffscreenAvail) - continue; - - /* adjust size to match alignment requirement */ - real_size = size; - tmp = area->offset % align; - if (tmp) - real_size += (align - tmp); - - /* does it fit? */ - if (real_size <= area->size) - break; - } - - if (!area) - { - /* - * Kick out existing users to make space. - * - * First, locate a region which can hold the desired object. - */ - - /* prev points at the first object to boot */ - best = NULL; - best_score = MAXINT; - for (begin = pScreenPriv->off_screen_areas; begin != NULL; - begin = begin->next) - { - int avail, score; - KdOffscreenArea *scan; - - if (begin->state == KdOffscreenLocked) - continue; - - /* adjust size to match alignment requirement */ - real_size = size; - tmp = begin->offset % align; - if (tmp) - real_size += (align - tmp); - - avail = 0; - score = 0; - /* now see if we can make room here, and how "costly" it'll be. */ - for (scan = begin; scan != NULL; scan = scan->next) - { - if (scan->state == KdOffscreenLocked) { - /* Can't make room here, start after this locked area. */ - begin = scan->next; - break; - } - /* Score should only be non-zero for KdOffscreenRemovable */ - score += scan->score; - avail += scan->size; - if (avail >= real_size) - break; - } - /* Is it the best option we've found so far? */ - if (avail >= real_size && score < best_score) { - best = begin; - best_score = score; - } - } - area = best; - if (!area) - { - DBG_OFFSCREEN (("Alloc 0x%x -> NOSPACE\n", size)); - /* Could not allocate memory */ - KdOffscreenValidate (pScreen); - return NULL; - } - - /* adjust size to match alignment requirement */ - real_size = size; - tmp = begin->offset % align; - if (tmp) - real_size += (align - tmp); - - /* - * Kick out first area if in use - */ - if (area->state != KdOffscreenAvail) - area = KdOffscreenKickOut (pScreen, area); - /* - * Now get the system to merge the other needed areas together - */ - while (area->size < real_size) - { - assert (area->next && area->next->state == KdOffscreenRemovable); - (void) KdOffscreenKickOut (pScreen, area->next); - } - } - - /* save extra space in new area */ - if (real_size < area->size) - { - KdOffscreenArea *new_area = xalloc (sizeof (KdOffscreenArea)); - if (!new_area) - return NULL; - new_area->offset = area->offset + real_size; - new_area->size = area->size - real_size; - new_area->state = KdOffscreenAvail; - new_area->save = 0; - new_area->score = 0; - new_area->next = area->next; - area->next = new_area; - area->size = real_size; - } - /* - * Mark this area as in use - */ - if (locked) - area->state = KdOffscreenLocked; - else - area->state = KdOffscreenRemovable; - area->privData = privData; - area->save = save; - area->score = 0; - - area->save_offset = area->offset; - { - int tmp = area->offset % align; - if (tmp) - area->offset += (align - tmp); - } - - KdOffscreenValidate (pScreen); - - DBG_OFFSCREEN (("Alloc 0x%x -> 0x%x\n", size, area->offset)); - return area; -} - -void -KdOffscreenSwapOut (ScreenPtr pScreen) -{ - KdScreenPriv (pScreen); - - KdOffscreenValidate (pScreen); - /* loop until a single free area spans the space */ - for (;;) - { - KdOffscreenArea *area = pScreenPriv->off_screen_areas; - - if (!area) - break; - if (area->state == KdOffscreenAvail) - { - area = area->next; - if (!area) - break; - } - assert (area->state != KdOffscreenAvail); - (void) KdOffscreenKickOut (pScreen, area); - KdOffscreenValidate (pScreen); - } - KdOffscreenValidate (pScreen); - KdOffscreenFini (pScreen); -} - -void -KdOffscreenSwapIn (ScreenPtr pScreen) -{ - KdOffscreenInit (pScreen); -} - -/* merge the next free area into this one */ -static void -KdOffscreenMerge (KdOffscreenArea *area) -{ - KdOffscreenArea *next = area->next; - - /* account for space */ - area->size += next->size; - /* frob pointer */ - area->next = next->next; - xfree (next); -} - -KdOffscreenArea * -KdOffscreenFree (ScreenPtr pScreen, KdOffscreenArea *area) -{ - KdScreenPriv(pScreen); - KdOffscreenArea *next = area->next; - KdOffscreenArea *prev; - - DBG_OFFSCREEN (("Free 0x%x -> 0x%x\n", area->size, area->offset)); - KdOffscreenValidate (pScreen); - - area->state = KdOffscreenAvail; - area->save = 0; - area->offset = area->save_offset; - area->score = 0; - - /* - * Find previous area - */ - if (area == pScreenPriv->off_screen_areas) - prev = 0; - else - for (prev = pScreenPriv->off_screen_areas; prev; prev = prev->next) - if (prev->next == area) - break; - - /* link with next area if free */ - if (next && next->state == KdOffscreenAvail) - KdOffscreenMerge (area); - - /* link with prev area if free */ - if (prev && prev->state == KdOffscreenAvail) - { - area = prev; - KdOffscreenMerge (area); - } - - KdOffscreenValidate (pScreen); - return area; -} - -Bool -KdOffscreenInit (ScreenPtr pScreen) -{ - KdScreenPriv (pScreen); - KdOffscreenArea *area; - - /* Allocate a big free area */ - area = xalloc (sizeof (KdOffscreenArea)); - - if (!area) - return FALSE; - - area->state = KdOffscreenAvail; - area->offset = pScreenPriv->screen->off_screen_base; - area->size = pScreenPriv->screen->memory_size - area->offset; - area->save = 0; - area->next = NULL; - area->score = 0; - - /* Add it to the free areas */ - pScreenPriv->off_screen_areas = area; - - KdOffscreenValidate (pScreen); - - return TRUE; -} - -void -KdOffscreenFini (ScreenPtr pScreen) -{ - KdScreenPriv (pScreen); - KdOffscreenArea *area; - - /* just free all of the area records */ - while ((area = pScreenPriv->off_screen_areas)) - { - pScreenPriv->off_screen_areas = area->next; - xfree (area); - } -} diff --git a/hw/kdrive/src/ktest.c b/hw/kdrive/src/ktest.c deleted file mode 100644 index 150af5639..000000000 --- a/hw/kdrive/src/ktest.c +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright © 1999 Keith Packard - * - * 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 Keith Packard not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. Keith Packard makes no - * representations about the suitability of this software for any purpose. It - * is provided "as is" without express or implied warranty. - * - * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL KEITH PACKARD 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 <kdrive-config.h> -#endif -#include "kdrive.h" - - -static CARD8 memoryPatterns[] = { 0xff, 0x00, 0x5a, 0xa5, 0xaa, 0x55 }; - -#define NUM_PATTERNS (sizeof (memoryPatterns) / sizeof (memoryPatterns[0])) - -Bool -KdFrameBufferValid (CARD8 *base, int size) -{ - volatile CARD8 *b = (volatile CARD8 *) base; - CARD8 save, test, compare; - int i, j; - - b = base + (size - 1); - save = *b; - - for (i = 0; i < NUM_PATTERNS; i++) - { - test = memoryPatterns[i]; - *b = test; - for (j = 0; j < 1000; j++) - { - compare = *b; - if (compare != test) - return FALSE; - } - } - *b = save; - return TRUE; -} - -int -KdFrameBufferSize (CARD8 *base, int max) -{ - int min, cur; - - min = 0; - while (min + 1 < max) - { - cur = (max + min) / 2; - if (KdFrameBufferValid (base, cur)) - min = cur; - else - max = cur; - } - if (KdFrameBufferValid (base, max)) - return max; - else - return min; -} diff --git a/hw/kdrive/src/kxv.c b/hw/kdrive/src/kxv.c index 0b8d1c4e0..83ca3935f 100644 --- a/hw/kdrive/src/kxv.c +++ b/hw/kdrive/src/kxv.c @@ -1728,47 +1728,6 @@ KdXVQueryImageAttributes( } -/**************** Offscreen surface stuff *******************/ - -typedef struct { - KdOffscreenImagePtr images; - int num; -} OffscreenImageRec; - -static OffscreenImageRec OffscreenImages[MAXSCREENS]; -static Bool offscreenInited = FALSE; - -Bool -KdXVRegisterOffscreenImages( - ScreenPtr pScreen, - KdOffscreenImagePtr images, - int num -){ - if(!offscreenInited) { - bzero(OffscreenImages, sizeof(OffscreenImages[MAXSCREENS])); - offscreenInited = TRUE; - } - - OffscreenImages[pScreen->myNum].num = num; - OffscreenImages[pScreen->myNum].images = images; - - return TRUE; -} - -KdOffscreenImagePtr -KdXVQueryOffscreenImages( - ScreenPtr pScreen, - int *num -){ - if(!offscreenInited) { - *num = 0; - return NULL; - } - - *num = OffscreenImages[pScreen->myNum].num; - return OffscreenImages[pScreen->myNum].images; -} - /**************** Common video manipulation functions *******************/ void diff --git a/hw/kdrive/src/kxv.h b/hw/kdrive/src/kxv.h index 5d1441642..900baefde 100644 --- a/hw/kdrive/src/kxv.h +++ b/hw/kdrive/src/kxv.h @@ -186,30 +186,6 @@ typedef struct { QueryImageAttributesFuncPtr QueryImageAttributes; } KdVideoAdaptorRec, *KdVideoAdaptorPtr; -typedef struct { - KdImagePtr image; - int flags; - int (*alloc_surface)(KdScreenInfo * screen, - int id, - unsigned short width, - unsigned short height, - KdSurfacePtr surface); - int (*free_surface)(KdSurfacePtr surface); - int (*display) (KdSurfacePtr surface, - short vid_x, short vid_y, - short drw_x, short drw_y, - short vid_w, short vid_h, - short drw_w, short drw_h, - RegionPtr clipBoxes); - int (*stop) (KdSurfacePtr surface); - int (*getAttribute) (KdScreenInfo * screen, Atom attr, INT32 *value); - int (*setAttribute) (KdScreenInfo * screen, Atom attr, INT32 value); - int max_width; - int max_height; - int num_attributes; - KdAttributePtr attributes; -} KdOffscreenImageRec, *KdOffscreenImagePtr; - Bool KdXVScreenInit( ScreenPtr pScreen, @@ -231,19 +207,6 @@ KdXVListGenericAdaptors( KdVideoAdaptorPtr **Adaptors ); -Bool -KdXVRegisterOffscreenImages( - ScreenPtr pScreen, - KdOffscreenImagePtr images, - int num -); - -KdOffscreenImagePtr -KdXVQueryOffscreenImages( - ScreenPtr pScreen, - int *num -); - void KdXVCopyPackedData(KdScreenInfo *screen, CARD8 *src, CARD8 *dst, int randr, int srcPitch, int dstPitch, int srcW, int srcH, int top, int left, diff --git a/hw/kdrive/vesa/vesa.c b/hw/kdrive/vesa/vesa.c index d6fa5eb06..316b873ab 100644 --- a/hw/kdrive/vesa/vesa.c +++ b/hw/kdrive/vesa/vesa.c @@ -1226,8 +1226,6 @@ vesaRandRSetConfig (ScreenPtr pScreen, break; } - KdOffscreenSwapOut (screen->pScreen); - vesaUnmapFramebuffer (screen); if (!vesaComputeFramebufferMapping (screen)) |