Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
6ec42c0c
Commit
6ec42c0c
authored
Jan 15, 2004
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Moved a bunch of definitions from gdi.h into a new gdi_private.h to
make sure we don't use them outside of gdi32.
parent
d03300ec
Hide whitespace changes
Inline
Side-by-side
Showing
42 changed files
with
372 additions
and
384 deletions
+372
-384
driver.c
dlls/gdi/driver.c
+1
-0
init.c
dlls/gdi/enhmfdrv/init.c
+1
-0
objects.c
dlls/gdi/enhmfdrv/objects.c
+1
-0
freetype.c
dlls/gdi/freetype.c
+3
-3
gdi16.c
dlls/gdi/gdi16.c
+1
-0
gdi_main.c
dlls/gdi/gdi_main.c
+1
-1
gdi_private.h
dlls/gdi/gdi_private.h
+292
-0
init.c
dlls/gdi/mfdrv/init.c
+1
-0
mapping.c
dlls/gdi/mfdrv/mapping.c
+1
-0
objects.c
dlls/gdi/mfdrv/objects.c
+1
-0
printdrv.c
dlls/gdi/printdrv.c
+1
-0
wing.c
dlls/gdi/wing.c
+0
-1
bitblt.c
dlls/x11drv/bitblt.c
+0
-1
bitmap.c
dlls/x11drv/bitmap.c
+1
-1
graphics.c
dlls/x11drv/graphics.c
+0
-2
init.c
dlls/x11drv/init.c
+1
-2
text.c
dlls/x11drv/text.c
+0
-1
xrender.c
dlls/x11drv/xrender.c
+0
-1
bitblt.c
graphics/bitblt.c
+1
-0
escape.c
graphics/escape.c
+1
-0
mapping.c
graphics/mapping.c
+1
-0
painting.c
graphics/painting.c
+1
-0
path.c
graphics/path.c
+1
-0
gdi.h
include/gdi.h
+5
-365
wingdi16.h
include/wine/wingdi16.h
+7
-0
bitmap.c
objects/bitmap.c
+2
-1
brush.c
objects/brush.c
+1
-0
clipping.c
objects/clipping.c
+3
-1
dc.c
objects/dc.c
+1
-0
dcvalues.c
objects/dcvalues.c
+1
-0
dib.c
objects/dib.c
+1
-0
enhmetafile.c
objects/enhmetafile.c
+1
-0
font.c
objects/font.c
+30
-0
gdiobj.c
objects/gdiobj.c
+3
-0
metafile.c
objects/metafile.c
+1
-0
palette.c
objects/palette.c
+1
-0
pen.c
objects/pen.c
+1
-0
region.c
objects/region.c
+1
-0
text.c
objects/text.c
+2
-1
dce.c
windows/dce.c
+0
-1
nonclient.c
windows/nonclient.c
+0
-1
painting.c
windows/painting.c
+0
-1
No files found.
dlls/gdi/driver.c
View file @
6ec42c0c
...
...
@@ -28,6 +28,7 @@
#include "winreg.h"
#include "gdi.h"
#include "gdi_private.h"
#include "wine/unicode.h"
#include "wine/debug.h"
...
...
dlls/gdi/enhmfdrv/init.c
View file @
6ec42c0c
...
...
@@ -25,6 +25,7 @@
#include "winbase.h"
#include "wingdi.h"
#include "gdi.h"
#include "gdi_private.h"
#include "enhmfdrv/enhmetafiledrv.h"
#include "wine/debug.h"
...
...
dlls/gdi/enhmfdrv/objects.c
View file @
6ec42c0c
...
...
@@ -24,6 +24,7 @@
#include "bitmap.h"
#include "enhmfdrv/enhmetafiledrv.h"
#include "gdi_private.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
enhmetafile
);
...
...
dlls/gdi/freetype.c
View file @
6ec42c0c
...
...
@@ -20,8 +20,8 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "config.h"
#include "wine/port.h"
#include <stdarg.h>
#include <stdlib.h>
...
...
@@ -36,10 +36,10 @@
#include "winerror.h"
#include "winreg.h"
#include "wingdi.h"
#include "gdi.h"
#include "gdi_private.h"
#include "wine/unicode.h"
#include "wine/port.h"
#include "wine/debug.h"
#include "gdi.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
font
);
...
...
dlls/gdi/gdi16.c
View file @
6ec42c0c
...
...
@@ -26,6 +26,7 @@
#include "wownt32.h"
#include "wine/wingdi16.h"
#include "gdi.h"
#include "gdi_private.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
gdi
);
...
...
dlls/gdi/gdi_main.c
View file @
6ec42c0c
...
...
@@ -24,8 +24,8 @@
#include "winbase.h"
#include "wingdi.h"
#include "wine/winbase16.h"
#include "gdi.h"
#include "gdi_private.h"
/***********************************************************************
* GDI initialisation routine
...
...
dlls/gdi/gdi_private.h
0 → 100644
View file @
6ec42c0c
/*
* GDI definitions
*
* Copyright 1993 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __WINE_GDI_PRIVATE_H
#define __WINE_GDI_PRIVATE_H
/* Metafile defines */
#define META_EOF 0x0000
/* values of mtType in METAHEADER. Note however that the disk image of a disk
based metafile has mtType == 1 */
#define METAFILE_MEMORY 1
#define METAFILE_DISK 2
struct
gdi_obj_funcs
{
HGDIOBJ
(
*
pSelectObject
)(
HGDIOBJ
handle
,
void
*
obj
,
HDC
hdc
);
INT
(
*
pGetObject16
)(
HGDIOBJ
handle
,
void
*
obj
,
INT
count
,
LPVOID
buffer
);
INT
(
*
pGetObjectA
)(
HGDIOBJ
handle
,
void
*
obj
,
INT
count
,
LPVOID
buffer
);
INT
(
*
pGetObjectW
)(
HGDIOBJ
handle
,
void
*
obj
,
INT
count
,
LPVOID
buffer
);
BOOL
(
*
pUnrealizeObject
)(
HGDIOBJ
handle
,
void
*
obj
);
BOOL
(
*
pDeleteObject
)(
HGDIOBJ
handle
,
void
*
obj
);
};
struct
hdc_list
{
HDC
hdc
;
struct
hdc_list
*
next
;
};
/* Device functions for the Wine driver interface */
typedef
struct
tagDC_FUNCS
{
INT
(
*
pAbortDoc
)(
PHYSDEV
);
BOOL
(
*
pAbortPath
)(
PHYSDEV
);
BOOL
(
*
pAngleArc
)(
PHYSDEV
,
INT
,
INT
,
DWORD
,
FLOAT
,
FLOAT
);
BOOL
(
*
pArc
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
);
BOOL
(
*
pArcTo
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
);
BOOL
(
*
pBeginPath
)(
PHYSDEV
);
BOOL
(
*
pBitBlt
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
,
PHYSDEV
,
INT
,
INT
,
DWORD
);
INT
(
*
pChoosePixelFormat
)(
PHYSDEV
,
const
PIXELFORMATDESCRIPTOR
*
);
BOOL
(
*
pChord
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
);
BOOL
(
*
pCloseFigure
)(
PHYSDEV
);
BOOL
(
*
pCreateBitmap
)(
PHYSDEV
,
HBITMAP
);
BOOL
(
*
pCreateDC
)(
DC
*
,
PHYSDEV
*
,
LPCWSTR
,
LPCWSTR
,
LPCWSTR
,
const
DEVMODEW
*
);
HBITMAP
(
*
pCreateDIBSection
)(
PHYSDEV
,
BITMAPINFO
*
,
UINT
,
LPVOID
*
,
HANDLE
,
DWORD
,
DWORD
);
BOOL
(
*
pDeleteBitmap
)(
HBITMAP
);
BOOL
(
*
pDeleteDC
)(
PHYSDEV
);
BOOL
(
*
pDeleteObject
)(
PHYSDEV
,
HGDIOBJ
);
INT
(
*
pDescribePixelFormat
)(
PHYSDEV
,
INT
,
UINT
,
PIXELFORMATDESCRIPTOR
*
);
DWORD
(
*
pDeviceCapabilities
)(
LPSTR
,
LPCSTR
,
LPCSTR
,
WORD
,
LPSTR
,
LPDEVMODEA
);
BOOL
(
*
pEllipse
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
);
INT
(
*
pEndDoc
)(
PHYSDEV
);
INT
(
*
pEndPage
)(
PHYSDEV
);
BOOL
(
*
pEndPath
)(
PHYSDEV
);
BOOL
(
*
pEnumDeviceFonts
)(
PHYSDEV
,
LPLOGFONTW
,
DEVICEFONTENUMPROC
,
LPARAM
);
INT
(
*
pExcludeClipRect
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
);
INT
(
*
pExtDeviceMode
)(
LPSTR
,
HWND
,
LPDEVMODEA
,
LPSTR
,
LPSTR
,
LPDEVMODEA
,
LPSTR
,
DWORD
);
INT
(
*
pExtEscape
)(
PHYSDEV
,
INT
,
INT
,
LPCVOID
,
INT
,
LPVOID
);
BOOL
(
*
pExtFloodFill
)(
PHYSDEV
,
INT
,
INT
,
COLORREF
,
UINT
);
INT
(
*
pExtSelectClipRgn
)(
PHYSDEV
,
HRGN
,
INT
);
BOOL
(
*
pExtTextOut
)(
PHYSDEV
,
INT
,
INT
,
UINT
,
const
RECT
*
,
LPCWSTR
,
UINT
,
const
INT
*
);
BOOL
(
*
pFillPath
)(
PHYSDEV
);
BOOL
(
*
pFillRgn
)(
PHYSDEV
,
HRGN
,
HBRUSH
);
BOOL
(
*
pFlattenPath
)(
PHYSDEV
);
BOOL
(
*
pFrameRgn
)(
PHYSDEV
,
HRGN
,
HBRUSH
,
INT
,
INT
);
BOOL
(
*
pGdiComment
)(
PHYSDEV
,
UINT
,
CONST
BYTE
*
);
LONG
(
*
pGetBitmapBits
)(
HBITMAP
,
void
*
,
LONG
);
BOOL
(
*
pGetCharWidth
)(
PHYSDEV
,
UINT
,
UINT
,
LPINT
);
BOOL
(
*
pGetDCOrgEx
)(
PHYSDEV
,
LPPOINT
);
UINT
(
*
pGetDIBColorTable
)(
PHYSDEV
,
UINT
,
UINT
,
RGBQUAD
*
);
INT
(
*
pGetDIBits
)(
PHYSDEV
,
HBITMAP
,
UINT
,
UINT
,
LPVOID
,
BITMAPINFO
*
,
UINT
);
INT
(
*
pGetDeviceCaps
)(
PHYSDEV
,
INT
);
BOOL
(
*
pGetDeviceGammaRamp
)(
PHYSDEV
,
LPVOID
);
COLORREF
(
*
pGetNearestColor
)(
PHYSDEV
,
COLORREF
);
COLORREF
(
*
pGetPixel
)(
PHYSDEV
,
INT
,
INT
);
INT
(
*
pGetPixelFormat
)(
PHYSDEV
);
UINT
(
*
pGetSystemPaletteEntries
)(
PHYSDEV
,
UINT
,
UINT
,
LPPALETTEENTRY
);
BOOL
(
*
pGetTextExtentPoint
)(
PHYSDEV
,
LPCWSTR
,
INT
,
LPSIZE
);
BOOL
(
*
pGetTextMetrics
)(
PHYSDEV
,
TEXTMETRICW
*
);
INT
(
*
pIntersectClipRect
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
);
BOOL
(
*
pInvertRgn
)(
PHYSDEV
,
HRGN
);
BOOL
(
*
pLineTo
)(
PHYSDEV
,
INT
,
INT
);
BOOL
(
*
pModifyWorldTransform
)(
PHYSDEV
,
const
XFORM
*
,
INT
);
BOOL
(
*
pMoveTo
)(
PHYSDEV
,
INT
,
INT
);
INT
(
*
pOffsetClipRgn
)(
PHYSDEV
,
INT
,
INT
);
INT
(
*
pOffsetViewportOrg
)(
PHYSDEV
,
INT
,
INT
);
INT
(
*
pOffsetWindowOrg
)(
PHYSDEV
,
INT
,
INT
);
BOOL
(
*
pPaintRgn
)(
PHYSDEV
,
HRGN
);
BOOL
(
*
pPatBlt
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
,
DWORD
);
BOOL
(
*
pPie
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
);
BOOL
(
*
pPolyBezier
)(
PHYSDEV
,
const
POINT
*
,
DWORD
);
BOOL
(
*
pPolyBezierTo
)(
PHYSDEV
,
const
POINT
*
,
DWORD
);
BOOL
(
*
pPolyDraw
)(
PHYSDEV
,
const
POINT
*
,
const
BYTE
*
,
DWORD
);
BOOL
(
*
pPolyPolygon
)(
PHYSDEV
,
const
POINT
*
,
const
INT
*
,
UINT
);
BOOL
(
*
pPolyPolyline
)(
PHYSDEV
,
const
POINT
*
,
const
DWORD
*
,
DWORD
);
BOOL
(
*
pPolygon
)(
PHYSDEV
,
const
POINT
*
,
INT
);
BOOL
(
*
pPolyline
)(
PHYSDEV
,
const
POINT
*
,
INT
);
BOOL
(
*
pPolylineTo
)(
PHYSDEV
,
const
POINT
*
,
INT
);
UINT
(
*
pRealizeDefaultPalette
)(
PHYSDEV
);
UINT
(
*
pRealizePalette
)(
PHYSDEV
,
HPALETTE
,
BOOL
);
BOOL
(
*
pRectangle
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
);
HDC
(
*
pResetDC
)(
PHYSDEV
,
const
DEVMODEW
*
);
BOOL
(
*
pRestoreDC
)(
PHYSDEV
,
INT
);
BOOL
(
*
pRoundRect
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
);
INT
(
*
pSaveDC
)(
PHYSDEV
);
INT
(
*
pScaleViewportExt
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
);
INT
(
*
pScaleWindowExt
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
);
HBITMAP
(
*
pSelectBitmap
)(
PHYSDEV
,
HBITMAP
);
HBRUSH
(
*
pSelectBrush
)(
PHYSDEV
,
HBRUSH
);
BOOL
(
*
pSelectClipPath
)(
PHYSDEV
,
INT
);
HFONT
(
*
pSelectFont
)(
PHYSDEV
,
HFONT
);
HPALETTE
(
*
pSelectPalette
)(
PHYSDEV
,
HPALETTE
,
BOOL
);
HPEN
(
*
pSelectPen
)(
PHYSDEV
,
HPEN
);
INT
(
*
pSetArcDirection
)(
PHYSDEV
,
INT
);
LONG
(
*
pSetBitmapBits
)(
HBITMAP
,
const
void
*
,
LONG
);
COLORREF
(
*
pSetBkColor
)(
PHYSDEV
,
COLORREF
);
INT
(
*
pSetBkMode
)(
PHYSDEV
,
INT
);
COLORREF
(
*
pSetDCBrushColor
)(
PHYSDEV
,
COLORREF
);
DWORD
(
*
pSetDCOrg
)(
PHYSDEV
,
INT
,
INT
);
COLORREF
(
*
pSetDCPenColor
)(
PHYSDEV
,
COLORREF
);
UINT
(
*
pSetDIBColorTable
)(
PHYSDEV
,
UINT
,
UINT
,
const
RGBQUAD
*
);
INT
(
*
pSetDIBits
)(
PHYSDEV
,
HBITMAP
,
UINT
,
UINT
,
LPCVOID
,
const
BITMAPINFO
*
,
UINT
);
INT
(
*
pSetDIBitsToDevice
)(
PHYSDEV
,
INT
,
INT
,
DWORD
,
DWORD
,
INT
,
INT
,
UINT
,
UINT
,
LPCVOID
,
const
BITMAPINFO
*
,
UINT
);
VOID
(
*
pSetDeviceClipping
)(
PHYSDEV
,
HRGN
);
BOOL
(
*
pSetDeviceGammaRamp
)(
PHYSDEV
,
LPVOID
);
INT
(
*
pSetMapMode
)(
PHYSDEV
,
INT
);
DWORD
(
*
pSetMapperFlags
)(
PHYSDEV
,
DWORD
);
COLORREF
(
*
pSetPixel
)(
PHYSDEV
,
INT
,
INT
,
COLORREF
);
BOOL
(
*
pSetPixelFormat
)(
PHYSDEV
,
INT
,
const
PIXELFORMATDESCRIPTOR
*
);
INT
(
*
pSetPolyFillMode
)(
PHYSDEV
,
INT
);
INT
(
*
pSetROP2
)(
PHYSDEV
,
INT
);
INT
(
*
pSetRelAbs
)(
PHYSDEV
,
INT
);
INT
(
*
pSetStretchBltMode
)(
PHYSDEV
,
INT
);
UINT
(
*
pSetTextAlign
)(
PHYSDEV
,
UINT
);
INT
(
*
pSetTextCharacterExtra
)(
PHYSDEV
,
INT
);
DWORD
(
*
pSetTextColor
)(
PHYSDEV
,
DWORD
);
INT
(
*
pSetTextJustification
)(
PHYSDEV
,
INT
,
INT
);
INT
(
*
pSetViewportExt
)(
PHYSDEV
,
INT
,
INT
);
INT
(
*
pSetViewportOrg
)(
PHYSDEV
,
INT
,
INT
);
INT
(
*
pSetWindowExt
)(
PHYSDEV
,
INT
,
INT
);
INT
(
*
pSetWindowOrg
)(
PHYSDEV
,
INT
,
INT
);
BOOL
(
*
pSetWorldTransform
)(
PHYSDEV
,
const
XFORM
*
);
INT
(
*
pStartDoc
)(
PHYSDEV
,
const
DOCINFOA
*
);
INT
(
*
pStartPage
)(
PHYSDEV
);
BOOL
(
*
pStretchBlt
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
,
PHYSDEV
,
INT
,
INT
,
INT
,
INT
,
DWORD
);
INT
(
*
pStretchDIBits
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
,
const
void
*
,
const
BITMAPINFO
*
,
UINT
,
DWORD
);
BOOL
(
*
pStrokeAndFillPath
)(
PHYSDEV
);
BOOL
(
*
pStrokePath
)(
PHYSDEV
);
BOOL
(
*
pSwapBuffers
)(
PHYSDEV
);
BOOL
(
*
pWidenPath
)(
PHYSDEV
);
}
DC_FUNCTIONS
;
/* DC flags */
#define DC_SAVED 0x0002
/* It is a saved DC */
#define DC_DIRTY 0x0004
/* hVisRgn has to be updated */
/* Certain functions will do no further processing if the driver returns this.
Used by mfdrv for example. */
#define GDI_NO_MORE_WORK 2
/* bidi.c */
/* Wine_GCPW Flags */
/* Directionality -
* LOOSE means that the paragraph dir is only set if there is no strong character.
* FORCE means override the characters in the paragraph.
*/
#define WINE_GCPW_FORCE_LTR 0
#define WINE_GCPW_FORCE_RTL 1
#define WINE_GCPW_LOOSE_LTR 2
#define WINE_GCPW_LOOSE_RTL 3
#define WINE_GCPW_DIR_MASK 3
extern
BOOL
BIDI_Reorder
(
LPCWSTR
lpString
,
INT
uCount
,
DWORD
dwFlags
,
DWORD
dwWineGCP_Flags
,
LPWSTR
lpOutString
,
INT
uCountOut
,
UINT
*
lpOrder
);
extern
BOOL
BidiAvail
;
/* clipping.c */
extern
void
CLIPPING_UpdateGCRegion
(
DC
*
dc
);
/* dc.c */
extern
DC
*
DC_AllocDC
(
const
DC_FUNCTIONS
*
funcs
,
WORD
magic
);
extern
DC
*
DC_GetDCUpdate
(
HDC
hdc
);
extern
DC
*
DC_GetDCPtr
(
HDC
hdc
);
extern
void
DC_InitDC
(
DC
*
dc
);
extern
void
DC_UpdateXforms
(
DC
*
dc
);
/* driver.c */
extern
const
DC_FUNCTIONS
*
DRIVER_load_driver
(
LPCWSTR
name
);
extern
const
DC_FUNCTIONS
*
DRIVER_get_driver
(
const
DC_FUNCTIONS
*
funcs
);
extern
void
DRIVER_release_driver
(
const
DC_FUNCTIONS
*
funcs
);
extern
BOOL
DRIVER_GetDriverName
(
LPCWSTR
device
,
LPWSTR
driver
,
DWORD
size
);
/* enhmetafile.c */
extern
HENHMETAFILE
EMF_Create_HENHMETAFILE
(
ENHMETAHEADER
*
emh
,
BOOL
on_disk
);
/* freetype.c */
extern
INT
WineEngAddFontResourceEx
(
LPCWSTR
,
DWORD
,
PVOID
);
extern
GdiFont
WineEngCreateFontInstance
(
DC
*
,
HFONT
);
extern
BOOL
WineEngDestroyFontInstance
(
HFONT
handle
);
extern
DWORD
WineEngEnumFonts
(
LPLOGFONTW
,
DEVICEFONTENUMPROC
,
LPARAM
);
extern
BOOL
WineEngGetCharWidth
(
GdiFont
,
UINT
,
UINT
,
LPINT
);
extern
DWORD
WineEngGetFontData
(
GdiFont
,
DWORD
,
DWORD
,
LPVOID
,
DWORD
);
extern
DWORD
WineEngGetGlyphIndices
(
GdiFont
font
,
LPCWSTR
lpstr
,
INT
count
,
LPWORD
pgi
,
DWORD
flags
);
extern
DWORD
WineEngGetGlyphOutline
(
GdiFont
,
UINT
glyph
,
UINT
format
,
LPGLYPHMETRICS
,
DWORD
buflen
,
LPVOID
buf
,
const
MAT2
*
);
extern
UINT
WineEngGetOutlineTextMetrics
(
GdiFont
,
UINT
,
LPOUTLINETEXTMETRICW
);
extern
UINT
WineEngGetTextCharsetInfo
(
GdiFont
font
,
LPFONTSIGNATURE
fs
,
DWORD
flags
);
extern
BOOL
WineEngGetTextExtentPoint
(
GdiFont
,
LPCWSTR
,
INT
,
LPSIZE
);
extern
BOOL
WineEngGetTextExtentPointI
(
GdiFont
,
const
WORD
*
,
INT
,
LPSIZE
);
extern
INT
WineEngGetTextFace
(
GdiFont
,
INT
,
LPWSTR
);
extern
BOOL
WineEngGetTextMetrics
(
GdiFont
,
LPTEXTMETRICW
);
extern
BOOL
WineEngInit
(
void
);
extern
BOOL
WineEngRemoveFontResourceEx
(
LPCWSTR
,
DWORD
,
PVOID
);
/* gdiobj.c */
extern
BOOL
GDI_Init
(
void
);
extern
void
*
GDI_AllocObject
(
WORD
,
WORD
,
HGDIOBJ
*
,
const
struct
gdi_obj_funcs
*
funcs
);
extern
void
*
GDI_ReallocObject
(
WORD
,
HGDIOBJ
,
void
*
obj
);
extern
BOOL
GDI_FreeObject
(
HGDIOBJ
,
void
*
obj
);
extern
void
GDI_CheckNotLock
(
void
);
extern
BOOL
GDI_hdc_using_object
(
HGDIOBJ
obj
,
HDC
hdc
);
extern
BOOL
GDI_hdc_not_using_object
(
HGDIOBJ
obj
,
HDC
hdc
);
/* metafile.c */
extern
HMETAFILE
MF_Create_HMETAFILE
(
METAHEADER
*
mh
);
extern
HMETAFILE16
MF_Create_HMETAFILE16
(
METAHEADER
*
mh
);
extern
METAHEADER
*
MF_CreateMetaHeaderDisk
(
METAHEADER
*
mr
,
LPCSTR
filename
);
/* path.c */
#define PATH_IsPathOpen(path) ((path).state==PATH_Open)
/* Returns TRUE if the specified path is in the open state, i.e. in the
* state where points will be added to the path, or FALSE otherwise. This
* function is implemented as a macro for performance reasons.
*/
extern
void
PATH_InitGdiPath
(
GdiPath
*
pPath
);
extern
void
PATH_DestroyGdiPath
(
GdiPath
*
pPath
);
extern
BOOL
PATH_AssignGdiPath
(
GdiPath
*
pPathDest
,
const
GdiPath
*
pPathSrc
);
extern
BOOL
PATH_MoveTo
(
DC
*
dc
);
extern
BOOL
PATH_LineTo
(
DC
*
dc
,
INT
x
,
INT
y
);
extern
BOOL
PATH_Rectangle
(
DC
*
dc
,
INT
x1
,
INT
y1
,
INT
x2
,
INT
y2
);
extern
BOOL
PATH_Ellipse
(
DC
*
dc
,
INT
x1
,
INT
y1
,
INT
x2
,
INT
y2
);
extern
BOOL
PATH_Arc
(
DC
*
dc
,
INT
x1
,
INT
y1
,
INT
x2
,
INT
y2
,
INT
xStart
,
INT
yStart
,
INT
xEnd
,
INT
yEnd
,
INT
lines
);
extern
BOOL
PATH_PolyBezierTo
(
DC
*
dc
,
const
POINT
*
pt
,
DWORD
cbCount
);
extern
BOOL
PATH_PolyBezier
(
DC
*
dc
,
const
POINT
*
pt
,
DWORD
cbCount
);
extern
BOOL
PATH_PolylineTo
(
DC
*
dc
,
const
POINT
*
pt
,
DWORD
cbCount
);
extern
BOOL
PATH_Polyline
(
DC
*
dc
,
const
POINT
*
pt
,
DWORD
cbCount
);
extern
BOOL
PATH_Polygon
(
DC
*
dc
,
const
POINT
*
pt
,
DWORD
cbCount
);
extern
BOOL
PATH_PolyPolyline
(
DC
*
dc
,
const
POINT
*
pt
,
const
DWORD
*
counts
,
DWORD
polylines
);
extern
BOOL
PATH_PolyPolygon
(
DC
*
dc
,
const
POINT
*
pt
,
const
INT
*
counts
,
UINT
polygons
);
extern
BOOL
PATH_RoundRect
(
DC
*
dc
,
INT
x1
,
INT
y1
,
INT
x2
,
INT
y2
,
INT
ell_width
,
INT
ell_height
);
extern
BOOL
PATH_AddEntry
(
GdiPath
*
pPath
,
const
POINT
*
pPoint
,
BYTE
flags
);
/* painting.c */
extern
POINT
*
GDI_Bezier
(
const
POINT
*
Points
,
INT
count
,
INT
*
nPtsOut
);
/* palette.c */
extern
HPALETTE
WINAPI
GDISelectPalette
(
HDC
hdc
,
HPALETTE
hpal
,
WORD
wBkg
);
extern
UINT
WINAPI
GDIRealizePalette
(
HDC
hdc
);
/* region.c */
extern
BOOL
REGION_FrameRgn
(
HRGN
dest
,
HRGN
src
,
INT
x
,
INT
y
);
/* text.c */
extern
LPWSTR
FONT_mbtowc
(
HDC
,
LPCSTR
,
INT
,
INT
*
,
UINT
*
);
#endif
/* __WINE_GDI_PRIVATE_H */
dlls/gdi/mfdrv/init.c
View file @
6ec42c0c
...
...
@@ -26,6 +26,7 @@
#include "wine/winbase16.h"
#include "gdi.h"
#include "wownt32.h"
#include "gdi_private.h"
#include "mfdrv/metafiledrv.h"
#include "wine/debug.h"
...
...
dlls/gdi/mfdrv/mapping.c
View file @
6ec42c0c
...
...
@@ -19,6 +19,7 @@
*/
#include "gdi.h"
#include "gdi_private.h"
#include "mfdrv/metafiledrv.h"
...
...
dlls/gdi/mfdrv/objects.c
View file @
6ec42c0c
...
...
@@ -25,6 +25,7 @@
#include "bitmap.h"
#include "wownt32.h"
#include "mfdrv/metafiledrv.h"
#include "gdi_private.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
metafile
);
...
...
dlls/gdi/printdrv.c
View file @
6ec42c0c
...
...
@@ -49,6 +49,7 @@
#include "wownt32.h"
#include "wine/debug.h"
#include "gdi.h"
#include "gdi_private.h"
#include "heap.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
print
);
...
...
dlls/gdi/wing.c
View file @
6ec42c0c
...
...
@@ -23,7 +23,6 @@
#include "wine/winuser16.h"
#include "bitmap.h"
#include "wine/debug.h"
#include "palette.h"
#include "windef.h"
#include "wownt32.h"
...
...
dlls/x11drv/bitblt.c
View file @
6ec42c0c
...
...
@@ -31,7 +31,6 @@
#include "wingdi.h"
#include "winreg.h"
#include "winuser.h"
#include "bitmap.h"
#include "gdi.h"
#include "x11drv.h"
#include "wine/debug.h"
...
...
dlls/x11drv/bitmap.c
View file @
6ec42c0c
...
...
@@ -37,7 +37,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(x11drv);
GC
BITMAP_monoGC
=
0
,
BITMAP_colorGC
=
0
;
Pixmap
BITMAP_stock_pixmap
;
/* pixmap for the default stock bitmap */
extern
const
DC_FUNCTION
S
*
X11DRV_DC_Funcs
;
/* hack */
extern
const
struct
tagDC_FUNC
S
*
X11DRV_DC_Funcs
;
/* hack */
/***********************************************************************
* X11DRV_BITMAP_Init
...
...
dlls/x11drv/graphics.c
View file @
6ec42c0c
...
...
@@ -38,9 +38,7 @@
#include "x11drv.h"
#include "x11font.h"
#include "bitmap.h"
#include "gdi.h"
#include "palette.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
graphics
);
...
...
dlls/x11drv/init.c
View file @
6ec42c0c
...
...
@@ -25,7 +25,6 @@
#include "windef.h"
#include "winbase.h"
#include "bitmap.h"
#include "x11drv.h"
#include "x11font.h"
#include "ddrawi.h"
...
...
@@ -33,7 +32,7 @@
WINE_DEFAULT_DEBUG_CHANNEL
(
x11drv
);
const
DC_FUNCTION
S
*
X11DRV_DC_Funcs
=
NULL
;
/* hack */
const
struct
tagDC_FUNC
S
*
X11DRV_DC_Funcs
=
NULL
;
/* hack */
Display
*
gdi_display
;
/* display to use for all GDI functions */
...
...
dlls/x11drv/text.c
View file @
6ec42c0c
...
...
@@ -30,7 +30,6 @@
#include "wownt32.h"
#include "gdi.h"
#include "x11font.h"
#include "bitmap.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
text
);
...
...
dlls/x11drv/xrender.c
View file @
6ec42c0c
...
...
@@ -32,7 +32,6 @@
#include "winbase.h"
#include "wownt32.h"
#include "x11drv.h"
#include "bitmap.h"
#include "wine/unicode.h"
#include "wine/debug.h"
...
...
graphics/bitblt.c
View file @
6ec42c0c
...
...
@@ -19,6 +19,7 @@
*/
#include "gdi.h"
#include "gdi_private.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
bitblt
);
...
...
graphics/escape.c
View file @
6ec42c0c
...
...
@@ -25,6 +25,7 @@
#include "winbase.h"
#include "wingdi.h"
#include "gdi.h"
#include "gdi_private.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
driver
);
...
...
graphics/mapping.c
View file @
6ec42c0c
...
...
@@ -20,6 +20,7 @@
#include "gdi.h"
#include "wownt32.h"
#include "gdi_private.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
gdi
);
...
...
graphics/painting.c
View file @
6ec42c0c
...
...
@@ -33,6 +33,7 @@
#include "winerror.h"
#include "gdi.h"
#include "bitmap.h"
#include "gdi_private.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
gdi
);
...
...
graphics/path.c
View file @
6ec42c0c
...
...
@@ -36,6 +36,7 @@
#include "winerror.h"
#include "gdi.h"
#include "gdi_private.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
gdi
);
...
...
include/gdi.h
View file @
6ec42c0c
...
...
@@ -54,21 +54,8 @@
#define GDIMAGIC(magic) ((magic) & ~(OBJECT_PRIVATE|OBJECT_NOSYSTEM))
struct
gdi_obj_funcs
{
HGDIOBJ
(
*
pSelectObject
)(
HGDIOBJ
handle
,
void
*
obj
,
HDC
hdc
);
INT
(
*
pGetObject16
)(
HGDIOBJ
handle
,
void
*
obj
,
INT
count
,
LPVOID
buffer
);
INT
(
*
pGetObjectA
)(
HGDIOBJ
handle
,
void
*
obj
,
INT
count
,
LPVOID
buffer
);
INT
(
*
pGetObjectW
)(
HGDIOBJ
handle
,
void
*
obj
,
INT
count
,
LPVOID
buffer
);
BOOL
(
*
pUnrealizeObject
)(
HGDIOBJ
handle
,
void
*
obj
);
BOOL
(
*
pDeleteObject
)(
HGDIOBJ
handle
,
void
*
obj
);
};
struct
hdc_list
{
HDC
hdc
;
struct
hdc_list
*
next
;
};
struct
gdi_obj_funcs
;
struct
hdc_list
;
typedef
struct
tagGDIOBJHDR
{
...
...
@@ -174,164 +161,11 @@ typedef struct tagDC
BOOL
vport2WorldValid
;
/* Is xformVport2World valid? */
}
DC
;
/* Device functions for the Wine driver interface */
typedef
INT
(
*
DEVICEFONTENUMPROC
)(
LPENUMLOGFONTEXW
,
NEWTEXTMETRICEXW
*
,
DWORD
,
LPARAM
);
typedef
struct
tagDC_FUNCS
{
INT
(
*
pAbortDoc
)(
PHYSDEV
);
BOOL
(
*
pAbortPath
)(
PHYSDEV
);
BOOL
(
*
pAngleArc
)(
PHYSDEV
,
INT
,
INT
,
DWORD
,
FLOAT
,
FLOAT
);
BOOL
(
*
pArc
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
);
BOOL
(
*
pArcTo
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
);
BOOL
(
*
pBeginPath
)(
PHYSDEV
);
BOOL
(
*
pBitBlt
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
,
PHYSDEV
,
INT
,
INT
,
DWORD
);
INT
(
*
pChoosePixelFormat
)(
PHYSDEV
,
const
PIXELFORMATDESCRIPTOR
*
);
BOOL
(
*
pChord
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
);
BOOL
(
*
pCloseFigure
)(
PHYSDEV
);
BOOL
(
*
pCreateBitmap
)(
PHYSDEV
,
HBITMAP
);
BOOL
(
*
pCreateDC
)(
DC
*
,
PHYSDEV
*
,
LPCWSTR
,
LPCWSTR
,
LPCWSTR
,
const
DEVMODEW
*
);
HBITMAP
(
*
pCreateDIBSection
)(
PHYSDEV
,
BITMAPINFO
*
,
UINT
,
LPVOID
*
,
HANDLE
,
DWORD
,
DWORD
);
BOOL
(
*
pDeleteBitmap
)(
HBITMAP
);
BOOL
(
*
pDeleteDC
)(
PHYSDEV
);
BOOL
(
*
pDeleteObject
)(
PHYSDEV
,
HGDIOBJ
);
INT
(
*
pDescribePixelFormat
)(
PHYSDEV
,
INT
,
UINT
,
PIXELFORMATDESCRIPTOR
*
);
DWORD
(
*
pDeviceCapabilities
)(
LPSTR
,
LPCSTR
,
LPCSTR
,
WORD
,
LPSTR
,
LPDEVMODEA
);
BOOL
(
*
pEllipse
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
);
INT
(
*
pEndDoc
)(
PHYSDEV
);
INT
(
*
pEndPage
)(
PHYSDEV
);
BOOL
(
*
pEndPath
)(
PHYSDEV
);
BOOL
(
*
pEnumDeviceFonts
)(
PHYSDEV
,
LPLOGFONTW
,
DEVICEFONTENUMPROC
,
LPARAM
);
INT
(
*
pExcludeClipRect
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
);
INT
(
*
pExtDeviceMode
)(
LPSTR
,
HWND
,
LPDEVMODEA
,
LPSTR
,
LPSTR
,
LPDEVMODEA
,
LPSTR
,
DWORD
);
INT
(
*
pExtEscape
)(
PHYSDEV
,
INT
,
INT
,
LPCVOID
,
INT
,
LPVOID
);
BOOL
(
*
pExtFloodFill
)(
PHYSDEV
,
INT
,
INT
,
COLORREF
,
UINT
);
INT
(
*
pExtSelectClipRgn
)(
PHYSDEV
,
HRGN
,
INT
);
BOOL
(
*
pExtTextOut
)(
PHYSDEV
,
INT
,
INT
,
UINT
,
const
RECT
*
,
LPCWSTR
,
UINT
,
const
INT
*
);
BOOL
(
*
pFillPath
)(
PHYSDEV
);
BOOL
(
*
pFillRgn
)(
PHYSDEV
,
HRGN
,
HBRUSH
);
BOOL
(
*
pFlattenPath
)(
PHYSDEV
);
BOOL
(
*
pFrameRgn
)(
PHYSDEV
,
HRGN
,
HBRUSH
,
INT
,
INT
);
BOOL
(
*
pGdiComment
)(
PHYSDEV
,
UINT
,
CONST
BYTE
*
);
LONG
(
*
pGetBitmapBits
)(
HBITMAP
,
void
*
,
LONG
);
BOOL
(
*
pGetCharWidth
)(
PHYSDEV
,
UINT
,
UINT
,
LPINT
);
BOOL
(
*
pGetDCOrgEx
)(
PHYSDEV
,
LPPOINT
);
UINT
(
*
pGetDIBColorTable
)(
PHYSDEV
,
UINT
,
UINT
,
RGBQUAD
*
);
INT
(
*
pGetDIBits
)(
PHYSDEV
,
HBITMAP
,
UINT
,
UINT
,
LPVOID
,
BITMAPINFO
*
,
UINT
);
INT
(
*
pGetDeviceCaps
)(
PHYSDEV
,
INT
);
BOOL
(
*
pGetDeviceGammaRamp
)(
PHYSDEV
,
LPVOID
);
COLORREF
(
*
pGetNearestColor
)(
PHYSDEV
,
COLORREF
);
COLORREF
(
*
pGetPixel
)(
PHYSDEV
,
INT
,
INT
);
INT
(
*
pGetPixelFormat
)(
PHYSDEV
);
UINT
(
*
pGetSystemPaletteEntries
)(
PHYSDEV
,
UINT
,
UINT
,
LPPALETTEENTRY
);
BOOL
(
*
pGetTextExtentPoint
)(
PHYSDEV
,
LPCWSTR
,
INT
,
LPSIZE
);
BOOL
(
*
pGetTextMetrics
)(
PHYSDEV
,
TEXTMETRICW
*
);
INT
(
*
pIntersectClipRect
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
);
BOOL
(
*
pInvertRgn
)(
PHYSDEV
,
HRGN
);
BOOL
(
*
pLineTo
)(
PHYSDEV
,
INT
,
INT
);
BOOL
(
*
pModifyWorldTransform
)(
PHYSDEV
,
const
XFORM
*
,
INT
);
BOOL
(
*
pMoveTo
)(
PHYSDEV
,
INT
,
INT
);
INT
(
*
pOffsetClipRgn
)(
PHYSDEV
,
INT
,
INT
);
INT
(
*
pOffsetViewportOrg
)(
PHYSDEV
,
INT
,
INT
);
INT
(
*
pOffsetWindowOrg
)(
PHYSDEV
,
INT
,
INT
);
BOOL
(
*
pPaintRgn
)(
PHYSDEV
,
HRGN
);
BOOL
(
*
pPatBlt
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
,
DWORD
);
BOOL
(
*
pPie
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
);
BOOL
(
*
pPolyBezier
)(
PHYSDEV
,
const
POINT
*
,
DWORD
);
BOOL
(
*
pPolyBezierTo
)(
PHYSDEV
,
const
POINT
*
,
DWORD
);
BOOL
(
*
pPolyDraw
)(
PHYSDEV
,
const
POINT
*
,
const
BYTE
*
,
DWORD
);
BOOL
(
*
pPolyPolygon
)(
PHYSDEV
,
const
POINT
*
,
const
INT
*
,
UINT
);
BOOL
(
*
pPolyPolyline
)(
PHYSDEV
,
const
POINT
*
,
const
DWORD
*
,
DWORD
);
BOOL
(
*
pPolygon
)(
PHYSDEV
,
const
POINT
*
,
INT
);
BOOL
(
*
pPolyline
)(
PHYSDEV
,
const
POINT
*
,
INT
);
BOOL
(
*
pPolylineTo
)(
PHYSDEV
,
const
POINT
*
,
INT
);
UINT
(
*
pRealizeDefaultPalette
)(
PHYSDEV
);
UINT
(
*
pRealizePalette
)(
PHYSDEV
,
HPALETTE
,
BOOL
);
BOOL
(
*
pRectangle
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
);
HDC
(
*
pResetDC
)(
PHYSDEV
,
const
DEVMODEW
*
);
BOOL
(
*
pRestoreDC
)(
PHYSDEV
,
INT
);
BOOL
(
*
pRoundRect
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
);
INT
(
*
pSaveDC
)(
PHYSDEV
);
INT
(
*
pScaleViewportExt
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
);
INT
(
*
pScaleWindowExt
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
);
HBITMAP
(
*
pSelectBitmap
)(
PHYSDEV
,
HBITMAP
);
HBRUSH
(
*
pSelectBrush
)(
PHYSDEV
,
HBRUSH
);
BOOL
(
*
pSelectClipPath
)(
PHYSDEV
,
INT
);
HFONT
(
*
pSelectFont
)(
PHYSDEV
,
HFONT
);
HPALETTE
(
*
pSelectPalette
)(
PHYSDEV
,
HPALETTE
,
BOOL
);
HPEN
(
*
pSelectPen
)(
PHYSDEV
,
HPEN
);
INT
(
*
pSetArcDirection
)(
PHYSDEV
,
INT
);
LONG
(
*
pSetBitmapBits
)(
HBITMAP
,
const
void
*
,
LONG
);
COLORREF
(
*
pSetBkColor
)(
PHYSDEV
,
COLORREF
);
INT
(
*
pSetBkMode
)(
PHYSDEV
,
INT
);
COLORREF
(
*
pSetDCBrushColor
)(
PHYSDEV
,
COLORREF
);
DWORD
(
*
pSetDCOrg
)(
PHYSDEV
,
INT
,
INT
);
COLORREF
(
*
pSetDCPenColor
)(
PHYSDEV
,
COLORREF
);
UINT
(
*
pSetDIBColorTable
)(
PHYSDEV
,
UINT
,
UINT
,
const
RGBQUAD
*
);
INT
(
*
pSetDIBits
)(
PHYSDEV
,
HBITMAP
,
UINT
,
UINT
,
LPCVOID
,
const
BITMAPINFO
*
,
UINT
);
INT
(
*
pSetDIBitsToDevice
)(
PHYSDEV
,
INT
,
INT
,
DWORD
,
DWORD
,
INT
,
INT
,
UINT
,
UINT
,
LPCVOID
,
const
BITMAPINFO
*
,
UINT
);
VOID
(
*
pSetDeviceClipping
)(
PHYSDEV
,
HRGN
);
BOOL
(
*
pSetDeviceGammaRamp
)(
PHYSDEV
,
LPVOID
);
INT
(
*
pSetMapMode
)(
PHYSDEV
,
INT
);
DWORD
(
*
pSetMapperFlags
)(
PHYSDEV
,
DWORD
);
COLORREF
(
*
pSetPixel
)(
PHYSDEV
,
INT
,
INT
,
COLORREF
);
BOOL
(
*
pSetPixelFormat
)(
PHYSDEV
,
INT
,
const
PIXELFORMATDESCRIPTOR
*
);
INT
(
*
pSetPolyFillMode
)(
PHYSDEV
,
INT
);
INT
(
*
pSetROP2
)(
PHYSDEV
,
INT
);
INT
(
*
pSetRelAbs
)(
PHYSDEV
,
INT
);
INT
(
*
pSetStretchBltMode
)(
PHYSDEV
,
INT
);
UINT
(
*
pSetTextAlign
)(
PHYSDEV
,
UINT
);
INT
(
*
pSetTextCharacterExtra
)(
PHYSDEV
,
INT
);
DWORD
(
*
pSetTextColor
)(
PHYSDEV
,
DWORD
);
INT
(
*
pSetTextJustification
)(
PHYSDEV
,
INT
,
INT
);
INT
(
*
pSetViewportExt
)(
PHYSDEV
,
INT
,
INT
);
INT
(
*
pSetViewportOrg
)(
PHYSDEV
,
INT
,
INT
);
INT
(
*
pSetWindowExt
)(
PHYSDEV
,
INT
,
INT
);
INT
(
*
pSetWindowOrg
)(
PHYSDEV
,
INT
,
INT
);
BOOL
(
*
pSetWorldTransform
)(
PHYSDEV
,
const
XFORM
*
);
INT
(
*
pStartDoc
)(
PHYSDEV
,
const
DOCINFOA
*
);
INT
(
*
pStartPage
)(
PHYSDEV
);
BOOL
(
*
pStretchBlt
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
,
PHYSDEV
,
INT
,
INT
,
INT
,
INT
,
DWORD
);
INT
(
*
pStretchDIBits
)(
PHYSDEV
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
,
INT
,
const
void
*
,
const
BITMAPINFO
*
,
UINT
,
DWORD
);
BOOL
(
*
pStrokeAndFillPath
)(
PHYSDEV
);
BOOL
(
*
pStrokePath
)(
PHYSDEV
);
BOOL
(
*
pSwapBuffers
)(
PHYSDEV
);
BOOL
(
*
pWidenPath
)(
PHYSDEV
);
}
DC_FUNCTIONS
;
/* Certain functions will do no further processing if the driver returns this.
Used by mfdrv for example. */
#define GDI_NO_MORE_WORK 2
/* DC hook codes */
#define DCHC_INVALIDVISRGN 0x0001
#define DCHC_DELETEDC 0x0002
#define DCHF_INVALIDATEVISRGN 0x0001
#define DCHF_VALIDATEVISRGN 0x0002
/* DC flags */
#define DC_SAVED 0x0002
/* It is a saved DC */
#define DC_DIRTY 0x0004
/* hVisRgn has to be updated */
#define DC_THUNKHOOK 0x0008
/* DC hook is in the 16-bit code */
#define GDI_HEAP_SIZE 0xffe0
typedef
INT
(
*
DEVICEFONTENUMPROC
)(
LPENUMLOGFONTEXW
,
NEWTEXTMETRICEXW
*
,
DWORD
,
LPARAM
);
/* extra stock object: default 1x1 bitmap for memory DCs */
#define DEFAULT_BITMAP (STOCK_LAST+1)
/* Metafile defines */
#define META_EOF 0x0000
/* values of mtType in METAHEADER. Note however that the disk image of a disk
based metafile has mtType == 1 */
#define METAFILE_MEMORY 1
#define METAFILE_DISK 2
/* Rounds a floating point number to integer. The world-to-viewport
* transformation process is done in floating point internally. This function
* is then used to round these coordinates to integer values.
...
...
@@ -344,15 +178,6 @@ static inline INT WINE_UNUSED GDI_ROUND(FLOAT val)
/* World -> Device size conversion */
/* Performs a world-to-viewport transformation on the specified width (which
* is in floating point format).
*/
static
inline
void
WINE_UNUSED
INTERNAL_XWSTODS_FLOAT
(
DC
*
dc
,
FLOAT
*
width
)
{
/* Perform the transformation */
*
width
=
*
width
*
dc
->
xformWorld2Vport
.
eM11
;
}
/* Performs a world-to-viewport transformation on the specified width (which
* is in integer format).
*/
static
inline
INT
WINE_UNUSED
INTERNAL_XWSTODS
(
DC
*
dc
,
INT
width
)
...
...
@@ -360,23 +185,11 @@ static inline INT WINE_UNUSED INTERNAL_XWSTODS(DC *dc, INT width)
FLOAT
floatWidth
;
/* Perform operation with floating point */
floatWidth
=
(
FLOAT
)
width
;
INTERNAL_XWSTODS_FLOAT
(
dc
,
&
floatWidth
);
floatWidth
=
(
FLOAT
)
width
*
dc
->
xformWorld2Vport
.
eM11
;
/* Round to integers */
return
GDI_ROUND
(
floatWidth
);
}
/* Performs a world-to-viewport transformation on the specified size (which
* is in floating point format).
*/
static
inline
void
WINE_UNUSED
INTERNAL_YWSTODS_FLOAT
(
DC
*
dc
,
FLOAT
*
height
)
{
/* Perform the transformation */
*
height
=
*
height
*
dc
->
xformWorld2Vport
.
eM22
;
}
/* Performs a world-to-viewport transformation on the specified size (which
* is in integer format).
*/
...
...
@@ -385,188 +198,15 @@ static inline INT WINE_UNUSED INTERNAL_YWSTODS(DC *dc, INT height)
FLOAT
floatHeight
;
/* Perform operation with floating point */
floatHeight
=
(
FLOAT
)
height
;
INTERNAL_YWSTODS_FLOAT
(
dc
,
&
floatHeight
);
floatHeight
=
(
FLOAT
)
height
*
dc
->
xformWorld2Vport
.
eM22
;
/* Round to integers */
return
GDI_ROUND
(
floatHeight
);
}
/* Device -> World size conversion */
/* Performs a device to world transformation on the specified width (which
* is in floating point format).
*/
static
inline
void
INTERNAL_XDSTOWS_FLOAT
(
DC
*
dc
,
FLOAT
*
width
)
{
/* Perform the transformation */
*
width
=
*
width
*
dc
->
xformVport2World
.
eM11
;
}
/* Performs a device to world transformation on the specified width (which
* is in integer format).
*/
static
inline
INT
INTERNAL_XDSTOWS
(
DC
*
dc
,
INT
width
)
{
FLOAT
floatWidth
;
/* Perform operation with floating point */
floatWidth
=
(
FLOAT
)
width
;
INTERNAL_XDSTOWS_FLOAT
(
dc
,
&
floatWidth
);
/* Round to integers */
return
GDI_ROUND
(
floatWidth
);
}
/* Performs a device to world transformation on the specified size (which
* is in floating point format).
*/
static
inline
void
INTERNAL_YDSTOWS_FLOAT
(
DC
*
dc
,
FLOAT
*
height
)
{
/* Perform the transformation */
*
height
=
*
height
*
dc
->
xformVport2World
.
eM22
;
}
/* Performs a device to world transformation on the specified size (which
* is in integer format).
*/
static
inline
INT
INTERNAL_YDSTOWS
(
DC
*
dc
,
INT
height
)
{
FLOAT
floatHeight
;
/* Perform operation with floating point */
floatHeight
=
(
FLOAT
)
height
;
INTERNAL_YDSTOWS_FLOAT
(
dc
,
&
floatHeight
);
/* Round to integers */
return
GDI_ROUND
(
floatHeight
);
}
/* Device <-> logical size conversion */
#define XDSTOLS(dc,x) \
MulDiv((x), (dc)->wndExtX, (dc)->vportExtX)
#define YDSTOLS(dc,y) \
MulDiv((y), (dc)->wndExtY, (dc)->vportExtY)
#define XLSTODS(dc,x) \
MulDiv((x), (dc)->vportExtX, (dc)->wndExtX)
#define YLSTODS(dc,y) \
MulDiv((y), (dc)->vportExtY, (dc)->wndExtY)
/* GDI local heap */
extern
BOOL
GDI_Init
(
void
);
extern
void
*
GDI_AllocObject
(
WORD
,
WORD
,
HGDIOBJ
*
,
const
struct
gdi_obj_funcs
*
funcs
);
extern
void
*
GDI_ReallocObject
(
WORD
,
HGDIOBJ
,
void
*
obj
);
extern
BOOL
GDI_FreeObject
(
HGDIOBJ
,
void
*
obj
);
extern
void
*
GDI_GetObjPtr
(
HGDIOBJ
,
WORD
);
extern
void
GDI_ReleaseObj
(
HGDIOBJ
);
extern
void
GDI_CheckNotLock
(
void
);
extern
const
DC_FUNCTIONS
*
DRIVER_load_driver
(
LPCWSTR
name
);
extern
const
DC_FUNCTIONS
*
DRIVER_get_driver
(
const
DC_FUNCTIONS
*
funcs
);
extern
void
DRIVER_release_driver
(
const
DC_FUNCTIONS
*
funcs
);
extern
BOOL
DRIVER_GetDriverName
(
LPCWSTR
device
,
LPWSTR
driver
,
DWORD
size
);
extern
POINT
*
GDI_Bezier
(
const
POINT
*
Points
,
INT
count
,
INT
*
nPtsOut
);
extern
DC
*
DC_AllocDC
(
const
DC_FUNCTIONS
*
funcs
,
WORD
magic
);
extern
DC
*
DC_GetDCPtr
(
HDC
hdc
);
extern
DC
*
DC_GetDCUpdate
(
HDC
hdc
);
extern
void
DC_InitDC
(
DC
*
dc
);
extern
void
DC_UpdateXforms
(
DC
*
dc
);
BOOL
GDI_hdc_using_object
(
HGDIOBJ
obj
,
HDC
hdc
);
BOOL
GDI_hdc_not_using_object
(
HGDIOBJ
obj
,
HDC
hdc
);
/* bidi.c */
/* Wine_GCPW Flags */
/* Directionality -
* LOOSE means that the paragraph dir is only set if there is no strong character.
* FORCE means override the characters in the paragraph.
*/
#define WINE_GCPW_FORCE_LTR 0
#define WINE_GCPW_FORCE_RTL 1
#define WINE_GCPW_LOOSE_LTR 2
#define WINE_GCPW_LOOSE_RTL 3
#define WINE_GCPW_DIR_MASK 3
extern
BOOL
BIDI_Reorder
(
LPCWSTR
lpString
,
INT
uCount
,
DWORD
dwFlags
,
DWORD
dwWineGCP_Flags
,
LPWSTR
lpOutString
,
INT
uCountOut
,
UINT
*
lpOrder
);
extern
BOOL
BidiAvail
;
/* clipping.c */
extern
void
CLIPPING_UpdateGCRegion
(
DC
*
dc
);
/* enhmetafile.c */
extern
HENHMETAFILE
EMF_Create_HENHMETAFILE
(
ENHMETAHEADER
*
emh
,
BOOL
on_disk
);
/* freetype.c */
extern
INT
WineEngAddFontResourceEx
(
LPCWSTR
,
DWORD
,
PVOID
);
extern
GdiFont
WineEngCreateFontInstance
(
DC
*
,
HFONT
);
extern
BOOL
WineEngDestroyFontInstance
(
HFONT
handle
);
extern
DWORD
WineEngEnumFonts
(
LPLOGFONTW
,
DEVICEFONTENUMPROC
,
LPARAM
);
extern
BOOL
WineEngGetCharWidth
(
GdiFont
,
UINT
,
UINT
,
LPINT
);
extern
DWORD
WineEngGetFontData
(
GdiFont
,
DWORD
,
DWORD
,
LPVOID
,
DWORD
);
extern
DWORD
WineEngGetGlyphIndices
(
GdiFont
font
,
LPCWSTR
lpstr
,
INT
count
,
LPWORD
pgi
,
DWORD
flags
);
extern
DWORD
WineEngGetGlyphOutline
(
GdiFont
,
UINT
glyph
,
UINT
format
,
LPGLYPHMETRICS
,
DWORD
buflen
,
LPVOID
buf
,
const
MAT2
*
);
extern
UINT
WineEngGetOutlineTextMetrics
(
GdiFont
,
UINT
,
LPOUTLINETEXTMETRICW
);
extern
UINT
WineEngGetTextCharsetInfo
(
GdiFont
font
,
LPFONTSIGNATURE
fs
,
DWORD
flags
);
extern
BOOL
WineEngGetTextExtentPoint
(
GdiFont
,
LPCWSTR
,
INT
,
LPSIZE
);
extern
BOOL
WineEngGetTextExtentPointI
(
GdiFont
,
const
WORD
*
,
INT
,
LPSIZE
);
extern
INT
WineEngGetTextFace
(
GdiFont
,
INT
,
LPWSTR
);
extern
BOOL
WineEngGetTextMetrics
(
GdiFont
,
LPTEXTMETRICW
);
extern
BOOL
WineEngInit
(
void
);
extern
BOOL
WineEngRemoveFontResourceEx
(
LPCWSTR
,
DWORD
,
PVOID
);
/* metafile.c */
extern
HMETAFILE
MF_Create_HMETAFILE
(
METAHEADER
*
mh
);
extern
HMETAFILE16
MF_Create_HMETAFILE16
(
METAHEADER
*
mh
);
extern
METAHEADER
*
MF_CreateMetaHeaderDisk
(
METAHEADER
*
mr
,
LPCSTR
filename
);
/* region.c */
extern
BOOL
REGION_FrameRgn
(
HRGN
dest
,
HRGN
src
,
INT
x
,
INT
y
);
/* palette.c */
extern
HPALETTE
WINAPI
GDISelectPalette
(
HDC
hdc
,
HPALETTE
hpal
,
WORD
wBkg
);
extern
UINT
WINAPI
GDIRealizePalette
(
HDC
hdc
);
/* path.c */
#define PATH_IsPathOpen(path) ((path).state==PATH_Open)
/* Returns TRUE if the specified path is in the open state, i.e. in the
* state where points will be added to the path, or FALSE otherwise. This
* function is implemented as a macro for performance reasons.
*/
extern
void
PATH_InitGdiPath
(
GdiPath
*
pPath
);
extern
void
PATH_DestroyGdiPath
(
GdiPath
*
pPath
);
extern
BOOL
PATH_AssignGdiPath
(
GdiPath
*
pPathDest
,
const
GdiPath
*
pPathSrc
);
extern
BOOL
PATH_MoveTo
(
DC
*
dc
);
extern
BOOL
PATH_LineTo
(
DC
*
dc
,
INT
x
,
INT
y
);
extern
BOOL
PATH_Rectangle
(
DC
*
dc
,
INT
x1
,
INT
y1
,
INT
x2
,
INT
y2
);
extern
BOOL
PATH_Ellipse
(
DC
*
dc
,
INT
x1
,
INT
y1
,
INT
x2
,
INT
y2
);
extern
BOOL
PATH_Arc
(
DC
*
dc
,
INT
x1
,
INT
y1
,
INT
x2
,
INT
y2
,
INT
xStart
,
INT
yStart
,
INT
xEnd
,
INT
yEnd
,
INT
lines
);
extern
BOOL
PATH_PolyBezierTo
(
DC
*
dc
,
const
POINT
*
pt
,
DWORD
cbCount
);
extern
BOOL
PATH_PolyBezier
(
DC
*
dc
,
const
POINT
*
pt
,
DWORD
cbCount
);
extern
BOOL
PATH_PolylineTo
(
DC
*
dc
,
const
POINT
*
pt
,
DWORD
cbCount
);
extern
BOOL
PATH_Polyline
(
DC
*
dc
,
const
POINT
*
pt
,
DWORD
cbCount
);
extern
BOOL
PATH_Polygon
(
DC
*
dc
,
const
POINT
*
pt
,
DWORD
cbCount
);
extern
BOOL
PATH_PolyPolyline
(
DC
*
dc
,
const
POINT
*
pt
,
const
DWORD
*
counts
,
DWORD
polylines
);
extern
BOOL
PATH_PolyPolygon
(
DC
*
dc
,
const
POINT
*
pt
,
const
INT
*
counts
,
UINT
polygons
);
extern
BOOL
PATH_RoundRect
(
DC
*
dc
,
INT
x1
,
INT
y1
,
INT
x2
,
INT
y2
,
INT
ell_width
,
INT
ell_height
);
extern
BOOL
PATH_AddEntry
(
GdiPath
*
pPath
,
const
POINT
*
pPoint
,
BYTE
flags
);
/* text.c */
extern
LPWSTR
FONT_mbtowc
(
HDC
,
LPCSTR
,
INT
,
INT
*
,
UINT
*
);
#define WINE_GGO_GRAY16_BITMAP 0x7f
...
...
include/wine/wingdi16.h
View file @
6ec42c0c
...
...
@@ -372,6 +372,13 @@ struct PATH_INFO {
DWORD
BkColor
;
};
/* DC hook codes */
#define DCHC_INVALIDVISRGN 0x0001
#define DCHC_DELETEDC 0x0002
#define DCHF_INVALIDATEVISRGN 0x0001
#define DCHF_VALIDATEVISRGN 0x0002
/* RenderMode */
#define RENDERMODE_NO_DISPLAY 0
#define RENDERMODE_OPEN 1
...
...
objects/bitmap.c
View file @
6ec42c0c
...
...
@@ -23,10 +23,11 @@
#include <string.h>
#include "wine/winbase16.h"
#include "wine/winuser16.h"
#include "gdi.h"
#include "bitmap.h"
#include "gdi_private.h"
#include "wine/debug.h"
#include "wine/winuser16.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
bitmap
);
...
...
objects/brush.c
View file @
6ec42c0c
...
...
@@ -29,6 +29,7 @@
#include "wine/wingdi16.h"
#include "bitmap.h"
#include "wownt32.h"
#include "gdi_private.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
gdi
);
...
...
objects/clipping.c
View file @
6ec42c0c
...
...
@@ -26,6 +26,7 @@
#include "wownt32.h"
#include "wine/winuser16.h"
#include "gdi.h"
#include "gdi_private.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
clipping
);
...
...
@@ -157,7 +158,8 @@ INT WINAPI OffsetClipRgn( HDC hdc, INT x, INT y )
if
(
dc
->
funcs
->
pOffsetClipRgn
)
ret
=
dc
->
funcs
->
pOffsetClipRgn
(
dc
->
physDev
,
x
,
y
);
else
if
(
dc
->
hClipRgn
)
{
ret
=
OffsetRgn
(
dc
->
hClipRgn
,
XLSTODS
(
dc
,
x
),
YLSTODS
(
dc
,
y
));
ret
=
OffsetRgn
(
dc
->
hClipRgn
,
MulDiv
(
x
,
dc
->
vportExtX
,
dc
->
wndExtX
),
MulDiv
(
y
,
dc
->
vportExtY
,
dc
->
wndExtY
)
);
CLIPPING_UpdateGCRegion
(
dc
);
}
GDI_ReleaseObj
(
hdc
);
...
...
objects/dc.c
View file @
6ec42c0c
...
...
@@ -32,6 +32,7 @@
#include "wownt32.h"
#include "wine/winuser16.h"
#include "gdi.h"
#include "gdi_private.h"
#include "wine/unicode.h"
#include "wine/debug.h"
...
...
objects/dcvalues.c
View file @
6ec42c0c
...
...
@@ -28,6 +28,7 @@
#include "wownt32.h"
#include "gdi.h"
#include "gdi_private.h"
/***********************************************************************
...
...
objects/dib.c
View file @
6ec42c0c
...
...
@@ -27,6 +27,7 @@
#include "bitmap.h"
#include "gdi.h"
#include "wownt32.h"
#include "gdi_private.h"
#include "wine/debug.h"
#include "palette.h"
...
...
objects/enhmetafile.c
View file @
6ec42c0c
...
...
@@ -43,6 +43,7 @@
#include "winnls.h"
#include "winerror.h"
#include "gdi.h"
#include "gdi_private.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
enhmetafile
);
...
...
objects/font.c
View file @
6ec42c0c
...
...
@@ -33,12 +33,42 @@
#include "winnls.h"
#include "wownt32.h"
#include "gdi.h"
#include "gdi_private.h"
#include "wine/unicode.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
font
);
WINE_DECLARE_DEBUG_CHANNEL
(
gdi
);
/* Device -> World size conversion */
/* Performs a device to world transformation on the specified width (which
* is in integer format).
*/
static
inline
INT
INTERNAL_XDSTOWS
(
DC
*
dc
,
INT
width
)
{
FLOAT
floatWidth
;
/* Perform operation with floating point */
floatWidth
=
(
FLOAT
)
width
*
dc
->
xformVport2World
.
eM11
;
/* Round to integers */
return
GDI_ROUND
(
floatWidth
);
}
/* Performs a device to world transformation on the specified size (which
* is in integer format).
*/
static
inline
INT
INTERNAL_YDSTOWS
(
DC
*
dc
,
INT
height
)
{
FLOAT
floatHeight
;
/* Perform operation with floating point */
floatHeight
=
(
FLOAT
)
height
*
dc
->
xformVport2World
.
eM22
;
/* Round to integers */
return
GDI_ROUND
(
floatHeight
);
}
static
HGDIOBJ
FONT_SelectObject
(
HGDIOBJ
handle
,
void
*
obj
,
HDC
hdc
);
static
INT
FONT_GetObject16
(
HGDIOBJ
handle
,
void
*
obj
,
INT
count
,
LPVOID
buffer
);
static
INT
FONT_GetObjectA
(
HGDIOBJ
handle
,
void
*
obj
,
INT
count
,
LPVOID
buffer
);
...
...
objects/gdiobj.c
View file @
6ec42c0c
...
...
@@ -35,12 +35,15 @@
#include "local.h"
#include "palette.h"
#include "gdi.h"
#include "gdi_private.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
gdi
);
#define HGDIOBJ_32(h16) ((HGDIOBJ)(ULONG_PTR)(h16))
#define GDI_HEAP_SIZE 0xffe0
/***********************************************************************
* GDI stock objects
*/
...
...
objects/metafile.c
View file @
6ec42c0c
...
...
@@ -54,6 +54,7 @@
#include "wownt32.h"
#include "winreg.h"
#include "winternl.h"
#include "gdi_private.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
metafile
);
...
...
objects/palette.c
View file @
6ec42c0c
...
...
@@ -33,6 +33,7 @@
#include "wownt32.h"
#include "wine/winuser16.h"
#include "gdi.h"
#include "gdi_private.h"
#include "palette.h"
#include "wine/debug.h"
#include "winerror.h"
...
...
objects/pen.c
View file @
6ec42c0c
...
...
@@ -28,6 +28,7 @@
#include "wingdi.h"
#include "wine/wingdi16.h"
#include "gdi.h"
#include "gdi_private.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
gdi
);
...
...
objects/region.c
View file @
6ec42c0c
...
...
@@ -101,6 +101,7 @@ SOFTWARE.
#include "winbase.h"
#include "wingdi.h"
#include "gdi.h"
#include "gdi_private.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
region
);
...
...
objects/text.c
View file @
6ec42c0c
...
...
@@ -27,9 +27,10 @@
#include "wingdi.h"
#include "wine/winuser16.h"
#include "winerror.h"
#include "winnls.h"
#include "gdi.h"
#include "gdi_private.h"
#include "wine/debug.h"
#include "winnls.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
text
);
...
...
windows/dce.c
View file @
6ec42c0c
...
...
@@ -34,7 +34,6 @@
#include <assert.h>
#include "dce.h"
#include "win.h"
#include "gdi.h"
#include "user.h"
#include "wine/debug.h"
#include "windef.h"
...
...
windows/nonclient.c
View file @
6ec42c0c
...
...
@@ -35,7 +35,6 @@
#include "winpos.h"
#include "nonclient.h"
#include "shellapi.h"
#include "bitmap.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL
(
nonclient
);
...
...
windows/painting.c
View file @
6ec42c0c
...
...
@@ -31,7 +31,6 @@
#include "wownt32.h"
#include "wine/unicode.h"
#include "wine/server.h"
#include "gdi.h"
#include "user.h"
#include "win.h"
#include "message.h"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment