mirror of
https://github.com/reactos/wine.git
synced 2024-11-30 15:10:27 +00:00
wineandroid: Add an initial GDI driver.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
1c1db33aba
commit
e5069b1017
@ -1,8 +1,14 @@
|
||||
MODULE = wineandroid.drv
|
||||
|
||||
C_SRCS = \
|
||||
init.c
|
||||
|
||||
IN_SRCS = \
|
||||
build.gradle.in
|
||||
|
||||
SVG_SRCS = \
|
||||
wine.svg
|
||||
|
||||
EXTRA_TARGETS = wine-debug.apk
|
||||
|
||||
all: wine-debug.apk
|
||||
|
239
dlls/wineandroid.drv/init.c
Normal file
239
dlls/wineandroid.drv/init.c
Normal file
@ -0,0 +1,239 @@
|
||||
/*
|
||||
* Android driver initialisation functions
|
||||
*
|
||||
* Copyright 1996, 2013, 2017 Alexandre Julliard
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#define NONAMELESSSTRUCT
|
||||
#define NONAMELESSUNION
|
||||
#include "config.h"
|
||||
#include "wine/port.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "wingdi.h"
|
||||
#include "winuser.h"
|
||||
#include "wine/gdi_driver.h"
|
||||
#include "wine/debug.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(android);
|
||||
|
||||
typedef struct
|
||||
{
|
||||
struct gdi_physdev dev;
|
||||
} ANDROID_PDEVICE;
|
||||
|
||||
static const struct gdi_dc_funcs android_drv_funcs;
|
||||
|
||||
/******************************************************************************
|
||||
* create_android_physdev
|
||||
*/
|
||||
static ANDROID_PDEVICE *create_android_physdev(void)
|
||||
{
|
||||
ANDROID_PDEVICE *physdev;
|
||||
|
||||
if (!(physdev = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*physdev) ))) return NULL;
|
||||
return physdev;
|
||||
}
|
||||
|
||||
/**********************************************************************
|
||||
* ANDROID_CreateDC
|
||||
*/
|
||||
static BOOL ANDROID_CreateDC( PHYSDEV *pdev, LPCWSTR driver, LPCWSTR device,
|
||||
LPCWSTR output, const DEVMODEW* initData )
|
||||
{
|
||||
ANDROID_PDEVICE *physdev = create_android_physdev();
|
||||
|
||||
if (!physdev) return FALSE;
|
||||
|
||||
push_dc_driver( pdev, &physdev->dev, &android_drv_funcs );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* ANDROID_CreateCompatibleDC
|
||||
*/
|
||||
static BOOL ANDROID_CreateCompatibleDC( PHYSDEV orig, PHYSDEV *pdev )
|
||||
{
|
||||
ANDROID_PDEVICE *physdev = create_android_physdev();
|
||||
|
||||
if (!physdev) return FALSE;
|
||||
|
||||
push_dc_driver( pdev, &physdev->dev, &android_drv_funcs );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* ANDROID_DeleteDC
|
||||
*/
|
||||
static BOOL ANDROID_DeleteDC( PHYSDEV dev )
|
||||
{
|
||||
HeapFree( GetProcessHeap(), 0, dev );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
static const struct gdi_dc_funcs android_drv_funcs =
|
||||
{
|
||||
NULL, /* pAbortDoc */
|
||||
NULL, /* pAbortPath */
|
||||
NULL, /* pAlphaBlend */
|
||||
NULL, /* pAngleArc */
|
||||
NULL, /* pArc */
|
||||
NULL, /* pArcTo */
|
||||
NULL, /* pBeginPath */
|
||||
NULL, /* pBlendImage */
|
||||
NULL, /* pChord */
|
||||
NULL, /* pCloseFigure */
|
||||
ANDROID_CreateCompatibleDC, /* pCreateCompatibleDC */
|
||||
ANDROID_CreateDC, /* pCreateDC */
|
||||
ANDROID_DeleteDC, /* pDeleteDC */
|
||||
NULL, /* pDeleteObject */
|
||||
NULL, /* pDeviceCapabilities */
|
||||
NULL, /* pEllipse */
|
||||
NULL, /* pEndDoc */
|
||||
NULL, /* pEndPage */
|
||||
NULL, /* pEndPath */
|
||||
NULL, /* pEnumFonts */
|
||||
NULL, /* pEnumICMProfiles */
|
||||
NULL, /* pExcludeClipRect */
|
||||
NULL, /* pExtDeviceMode */
|
||||
NULL, /* pExtEscape */
|
||||
NULL, /* pExtFloodFill */
|
||||
NULL, /* pExtSelectClipRgn */
|
||||
NULL, /* pExtTextOut */
|
||||
NULL, /* pFillPath */
|
||||
NULL, /* pFillRgn */
|
||||
NULL, /* pFlattenPath */
|
||||
NULL, /* pFontIsLinked */
|
||||
NULL, /* pFrameRgn */
|
||||
NULL, /* pGdiComment */
|
||||
NULL, /* pGetBoundsRect */
|
||||
NULL, /* pGetCharABCWidths */
|
||||
NULL, /* pGetCharABCWidthsI */
|
||||
NULL, /* pGetCharWidth */
|
||||
NULL, /* pGetDeviceCaps */
|
||||
NULL, /* pGetDeviceGammaRamp */
|
||||
NULL, /* pGetFontData */
|
||||
NULL, /* pGetFontRealizationInfo */
|
||||
NULL, /* pGetFontUnicodeRanges */
|
||||
NULL, /* pGetGlyphIndices */
|
||||
NULL, /* pGetGlyphOutline */
|
||||
NULL, /* pGetICMProfile */
|
||||
NULL, /* pGetImage */
|
||||
NULL, /* pGetKerningPairs */
|
||||
NULL, /* pGetNearestColor */
|
||||
NULL, /* pGetOutlineTextMetrics */
|
||||
NULL, /* pGetPixel */
|
||||
NULL, /* pGetSystemPaletteEntries */
|
||||
NULL, /* pGetTextCharsetInfo */
|
||||
NULL, /* pGetTextExtentExPoint */
|
||||
NULL, /* pGetTextExtentExPointI */
|
||||
NULL, /* pGetTextFace */
|
||||
NULL, /* pGetTextMetrics */
|
||||
NULL, /* pGradientFill */
|
||||
NULL, /* pIntersectClipRect */
|
||||
NULL, /* pInvertRgn */
|
||||
NULL, /* pLineTo */
|
||||
NULL, /* pModifyWorldTransform */
|
||||
NULL, /* pMoveTo */
|
||||
NULL, /* pOffsetClipRgn */
|
||||
NULL, /* pOffsetViewportOrg */
|
||||
NULL, /* pOffsetWindowOrg */
|
||||
NULL, /* pPaintRgn */
|
||||
NULL, /* pPatBlt */
|
||||
NULL, /* pPie */
|
||||
NULL, /* pPolyBezier */
|
||||
NULL, /* pPolyBezierTo */
|
||||
NULL, /* pPolyDraw */
|
||||
NULL, /* pPolyPolygon */
|
||||
NULL, /* pPolyPolyline */
|
||||
NULL, /* pPolygon */
|
||||
NULL, /* pPolyline */
|
||||
NULL, /* pPolylineTo */
|
||||
NULL, /* pPutImage */
|
||||
NULL, /* pRealizeDefaultPalette */
|
||||
NULL, /* pRealizePalette */
|
||||
NULL, /* pRectangle */
|
||||
NULL, /* pResetDC */
|
||||
NULL, /* pRestoreDC */
|
||||
NULL, /* pRoundRect */
|
||||
NULL, /* pSaveDC */
|
||||
NULL, /* pScaleViewportExt */
|
||||
NULL, /* pScaleWindowExt */
|
||||
NULL, /* pSelectBitmap */
|
||||
NULL, /* pSelectBrush */
|
||||
NULL, /* pSelectClipPath */
|
||||
NULL, /* pSelectFont */
|
||||
NULL, /* pSelectPalette */
|
||||
NULL, /* pSelectPen */
|
||||
NULL, /* pSetArcDirection */
|
||||
NULL, /* pSetBkColor */
|
||||
NULL, /* pSetBkMode */
|
||||
NULL, /* pSetBoundsRect */
|
||||
NULL, /* pSetDCBrushColor */
|
||||
NULL, /* pSetDCPenColor */
|
||||
NULL, /* pSetDIBitsToDevice */
|
||||
NULL, /* pSetDeviceClipping */
|
||||
NULL, /* pSetDeviceGammaRamp */
|
||||
NULL, /* pSetLayout */
|
||||
NULL, /* pSetMapMode */
|
||||
NULL, /* pSetMapperFlags */
|
||||
NULL, /* pSetPixel */
|
||||
NULL, /* pSetPolyFillMode */
|
||||
NULL, /* pSetROP2 */
|
||||
NULL, /* pSetRelAbs */
|
||||
NULL, /* pSetStretchBltMode */
|
||||
NULL, /* pSetTextAlign */
|
||||
NULL, /* pSetTextCharacterExtra */
|
||||
NULL, /* pSetTextColor */
|
||||
NULL, /* pSetTextJustification */
|
||||
NULL, /* pSetViewportExt */
|
||||
NULL, /* pSetViewportOrg */
|
||||
NULL, /* pSetWindowExt */
|
||||
NULL, /* pSetWindowOrg */
|
||||
NULL, /* pSetWorldTransform */
|
||||
NULL, /* pStartDoc */
|
||||
NULL, /* pStartPage */
|
||||
NULL, /* pStretchBlt */
|
||||
NULL, /* pStretchDIBits */
|
||||
NULL, /* pStrokeAndFillPath */
|
||||
NULL, /* pStrokePath */
|
||||
NULL, /* pUnrealizePalette */
|
||||
NULL, /* pWidenPath */
|
||||
NULL, /* wine_get_wgl_driver */
|
||||
GDI_PRIORITY_GRAPHICS_DRV /* priority */
|
||||
};
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
* ANDROID_get_gdi_driver
|
||||
*/
|
||||
const struct gdi_dc_funcs * CDECL ANDROID_get_gdi_driver( unsigned int version )
|
||||
{
|
||||
if (version != WINE_GDI_DRIVER_VERSION)
|
||||
{
|
||||
ERR( "version mismatch, gdi32 wants %u but wineandroid has %u\n", version, WINE_GDI_DRIVER_VERSION );
|
||||
return NULL;
|
||||
}
|
||||
return &android_drv_funcs;
|
||||
}
|
@ -1 +1,3 @@
|
||||
# Nothing here yet
|
||||
# GDI driver
|
||||
|
||||
@ cdecl wine_get_gdi_driver(long) ANDROID_get_gdi_driver
|
||||
|
Loading…
Reference in New Issue
Block a user