aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/xwin/winnativegdi.c
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/hw/xwin/winnativegdi.c')
-rw-r--r--xorg-server/hw/xwin/winnativegdi.c491
1 files changed, 0 insertions, 491 deletions
diff --git a/xorg-server/hw/xwin/winnativegdi.c b/xorg-server/hw/xwin/winnativegdi.c
deleted file mode 100644
index 1859698a0..000000000
--- a/xorg-server/hw/xwin/winnativegdi.c
+++ /dev/null
@@ -1,491 +0,0 @@
-/*
- *Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved.
- *
- *Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- *"Software"), to deal in the Software without restriction, including
- *without limitation the rights to use, copy, modify, merge, publish,
- *distribute, sublicense, and/or sell copies of the Software, and to
- *permit persons to whom the Software is furnished to do so, subject to
- *the following conditions:
- *
- *The above copyright notice and this permission notice shall be
- *included in all copies or substantial portions of the Software.
- *
- *THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- *MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *NONINFRINGEMENT. IN NO EVENT SHALL THE XFREE86 PROJECT BE LIABLE FOR
- *ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
- *CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- *WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- *Except as contained in this notice, the name of the XFree86 Project
- *shall not be used in advertising or otherwise to promote the sale, use
- *or other dealings in this Software without prior written authorization
- *from the XFree86 Project.
- *
- * Authors: Harold L Hunt II
- */
-
-#ifdef HAVE_XWIN_CONFIG_H
-#include <xwin-config.h>
-#endif
-#include "win.h"
-
-/*
- * Local function prototypes
- */
-
-static Bool
- winAllocateFBNativeGDI(ScreenPtr pScreen);
-
-static void
- winShadowUpdateNativeGDI(ScreenPtr pScreen, shadowBufPtr pBuf);
-
-static Bool
- winCloseScreenNativeGDI(ScreenPtr pScreen);
-
-static Bool
- winInitVisualsNativeGDI(ScreenPtr pScreen);
-
-static Bool
- winAdjustVideoModeNativeGDI(ScreenPtr pScreen);
-
-#if 0
-static Bool
- winBltExposedRegionsNativeGDI(ScreenPtr pScreen);
-#endif
-
-static Bool
- winActivateAppNativeGDI(ScreenPtr pScreen);
-
-static Bool
- winRedrawScreenNativeGDI(ScreenPtr pScreen);
-
-static Bool
- winRealizeInstalledPaletteNativeGDI(ScreenPtr pScreen);
-
-static Bool
- winInstallColormapNativeGDI(ColormapPtr pColormap);
-
-static Bool
- winStoreColorsNativeGDI(ColormapPtr pmap, int ndef, xColorItem * pdefs);
-
-static Bool
- winCreateColormapNativeGDI(ColormapPtr pColormap);
-
-static Bool
- winDestroyColormapNativeGDI(ColormapPtr pColormap);
-
-static Bool
-winAllocateFBNativeGDI(ScreenPtr pScreen)
-{
- FatalError("winAllocateFBNativeGDI\n");
-
- return TRUE;
-}
-
-static void
-winFreeFBNativeGDI(ScreenPtr pScreen)
-{
- FatalError("winFreeFBNativeGDI\n");
-}
-
-static Bool
-winInitScreenNativeGDI(ScreenPtr pScreen)
-{
- FatalError("winInitScreenNativeGDI\n");
-}
-
-/*
- * We wrap whatever CloseScreen procedure was specified by fb;
- * a pointer to said procedure is stored in our privates.
- */
-
-static Bool
-winCloseScreenNativeGDI(ScreenPtr pScreen)
-{
- winScreenPriv(pScreen);
- winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
-
- ErrorF("winCloseScreenNativeGDI - Freeing screen resources\n");
-
- /* Flag that the screen is closed */
- pScreenPriv->fClosed = TRUE;
- pScreenPriv->fActive = FALSE;
-
- /*
- * NOTE: mi doesn't use a CloseScreen procedure, so we do not
- * need to call a wrapped procedure here.
- */
-
- /* Delete the window property */
- RemoveProp(pScreenPriv->hwndScreen, WIN_SCR_PROP);
-
- ErrorF("winCloseScreenNativeGDI - Destroying window\n");
-
- /* Delete tray icon, if we have one */
- if (!pScreenInfo->fNoTrayIcon)
- winDeleteNotifyIcon(pScreenPriv);
-
- /* Free the exit confirmation dialog box, if it exists */
- if (g_hDlgExit != NULL) {
- DestroyWindow(g_hDlgExit);
- g_hDlgExit = NULL;
- }
-
- /* Kill our window */
- if (pScreenPriv->hwndScreen) {
- DestroyWindow(pScreenPriv->hwndScreen);
- pScreenPriv->hwndScreen = NULL;
- }
-
- /* Invalidate our screeninfo's pointer to the screen */
- pScreenInfo->pScreen = NULL;
-
- /* Free the screen privates for this screen */
- free(pScreenPriv);
-
- ErrorF("winCloseScreenNativeGDI - Returning\n");
-
- return TRUE;
-}
-
-static void
-winShadowUpdateNativeGDI(ScreenPtr pScreen, shadowBufPtr pBuf)
-{
- FatalError("winShadowUpdateNativeGDI\n");
- return;
-}
-
-static Bool
-winInitVisualsNativeGDI(ScreenPtr pScreen)
-{
- winScreenPriv(pScreen);
- winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
-
- /* Set the bitsPerRGB and bit masks */
- switch (pScreenInfo->dwDepth) {
- case 24:
- pScreenPriv->dwBitsPerRGB = 8;
- pScreenPriv->dwRedMask = 0x00FF0000;
- pScreenPriv->dwGreenMask = 0x0000FF00;
- pScreenPriv->dwBlueMask = 0x000000FF;
- break;
-
- case 16:
- pScreenPriv->dwBitsPerRGB = 6;
- pScreenPriv->dwRedMask = 0xF800;
- pScreenPriv->dwGreenMask = 0x07E0;
- pScreenPriv->dwBlueMask = 0x001F;
- break;
-
- case 15:
- pScreenPriv->dwBitsPerRGB = 5;
- pScreenPriv->dwRedMask = 0x7C00;
- pScreenPriv->dwGreenMask = 0x03E0;
- pScreenPriv->dwBlueMask = 0x001F;
- break;
-
- case 8:
- pScreenPriv->dwBitsPerRGB = 8;
- pScreenPriv->dwRedMask = 0;
- pScreenPriv->dwGreenMask = 0;
- pScreenPriv->dwBlueMask = 0;
- break;
-
- default:
- ErrorF("winInitVisualsNativeGDI - Unknown screen depth\n");
- return FALSE;
- break;
- }
-
- /* Tell the user how many bits per RGB we are using */
- ErrorF("winInitVisualsNativeGDI - Using dwBitsPerRGB: %d\n",
- (int) pScreenPriv->dwBitsPerRGB);
-
- /* Create a single visual according to the Windows screen depth */
- switch (pScreenInfo->dwDepth) {
- case 24:
- case 16:
- case 15:
- if (!miSetVisualTypesAndMasks(pScreenInfo->dwDepth,
- TrueColorMask,
- pScreenPriv->dwBitsPerRGB,
- TrueColor,
- pScreenPriv->dwRedMask,
- pScreenPriv->dwGreenMask,
- pScreenPriv->dwBlueMask)) {
- ErrorF("winInitVisuals - miSetVisualTypesAndMasks failed\n");
- return FALSE;
- }
- break;
-
- case 8:
- ErrorF("winInitVisuals - Calling miSetVisualTypesAndMasks\n");
- if (!miSetVisualTypesAndMasks(pScreenInfo->dwDepth,
- StaticColorMask,
- pScreenPriv->dwBitsPerRGB,
- StaticColor,
- pScreenPriv->dwRedMask,
- pScreenPriv->dwGreenMask,
- pScreenPriv->dwBlueMask)) {
- ErrorF("winInitVisuals - miSetVisualTypesAndMasks failed\n");
- return FALSE;
- }
- break;
-
- default:
- ErrorF("winInitVisualsNativeGDI - Unknown screen depth\n");
- return FALSE;
- }
-
-#if 1
- ErrorF("winInitVisualsNativeGDI - Returning\n");
-#endif
-
- return TRUE;
-}
-
-/* Adjust the video mode */
-static Bool
-winAdjustVideoModeNativeGDI(ScreenPtr pScreen)
-{
- winScreenPriv(pScreen);
- winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
- HDC hdc = NULL;
- DWORD dwBPP;
-
- hdc = GetDC(NULL);
-
- /* We're in serious trouble if we can't get a DC */
- if (hdc == NULL) {
- ErrorF("winAdjustVideoModeNativeGDI - GetDC () failed\n");
- return FALSE;
- }
-
- /* Query GDI for current display depth */
- dwBPP = GetDeviceCaps(hdc, BITSPIXEL);
- pScreenInfo->dwDepth = GetDeviceCaps(hdc, PLANES);
-
- switch (pScreenInfo->dwDepth) {
- case 24:
- case 16:
- case 15:
- case 8:
- break;
- default:
- if (dwBPP == 32)
- pScreenInfo->dwDepth = 24;
- else
- pScreenInfo->dwDepth = dwBPP;
- break;
- }
-
- /* GDI cannot change the screen depth, so we'll use GDI's depth */
- pScreenInfo->dwBPP = dwBPP;
-
- /* Release our DC */
- ReleaseDC(NULL, hdc);
-
- return TRUE;
-}
-
-static Bool
-winActivateAppNativeGDI(ScreenPtr pScreen)
-{
- winScreenPriv(pScreen);
-
- /*
- * Are we active?
- * Are we fullscreen?
- */
- if (pScreenPriv != NULL
- && pScreenPriv->fActive
- && pScreenPriv->pScreenInfo && pScreenPriv->pScreenInfo->fFullScreen) {
- /*
- * Activating, attempt to bring our window
- * to the top of the display
- */
- ShowWindow(pScreenPriv->hwndScreen, SW_RESTORE);
- }
-
- /*
- * Are we inactive?
- * Are we fullscreen?
- */
- if (pScreenPriv != NULL
- && !pScreenPriv->fActive
- && pScreenPriv->pScreenInfo && pScreenPriv->pScreenInfo->fFullScreen) {
- /*
- * Deactivating, stuff our window onto the
- * task bar.
- */
- ShowWindow(pScreenPriv->hwndScreen, SW_MINIMIZE);
- }
-
- return TRUE;
-}
-
-HBITMAP
-winCreateDIBNativeGDI(int iWidth, int iHeight, int iDepth,
- BYTE ** ppbBits, BITMAPINFO ** ppbmi)
-{
- BITMAPINFOHEADER *pbmih = NULL;
- HBITMAP hBitmap = NULL;
- BITMAPINFO *pbmi = NULL;
-
- /* Don't create an invalid bitmap */
- if (iWidth == 0 || iHeight == 0 || iDepth == 0) {
- ErrorF("\nwinCreateDIBNativeGDI - Invalid specs w %d h %d d %d\n\n",
- iWidth, iHeight, iDepth);
- return NULL;
- }
-
- /* Allocate bitmap info header */
- pbmih = malloc(sizeof(BITMAPINFOHEADER) + 256 * sizeof(RGBQUAD));
- if (pbmih == NULL) {
- ErrorF("winCreateDIBNativeGDI - malloc () failed\n");
- return FALSE;
- }
- ZeroMemory(pbmih, sizeof(BITMAPINFOHEADER) + 256 * sizeof(RGBQUAD));
-
- /* Describe bitmap to be created */
- pbmih->biSize = sizeof(BITMAPINFOHEADER);
- pbmih->biWidth = iWidth;
- pbmih->biHeight = -iHeight;
- pbmih->biPlanes = 1;
- pbmih->biBitCount = iDepth;
- pbmih->biCompression = BI_RGB;
- pbmih->biSizeImage = 0;
- pbmih->biXPelsPerMeter = 0;
- pbmih->biYPelsPerMeter = 0;
- pbmih->biClrUsed = 0;
- pbmih->biClrImportant = 0;
-
- /* Setup color table for mono DIBs */
- if (iDepth == 1) {
- pbmi = (BITMAPINFO *) pbmih;
- pbmi->bmiColors[1].rgbBlue = 255;
- pbmi->bmiColors[1].rgbGreen = 255;
- pbmi->bmiColors[1].rgbRed = 255;
- }
-
- /* Create a DIB with a bit pointer */
- hBitmap = CreateDIBSection(NULL,
- (BITMAPINFO *) pbmih,
- DIB_RGB_COLORS, (void **) ppbBits, NULL, 0);
- if (hBitmap == NULL) {
- ErrorF("winCreateDIBNativeGDI - CreateDIBSection () failed\n");
- return NULL;
- }
-
- /* Free the bitmap info header memory */
- if (ppbmi != NULL) {
- /* Store the address of the BMIH in the ppbmih parameter */
- *ppbmi = (BITMAPINFO *) pbmih;
- }
- else {
- free(pbmih);
- pbmih = NULL;
- }
-
- return hBitmap;
-}
-
-#if 0
-static Bool
-winBltExposedRegionsNativeGDI(ScreenPtr pScreen)
-{
-
- return TRUE;
-}
-#endif
-
-static Bool
-winRedrawScreenNativeGDI(ScreenPtr pScreen)
-{
- FatalError("winRedrawScreenNativeGDI\n");
- return TRUE;
-}
-
-static Bool
-winRealizeInstalledPaletteNativeGDI(ScreenPtr pScreen)
-{
- FatalError("winRealizeInstalledPaletteNativeGDI\n");
- return TRUE;
-}
-
-static Bool
-winInstallColormapNativeGDI(ColormapPtr pColormap)
-{
- FatalError("winInstallColormapNativeGDI\n");
- return TRUE;
-}
-
-static Bool
-winStoreColorsNativeGDI(ColormapPtr pmap, int ndef, xColorItem * pdefs)
-{
- FatalError("winStoreColorsNativeGDI\n");
- return TRUE;
-}
-
-static Bool
-winCreateColormapNativeGDI(ColormapPtr pColormap)
-{
- FatalError("winCreateColormapNativeGDI\n");
- return TRUE;
-}
-
-static Bool
-winDestroyColormapNativeGDI(ColormapPtr pColormap)
-{
- FatalError("winDestroyColormapNativeGDI\n");
- return TRUE;
-}
-
-/* Set engine specific funtions */
-Bool
-winSetEngineFunctionsNativeGDI(ScreenPtr pScreen)
-{
- winScreenPriv(pScreen);
- winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
-
- /* Set our pointers */
- pScreenPriv->pwinAllocateFB = winAllocateFBNativeGDI;
- pScreenPriv->pwinFreeFB = winFreeFBNativeGDI;
- pScreenPriv->pwinShadowUpdate = winShadowUpdateNativeGDI;
- pScreenPriv->pwinInitScreen = winInitScreenNativeGDI;
- pScreenPriv->pwinCloseScreen = winCloseScreenNativeGDI;
- pScreenPriv->pwinInitVisuals = winInitVisualsNativeGDI;
- pScreenPriv->pwinAdjustVideoMode = winAdjustVideoModeNativeGDI;
- if (pScreenInfo->fFullScreen)
- pScreenPriv->pwinCreateBoundingWindow =
- winCreateBoundingWindowFullScreen;
- else
- pScreenPriv->pwinCreateBoundingWindow = winCreateBoundingWindowWindowed;
- pScreenPriv->pwinFinishScreenInit = winFinishScreenInitNativeGDI;
- /*
- * WARNING: Do not set the BltExposedRegions procedure pointer to anything
- * other than NULL until a working painting procedure is in place.
- * Else, winWindowProc will get stuck in an infinite loop because
- * Windows expects the BeginPaint and EndPaint functions to be called
- * before a WM_PAINT message can be removed from the queue. We are
- * using NULL here as a signal for winWindowProc that it should
- * not signal that the WM_PAINT message has been processed.
- */
- pScreenPriv->pwinBltExposedRegions = NULL;
- pScreenPriv->pwinActivateApp = winActivateAppNativeGDI;
- pScreenPriv->pwinRedrawScreen = winRedrawScreenNativeGDI;
- pScreenPriv->pwinRealizeInstalledPalette =
- winRealizeInstalledPaletteNativeGDI;
- pScreenPriv->pwinInstallColormap = winInstallColormapNativeGDI;
- pScreenPriv->pwinStoreColors = winStoreColorsNativeGDI;
- pScreenPriv->pwinCreateColormap = winCreateColormapNativeGDI;
- pScreenPriv->pwinDestroyColormap = winDestroyColormapNativeGDI;
- pScreenPriv->pwinHotKeyAltTab =
- (winHotKeyAltTabProcPtr) (void (*)(void)) NoopDDA;
-
- return TRUE;
-}