mirror of
https://github.com/X11Libre/xserver.git
synced 2026-10-22 01:20:26 +00:00
Add (stubbed out) Xgl server code
This commit is contained in:
parent
f8a1dd3ce7
commit
d9cca52feb
12 changed files with 1189 additions and 0 deletions
188
hw/xgl/xgloutput.c
Normal file
188
hw/xgl/xgloutput.c
Normal file
|
|
@ -0,0 +1,188 @@
|
|||
/*
|
||||
* $Id$
|
||||
*
|
||||
* Copyright © 2004 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.
|
||||
*/
|
||||
|
||||
#include "xgl.h"
|
||||
|
||||
typedef struct _xglDepths {
|
||||
CARD8 depth;
|
||||
CARD8 bpp;
|
||||
} XglDepths;
|
||||
|
||||
static XglDepths xglDepths[] = {
|
||||
{ 1, 1 },
|
||||
{ 4, 4 },
|
||||
{ 8, 8 },
|
||||
{ 15, 16 },
|
||||
{ 16, 16 },
|
||||
{ 24, 32 },
|
||||
{ 32, 32 }
|
||||
};
|
||||
|
||||
#define NUM_XGL_DEPTHS (sizeof (xglDepths) / sizeof (xglDepths[0]))
|
||||
|
||||
static void
|
||||
xglSetPixmapFormats (ScreenInfo *pScreenInfo)
|
||||
{
|
||||
int i;
|
||||
|
||||
pScreenInfo->imageByteOrder = IMAGE_BYTE_ORDER;
|
||||
pScreenInfo->bitmapScanlineUnit = BITMAP_SCANLINE_UNIT;
|
||||
pScreenInfo->bitmapScanlinePad = BITMAP_SCANLINE_PAD;
|
||||
pScreenInfo->bitmapBitOrder = BITMAP_BIT_ORDER;
|
||||
|
||||
pScreenInfo->numPixmapFormats = 0;
|
||||
for (i = 0; i < NUM_XGL_DEPTHS; i++)
|
||||
{
|
||||
PixmapFormatRec *format = &pScreenInfo->formats[pScreenInfo->numPixmapFormats++];
|
||||
format->depth = xglDepths[i].depth;
|
||||
format->bitsPerPixel = xglDepths[i].bpp;
|
||||
format->scanlinePad = BITMAP_SCANLINE_PAD;
|
||||
}
|
||||
}
|
||||
|
||||
#define xglQueryBestSize (void *) NoopDDA
|
||||
#define xglSaveScreen (void *) NoopDDA
|
||||
#define miGetImage (void *) NoopDDA
|
||||
#define xglCreateWindow (void *) NoopDDA
|
||||
#define xglDestroyWindow (void *) NoopDDA
|
||||
#define xglPositionWindow (void *) NoopDDA
|
||||
#define xglChangeWindowAttributes (void *) NoopDDA
|
||||
#define xglRealizeWindow (void *) NoopDDA
|
||||
#define xglUnrealizeWindow (void *) NoopDDA
|
||||
#define xglPaintWindowBackground (void *) NoopDDA
|
||||
#define xglPaintWindowBorder (void *) NoopDDA
|
||||
#define xglCopyWindow (void *) NoopDDA
|
||||
#define xglRealizeFont (void *) NoopDDA
|
||||
#define xglUnrealizeFont (void *) NoopDDA
|
||||
|
||||
#define xglConstrainCursor (void *) NoopDDA
|
||||
#define xglCursorLimits (void *) NoopDDA
|
||||
#define xglDisplayCursor (void *) NoopDDA
|
||||
#define xglRealizeCursor (void *) NoopDDA
|
||||
#define xglUnrealizeCursor (void *) NoopDDA
|
||||
#define xglRecolorCursor (void *) NoopDDA
|
||||
#define xglSetCursorPosition (void *) NoopDDA
|
||||
|
||||
#define xglCreateColormap (void *) NoopDDA
|
||||
#define xglDestroyColormap (void *) NoopDDA
|
||||
#define xglInstallColormap (void *) NoopDDA
|
||||
#define xglUninstallColormap (void *) NoopDDA
|
||||
#define xglListInstalledColormaps (void *) NoopDDA
|
||||
#define xglStoreColors (void *) NoopDDA
|
||||
#define xglResolveColor (void *) NoopDDA
|
||||
#define xglBitmapToRegion (void *) NoopDDA
|
||||
|
||||
static PixmapPtr
|
||||
xglGetWindowPixmap (WindowPtr pWin)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
xglSetWindowPixmap (WindowPtr pWin, PixmapPtr pPixmap)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
xglSetupScreen (ScreenPtr pScreen)
|
||||
{
|
||||
pScreen->defColormap = FakeClientID (0);
|
||||
pScreen->blackPixel = pScreen->whitePixel = (Pixel) 0;
|
||||
|
||||
pScreen->QueryBestSize = xglQueryBestSize;
|
||||
pScreen->SaveScreen = xglSaveScreen;
|
||||
pScreen->GetImage = miGetImage;
|
||||
pScreen->GetSpans = xglGetSpans;
|
||||
|
||||
pScreen->CreateWindow = xglCreateWindow;
|
||||
pScreen->DestroyWindow = xglDestroyWindow;
|
||||
pScreen->PositionWindow = xglPositionWindow;
|
||||
pScreen->ChangeWindowAttributes = xglChangeWindowAttributes;
|
||||
pScreen->RealizeWindow = xglRealizeWindow;
|
||||
pScreen->UnrealizeWindow = xglUnrealizeWindow;
|
||||
pScreen->PaintWindowBackground = xglPaintWindowBackground;
|
||||
pScreen->PaintWindowBorder = xglPaintWindowBorder;
|
||||
pScreen->CopyWindow = xglCopyWindow;
|
||||
|
||||
pScreen->CreatePixmap = xglCreatePixmap;
|
||||
pScreen->DestroyPixmap = xglDestroyPixmap;
|
||||
|
||||
pScreen->RealizeFont = xglRealizeFont;
|
||||
pScreen->UnrealizeFont = xglUnrealizeFont;
|
||||
|
||||
pScreen->ConstrainCursor = xglConstrainCursor;
|
||||
pScreen->CursorLimits = xglCursorLimits;
|
||||
pScreen->DisplayCursor = xglDisplayCursor;
|
||||
pScreen->RealizeCursor = xglRealizeCursor;
|
||||
pScreen->UnrealizeCursor = xglUnrealizeCursor;
|
||||
pScreen->RecolorCursor = xglRecolorCursor;
|
||||
pScreen->SetCursorPosition = xglSetCursorPosition;
|
||||
|
||||
pScreen->CreateGC = xglCreateGC;
|
||||
|
||||
pScreen->CreateColormap = miInitializeColormap;
|
||||
pScreen->DestroyColormap = xglDestroyColormap;
|
||||
pScreen->InstallColormap = miInstallColormap;
|
||||
pScreen->UninstallColormap = miUninstallColormap;
|
||||
pScreen->ListInstalledColormaps = miListInstalledColormaps;
|
||||
pScreen->StoreColors = xglStoreColors;
|
||||
pScreen->ResolveColor = miResolveColor;
|
||||
|
||||
pScreen->BitmapToRegion = xglBitmapToRegion;
|
||||
|
||||
pScreen->GetWindowPixmap = xglGetWindowPixmap;
|
||||
pScreen->SetWindowPixmap = xglSetWindowPixmap;
|
||||
}
|
||||
|
||||
static Bool
|
||||
xglScreenInit(int index, ScreenPtr pScreen, int argc, char **argv)
|
||||
{
|
||||
VisualPtr visuals;
|
||||
DepthPtr depths;
|
||||
int nvisuals;
|
||||
int ndepth;
|
||||
int rootDepth;
|
||||
VisualID defaultVisual;
|
||||
|
||||
rootDepth = 24;
|
||||
miInitVisuals (&visuals, &depths, &nvisuals,
|
||||
&ndepth, &rootDepth, &defaultVisual,
|
||||
1 << 31, 8, -1);
|
||||
miScreenInit (pScreen, 0, 800, 600, 96, 96, 800, rootDepth,
|
||||
ndepth, depths, defaultVisual, nvisuals, visuals);
|
||||
xglSetupScreen (pScreen);
|
||||
if (!miCreateDefColormap (pScreen))
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void
|
||||
InitOutput (ScreenInfo *pScreenInfo, int argc, char **argv)
|
||||
{
|
||||
xglSetPixmapFormats (pScreenInfo);
|
||||
|
||||
AddScreen (xglScreenInit, argc, argv);
|
||||
}
|
||||
|
||||
Loading…
Reference in a new issue