gdi32: Make wing.dll into a stand-alone 16-bit module.
This commit is contained in:
parent
7582b13d8d
commit
6ad951804a
|
@ -124,7 +124,6 @@ dlls/toolhelp.dll16
|
|||
dlls/user.exe16
|
||||
dlls/ver.dll16
|
||||
dlls/wineps16.drv16
|
||||
dlls/wing.dll16
|
||||
dlls/winsock.dll16
|
||||
dlls/wprocs.dll16
|
||||
include/activaut.h
|
||||
|
|
|
@ -17081,6 +17081,14 @@ ALL_MAKEFILE_DEPENDS="$ALL_MAKEFILE_DEPENDS
|
|||
dlls/winex11.drv/Makefile: dlls/winex11.drv/Makefile.in dlls/Makedll.rules"
|
||||
ac_config_files="$ac_config_files dlls/winex11.drv/Makefile"
|
||||
|
||||
ALL_MAKEFILES="$ALL_MAKEFILES \\
|
||||
dlls/wing.dll16/Makefile"
|
||||
test "x$enable_win16" != xno && ALL_DLL_DIRS="$ALL_DLL_DIRS \\
|
||||
wing.dll16"
|
||||
ALL_MAKEFILE_DEPENDS="$ALL_MAKEFILE_DEPENDS
|
||||
dlls/wing.dll16/Makefile: dlls/wing.dll16/Makefile.in dlls/Makedll.rules"
|
||||
ac_config_files="$ac_config_files dlls/wing.dll16/Makefile"
|
||||
|
||||
ALL_MAKEFILES="$ALL_MAKEFILES \\
|
||||
dlls/wing32/Makefile"
|
||||
test "x$enable_wing32" != xno && ALL_DLL_DIRS="$ALL_DLL_DIRS \\
|
||||
|
@ -19082,6 +19090,7 @@ do
|
|||
"dlls/wineps.drv/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wineps.drv/Makefile" ;;
|
||||
"dlls/winequartz.drv/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winequartz.drv/Makefile" ;;
|
||||
"dlls/winex11.drv/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winex11.drv/Makefile" ;;
|
||||
"dlls/wing.dll16/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wing.dll16/Makefile" ;;
|
||||
"dlls/wing32/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/wing32/Makefile" ;;
|
||||
"dlls/winhttp/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winhttp/Makefile" ;;
|
||||
"dlls/winhttp/tests/Makefile") CONFIG_FILES="$CONFIG_FILES dlls/winhttp/tests/Makefile" ;;
|
||||
|
|
|
@ -2496,6 +2496,7 @@ WINE_CONFIG_MAKEFILE([dlls/wineoss.drv/Makefile],[dlls/Makedll.rules],[dlls],[AL
|
|||
WINE_CONFIG_MAKEFILE([dlls/wineps.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
|
||||
WINE_CONFIG_MAKEFILE([dlls/winequartz.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
|
||||
WINE_CONFIG_MAKEFILE([dlls/winex11.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
|
||||
WINE_CONFIG_MAKEFILE([dlls/wing.dll16/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS],[enable_win16])
|
||||
WINE_CONFIG_MAKEFILE([dlls/wing32/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
|
||||
WINE_CONFIG_MAKEFILE([dlls/winhttp/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
|
||||
WINE_CONFIG_MAKEFILE([dlls/winhttp/tests/Makefile],[dlls/Maketest.rules],[dlls],[ALL_TEST_DIRS],[enable_tests])
|
||||
|
|
|
@ -28,7 +28,6 @@ WIN16_FILES = \
|
|||
user.exe16 \
|
||||
ver.dll16 \
|
||||
wineps16.drv16 \
|
||||
wing.dll16 \
|
||||
winsock.dll16 \
|
||||
wprocs.dll16
|
||||
|
||||
|
@ -43,7 +42,7 @@ all: $(BUILDSUBDIRS) @WIN16_FILES@
|
|||
commdlg.dll16:
|
||||
echo "comdlg32.dll" >$@
|
||||
|
||||
gdi.exe16 wing.dll16:
|
||||
gdi.exe16:
|
||||
echo "gdi32.dll" >$@
|
||||
|
||||
krnl386.exe16 system.drv16 toolhelp.dll16:
|
||||
|
|
|
@ -9,9 +9,7 @@ IMPORTS = advapi32 kernel32 ntdll
|
|||
EXTRAINCL = @FREETYPEINCL@ @FONTCONFIGINCL@
|
||||
EXTRALIBS = @CARBONLIB@
|
||||
|
||||
SPEC_SRCS16 = \
|
||||
gdi.exe.spec \
|
||||
wing.spec
|
||||
SPEC_SRCS16 = gdi.exe.spec
|
||||
|
||||
C_SRCS = \
|
||||
bidi.c \
|
||||
|
@ -56,8 +54,7 @@ C_SRCS16 = \
|
|||
bidi16.c \
|
||||
env.c \
|
||||
gdi16.c \
|
||||
metafile16.c \
|
||||
wing.c
|
||||
metafile16.c
|
||||
|
||||
RC_SRCS = version.rc
|
||||
RC_SRCS16 = version16.rc
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
TOPSRCDIR = @top_srcdir@
|
||||
TOPOBJDIR = ../..
|
||||
SRCDIR = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
MODULE = wing.dll16
|
||||
IMPORTS = gdi32 kernel32
|
||||
EXTRADLLFLAGS = -Wb,--subsystem,win16
|
||||
|
||||
C_SRCS = wing.c
|
||||
|
||||
@MAKE_DLL_RULES@
|
||||
|
||||
@DEPENDENCIES@ # everything below this line is overwritten by make depend
|
|
@ -26,7 +26,6 @@
|
|||
#include "winbase.h"
|
||||
#include "wingdi.h"
|
||||
#include "wownt32.h"
|
||||
#include "gdi_private.h"
|
||||
#include "wine/wingdi16.h"
|
||||
#include "wine/debug.h"
|
||||
|
||||
|
@ -51,19 +50,6 @@ typedef enum WING_DITHER_TYPE
|
|||
WING_DISPERSED_4x4, WING_DISPERSED_8x8, WING_CLUSTERED_4x4
|
||||
} WING_DITHER_TYPE;
|
||||
|
||||
/*
|
||||
* WinG DIB bitmaps can be selected into DC and then scribbled upon
|
||||
* by GDI functions. They can also be changed directly. This gives us
|
||||
* three choices
|
||||
* - use original WinG 16-bit DLL
|
||||
* requires working 16-bit driver interface
|
||||
* - implement DIB graphics driver from scratch
|
||||
* see wing.zip size
|
||||
* - use shared pixmaps
|
||||
* won't work with some videocards and/or videomodes
|
||||
* 961208 - AK
|
||||
*/
|
||||
|
||||
/***********************************************************************
|
||||
* WinGCreateDC (WING.1001)
|
||||
*
|
||||
|
@ -79,7 +65,7 @@ typedef enum WING_DITHER_TYPE
|
|||
HDC16 WINAPI WinGCreateDC16(void)
|
||||
{
|
||||
TRACE("(void)\n");
|
||||
return CreateCompatibleDC16(0);
|
||||
return HDC_16( CreateCompatibleDC( 0 ));
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
|
@ -130,13 +116,38 @@ BOOL16 WINAPI WinGRecommendDIBFormat16(BITMAPINFO *bmpi)
|
|||
* Success: A handle to the created bitmap.
|
||||
* Failure: A NULL handle.
|
||||
*/
|
||||
HBITMAP16 WINAPI WinGCreateBitmap16(HDC16 hdc, BITMAPINFO *bmpi,
|
||||
SEGPTR *bits)
|
||||
HBITMAP16 WINAPI WinGCreateBitmap16(HDC16 hdc, BITMAPINFO *bmpi, SEGPTR *bits)
|
||||
{
|
||||
TRACE("(%d,%p,%p)\n", hdc, bmpi, bits);
|
||||
TRACE(": create %dx%dx%d bitmap\n", bmpi->bmiHeader.biWidth,
|
||||
bmpi->bmiHeader.biHeight, bmpi->bmiHeader.biPlanes);
|
||||
return CreateDIBSection16(hdc, bmpi, 0, bits, 0, 0);
|
||||
LPVOID bits32;
|
||||
HBITMAP hbitmap;
|
||||
|
||||
TRACE("(%d,%p,%p): create %dx%dx%d bitmap\n", hdc, bmpi, bits,
|
||||
bmpi->bmiHeader.biWidth, bmpi->bmiHeader.biHeight, bmpi->bmiHeader.biPlanes);
|
||||
|
||||
hbitmap = CreateDIBSection( HDC_32(hdc), bmpi, BI_RGB, &bits32, 0, 0 );
|
||||
if (hbitmap)
|
||||
{
|
||||
DIBSECTION dib;
|
||||
DWORD size;
|
||||
WORD count, sel;
|
||||
int i;
|
||||
|
||||
GetObjectW( hbitmap, sizeof(dib), &dib );
|
||||
size = dib.dsBm.bmHeight * dib.dsBm.bmWidthBytes;
|
||||
|
||||
/* calculate number of sel's needed for size with 64K steps */
|
||||
count = (size + 0xffff) / 0x10000;
|
||||
sel = AllocSelectorArray16(count);
|
||||
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
SetSelectorBase(sel + (i << __AHSHIFT), (DWORD)bits32 + i * 0x10000);
|
||||
SetSelectorLimit16(sel + (i << __AHSHIFT), size - 1); /* yep, limit is correct */
|
||||
size -= 0x10000;
|
||||
}
|
||||
if (bits) *bits = MAKESEGPTR( sel, 0 );
|
||||
}
|
||||
return HBITMAP_16(hbitmap);
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
|
@ -144,17 +155,8 @@ HBITMAP16 WINAPI WinGCreateBitmap16(HDC16 hdc, BITMAPINFO *bmpi,
|
|||
*/
|
||||
SEGPTR WINAPI WinGGetDIBPointer16(HBITMAP16 hWinGBitmap, BITMAPINFO* bmpi)
|
||||
{
|
||||
BITMAPOBJ* bmp = GDI_GetObjPtr( HBITMAP_32(hWinGBitmap), OBJ_BITMAP );
|
||||
SEGPTR res = 0;
|
||||
|
||||
TRACE("(%d,%p)\n", hWinGBitmap, bmpi);
|
||||
if (!bmp) return 0;
|
||||
|
||||
if (bmpi) FIXME(": Todo - implement setting BITMAPINFO\n");
|
||||
|
||||
res = bmp->segptr_bits;
|
||||
GDI_ReleaseObj( HBITMAP_32(hWinGBitmap) );
|
||||
return res;
|
||||
FIXME("%x, %p: not supported\n", hWinGBitmap, bmpi );
|
||||
return 0;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
|
@ -171,11 +173,10 @@ SEGPTR WINAPI WinGGetDIBPointer16(HBITMAP16 hWinGBitmap, BITMAPINFO* bmpi)
|
|||
* RETURNS
|
||||
* The number of entries set.
|
||||
*/
|
||||
UINT16 WINAPI WinGSetDIBColorTable16(HDC16 hdc, UINT16 start, UINT16 num,
|
||||
RGBQUAD *colors)
|
||||
UINT16 WINAPI WinGSetDIBColorTable16(HDC16 hdc, UINT16 start, UINT16 num, RGBQUAD *colors)
|
||||
{
|
||||
TRACE("(%d,%d,%d,%p)\n", hdc, start, num, colors);
|
||||
return SetDIBColorTable16(hdc, start, num, colors);
|
||||
return SetDIBColorTable( HDC_32(hdc), start, num, colors );
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
|
@ -192,11 +193,10 @@ UINT16 WINAPI WinGSetDIBColorTable16(HDC16 hdc, UINT16 start, UINT16 num,
|
|||
* RETURNS
|
||||
* The number of entries retrieved.
|
||||
*/
|
||||
UINT16 WINAPI WinGGetDIBColorTable16(HDC16 hdc, UINT16 start, UINT16 num,
|
||||
RGBQUAD *colors)
|
||||
UINT16 WINAPI WinGGetDIBColorTable16(HDC16 hdc, UINT16 start, UINT16 num, RGBQUAD *colors)
|
||||
{
|
||||
TRACE("(%d,%d,%d,%p)\n", hdc, start, num, colors);
|
||||
return GetDIBColorTable16(hdc, start, num, colors);
|
||||
return GetDIBColorTable( HDC_32(hdc), start, num, colors );
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
|
@ -213,10 +213,10 @@ UINT16 WINAPI WinGGetDIBColorTable16(HDC16 hdc, UINT16 start, UINT16 num,
|
|||
*/
|
||||
HPALETTE16 WINAPI WinGCreateHalfTonePalette16(void)
|
||||
{
|
||||
HDC16 hdc = CreateCompatibleDC16(0);
|
||||
HPALETTE16 ret = CreateHalftonePalette16(hdc);
|
||||
HDC hdc = CreateCompatibleDC(0);
|
||||
HPALETTE16 ret = HPALETTE_16( CreateHalftonePalette( hdc ));
|
||||
TRACE("(void)\n");
|
||||
DeleteDC16(hdc);
|
||||
DeleteDC( hdc );
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -238,7 +238,7 @@ HBRUSH16 WINAPI WinGCreateHalfToneBrush16(HDC16 winDC, COLORREF col,
|
|||
WING_DITHER_TYPE type)
|
||||
{
|
||||
TRACE("(%d,%d,%d)\n", winDC, col, type);
|
||||
return CreateSolidBrush16(col);
|
||||
return HBRUSH_16( CreateSolidBrush( col ));
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
|
@ -251,12 +251,12 @@ BOOL16 WINAPI WinGStretchBlt16(HDC16 destDC, INT16 xDest, INT16 yDest,
|
|||
HDC16 srcDC, INT16 xSrc, INT16 ySrc,
|
||||
INT16 widSrc, INT16 heiSrc)
|
||||
{
|
||||
BOOL16 retval;
|
||||
BOOL retval;
|
||||
TRACE("(%d,%d,...)\n", destDC, srcDC);
|
||||
SetStretchBltMode16 ( destDC, COLORONCOLOR );
|
||||
retval=StretchBlt16(destDC, xDest, yDest, widDest, heiDest, srcDC,
|
||||
xSrc, ySrc, widSrc, heiSrc, SRCCOPY);
|
||||
SetStretchBltMode16 ( destDC, BLACKONWHITE );
|
||||
SetStretchBltMode( HDC_32(destDC), COLORONCOLOR );
|
||||
retval = StretchBlt( HDC_32(destDC), xDest, yDest, widDest, heiDest,
|
||||
HDC_32(srcDC), xSrc, ySrc, widSrc, heiSrc, SRCCOPY );
|
||||
SetStretchBltMode( HDC_32(destDC), BLACKONWHITE );
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -270,6 +270,5 @@ BOOL16 WINAPI WinGBitBlt16(HDC16 destDC, INT16 xDest, INT16 yDest,
|
|||
INT16 xSrc, INT16 ySrc)
|
||||
{
|
||||
TRACE("(%d,%d,...)\n", destDC, srcDC);
|
||||
return BitBlt16(destDC, xDest, yDest, widDest, heiDest, srcDC,
|
||||
xSrc, ySrc, SRCCOPY);
|
||||
return BitBlt( HDC_32(destDC), xDest, yDest, widDest, heiDest, HDC_32(srcDC), xSrc, ySrc, SRCCOPY );
|
||||
}
|
Loading…
Reference in New Issue