ReactOS 0.4.17-dev-116-ga4b6fe9
ntgdi.h File Reference
#include <wingdi.h>
#include <winternl.h>
#include <winspool.h>
#include <ddk/d3dkmthk.h>
Include dependency graph for ntgdi.h:

Go to the source code of this file.

Classes

struct  _GDI_HANDLE_ENTRY
 
struct  _GDI_SHARED_MEMORY
 
struct  font_realization_info
 
struct  char_width_info
 
struct  font_fileinfo
 

Macros

#define W32KAPI   DECLSPEC_IMPORT
 
#define GDI_MAX_HANDLE_COUNT   0x10000
 
#define NTGDI_OBJ_DC   0x010000
 
#define NTGDI_OBJ_ENHMETADC   0x210000
 
#define NTGDI_OBJ_REGION   0x040000
 
#define NTGDI_OBJ_SURF   0x050000
 
#define NTGDI_OBJ_METAFILE   0x260000
 
#define NTGDI_OBJ_ENHMETAFILE   0x460000
 
#define NTGDI_OBJ_METADC   0x660000
 
#define NTGDI_OBJ_PAL   0x080000
 
#define NTGDI_OBJ_BITMAP   0x090000
 
#define NTGDI_OBJ_FONT   0x0a0000
 
#define NTGDI_OBJ_BRUSH   0x100000
 
#define NTGDI_OBJ_PEN   0x300000
 
#define NTGDI_OBJ_EXTPEN   0x500000
 
#define NTGDI_OBJ_MEMDC   0x410000
 
#define NTGDI_HANDLE_TYPE_SHIFT   16
 
#define NTGDI_HANDLE_TYPE_MASK   0x007f0000
 
#define NTGDI_HANDLE_STOCK_OBJECT   0x00800000
 
#define NTGDI_GETCHARWIDTH_INT   0x02
 
#define NTGDI_GETCHARWIDTH_INDICES   0x08
 
#define NTGDI_GETCHARABCWIDTHS_INT   0x01
 
#define NTGDI_GETCHARABCWIDTHS_INDICES   0x02
 
#define MWT_SET   4
 

Typedefs

typedef struct _GDI_HANDLE_ENTRY GDI_HANDLE_ENTRY
 
typedef struct _GDI_HANDLE_ENTRYPGDI_HANDLE_ENTRY
 
typedef struct _GDI_SHARED_MEMORY GDI_SHARED_MEMORY
 
typedef struct _GDI_SHARED_MEMORYPGDI_SHARED_MEMORY
 

Enumerations

enum  { NtGdiArc , NtGdiArcTo , NtGdiChord , NtGdiPie }
 
enum  {
  NtGdiPolyPolygon = 1 , NtGdiPolyPolyline , NtGdiPolyBezier , NtGdiPolyBezierTo ,
  NtGdiPolylineTo , NtGdiPolyPolygonRgn
}
 
enum  { NtGdiLPtoDP , NtGdiDPtoLP }
 
enum  {
  NtGdiSetMapMode = 8 , NtGdiSetBkColor = 100 , NtGdiSetBkMode , NtGdiSetTextColor ,
  NtGdiSetDCBrushColor , NtGdiSetDCPenColor , NtGdiSetGraphicsMode , NtGdiSetROP2 ,
  NtGdiSetTextAlign
}
 
enum  {
  NtGdiGetArcDirection , NtGdiGetBkColor , NtGdiGetBkMode , NtGdiGetDCBrushColor ,
  NtGdiGetDCPenColor , NtGdiGetGraphicsMode , NtGdiGetLayout , NtGdiGetPolyFillMode ,
  NtGdiGetROP2 , NtGdiGetTextColor , NtGdiIsMemDC
}
 
enum  { NtGdiGetBrushOrgEx , NtGdiGetCurrentPosition , NtGdiGetDCOrg }
 
enum  {
  NtGdiAnimatePalette , NtGdiSetPaletteEntries , NtGdiGetPaletteEntries , NtGdiGetSystemPaletteEntries ,
  NtGdiGetDIBColorTable , NtGdiSetDIBColorTable
}
 

Functions

W32KAPI INT WINAPI NtGdiAbortDoc (HDC hdc)
 
W32KAPI BOOL WINAPI NtGdiAbortPath (HDC hdc)
 
W32KAPI HANDLE WINAPI NtGdiAddFontMemResourceEx (void *ptr, DWORD size, void *dv, ULONG dv_size, DWORD *count)
 
W32KAPI INT WINAPI NtGdiAddFontResourceW (const WCHAR *str, ULONG size, ULONG files, DWORD flags, DWORD tid, void *dv)
 
W32KAPI BOOL WINAPI NtGdiAlphaBlend (HDC hdc_dst, int x_dst, int y_dst, int width_dst, int height_dst, HDC hdc_src, int x_src, int y_src, int width_src, int height_src, DWORD blend_function, HANDLE xform)
 
W32KAPI BOOL WINAPI NtGdiAngleArc (HDC hdc, INT x, INT y, DWORD radius, DWORD start_angle, DWORD sweep_angle)
 
W32KAPI BOOL WINAPI NtGdiArcInternal (UINT type, HDC hdc, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend)
 
W32KAPI BOOL WINAPI NtGdiBeginPath (HDC hdc)
 
W32KAPI BOOL WINAPI NtGdiBitBlt (HDC hdc_dst, INT x_dst, INT y_dst, INT width, INT height, HDC hdc_src, INT x_src, INT y_src, DWORD rop, DWORD bk_color, FLONG fl)
 
W32KAPI BOOL WINAPI NtGdiCancelDC (HDC hdc)
 
W32KAPI BOOL WINAPI NtGdiCloseFigure (HDC hdc)
 
W32KAPI INT WINAPI NtGdiCombineRgn (HRGN dest, HRGN src1, HRGN src2, INT mode)
 
W32KAPI BOOL WINAPI NtGdiComputeXformCoefficients (HDC hdc)
 
W32KAPI HBITMAP WINAPI NtGdiCreateBitmap (INT width, INT height, UINT planes, UINT bpp, const void *bits)
 
W32KAPI HANDLE WINAPI NtGdiCreateClientObj (ULONG type)
 
W32KAPI HBITMAP WINAPI NtGdiCreateCompatibleBitmap (HDC hdc, INT width, INT height)
 
W32KAPI HDC WINAPI NtGdiCreateCompatibleDC (HDC hdc)
 
W32KAPI HBRUSH WINAPI NtGdiCreateDIBBrush (const void *data, UINT coloruse, UINT size, BOOL is_8x8, BOOL pen, const void *client)
 
W32KAPI HBITMAP WINAPI NtGdiCreateDIBSection (HDC hdc, HANDLE section, DWORD offset, const BITMAPINFO *bmi, UINT usage, UINT header_size, ULONG flags, ULONG_PTR color_space, void **bits)
 
W32KAPI HBITMAP WINAPI NtGdiCreateDIBitmapInternal (HDC hdc, INT width, INT height, DWORD init, const void *bits, const BITMAPINFO *data, UINT coloruse, UINT max_info, UINT max_bits, ULONG flags, HANDLE xform)
 
W32KAPI HRGN WINAPI NtGdiCreateEllipticRgn (INT left, INT top, INT right, INT bottom)
 
W32KAPI HPALETTE WINAPI NtGdiCreateHalftonePalette (HDC hdc)
 
W32KAPI HBRUSH WINAPI NtGdiCreateHatchBrushInternal (INT style, COLORREF color, BOOL pen)
 
W32KAPI HDC WINAPI NtGdiCreateMetafileDC (HDC hdc)
 
W32KAPI HPALETTE WINAPI NtGdiCreatePaletteInternal (const LOGPALETTE *palette, UINT count)
 
W32KAPI HBRUSH WINAPI NtGdiCreatePatternBrushInternal (HBITMAP hbitmap, BOOL pen, BOOL is_8x8)
 
W32KAPI HPEN WINAPI NtGdiCreatePen (INT style, INT width, COLORREF color, HBRUSH brush)
 
W32KAPI HRGN WINAPI NtGdiCreateRectRgn (INT left, INT top, INT right, INT bottom)
 
W32KAPI HRGN WINAPI NtGdiCreateRoundRectRgn (INT left, INT top, INT right, INT bottom, INT ellipse_width, INT ellipse_height)
 
W32KAPI HBRUSH WINAPI NtGdiCreateSolidBrush (COLORREF color, HBRUSH brush)
 
W32KAPI BOOL WINAPI NtGdiDeleteClientObj (HGDIOBJ obj)
 
W32KAPI BOOL WINAPI NtGdiDeleteObjectApp (HGDIOBJ obj)
 
W32KAPI INT WINAPI NtGdiDescribePixelFormat (HDC hdc, INT format, UINT size, PIXELFORMATDESCRIPTOR *descr)
 
W32KAPI LONG WINAPI NtGdiDoPalette (HGDIOBJ handle, WORD start, WORD count, void *entries, DWORD func, BOOL inbound)
 
W32KAPI BOOL WINAPI NtGdiDrawStream (HDC hdc, ULONG in, void *pvin)
 
W32KAPI BOOL WINAPI NtGdiEllipse (HDC hdc, INT left, INT top, INT right, INT bottom)
 
W32KAPI INT WINAPI NtGdiEndDoc (HDC hdc)
 
W32KAPI BOOL WINAPI NtGdiEndPath (HDC hdc)
 
W32KAPI INT WINAPI NtGdiEndPage (HDC hdc)
 
W32KAPI BOOL WINAPI NtGdiEnumFonts (HDC hdc, ULONG type, ULONG win32_compat, ULONG face_name_len, const WCHAR *face_name, ULONG charset, ULONG *count, void *buf)
 
W32KAPI BOOL WINAPI NtGdiEqualRgn (HRGN hrgn1, HRGN hrgn2)
 
W32KAPI INT WINAPI NtGdiExcludeClipRect (HDC hdc, INT left, INT top, INT right, INT bottom)
 
W32KAPI HPEN WINAPI NtGdiExtCreatePen (DWORD style, DWORD width, ULONG brush_style, ULONG color, ULONG_PTR client_hatch, ULONG_PTR hatch, DWORD style_count, const DWORD *style_bits, ULONG dib_size, BOOL old_style, HBRUSH brush)
 
W32KAPI INT WINAPI NtGdiExtEscape (HDC hdc, WCHAR *driver, INT driver_id, INT escape, INT input_size, const char *input, INT output_size, char *output)
 
W32KAPI BOOL WINAPI NtGdiExtFloodFill (HDC hdc, INT x, INT y, COLORREF color, UINT type)
 
W32KAPI BOOL WINAPI NtGdiExtTextOutW (HDC hdc, INT x, INT y, UINT flags, const RECT *rect, const WCHAR *str, UINT count, const INT *dx, DWORD cp)
 
W32KAPI HRGN WINAPI NtGdiExtCreateRegion (const XFORM *xform, DWORD count, const RGNDATA *data)
 
W32KAPI INT WINAPI NtGdiExtGetObjectW (HGDIOBJ handle, INT count, void *buffer)
 
W32KAPI INT WINAPI NtGdiExtSelectClipRgn (HDC hdc, HRGN region, INT mode)
 
W32KAPI BOOL WINAPI NtGdiFillPath (HDC hdc)
 
W32KAPI BOOL WINAPI NtGdiFillRgn (HDC hdc, HRGN hrgn, HBRUSH hbrush)
 
W32KAPI BOOL WINAPI NtGdiFlattenPath (HDC hdc)
 
W32KAPI BOOL WINAPI NtGdiFontIsLinked (HDC hdc)
 
W32KAPI BOOL WINAPI NtGdiFlush (void)
 
W32KAPI BOOL WINAPI NtGdiFrameRgn (HDC hdc, HRGN hrgn, HBRUSH brush, INT width, INT height)
 
W32KAPI BOOL WINAPI NtGdiGetAndSetDCDword (HDC hdc, UINT method, DWORD value, DWORD *result)
 
W32KAPI INT WINAPI NtGdiGetAppClipBox (HDC hdc, RECT *rect)
 
W32KAPI LONG WINAPI NtGdiGetBitmapBits (HBITMAP bitmap, LONG count, void *bits)
 
W32KAPI BOOL WINAPI NtGdiGetBitmapDimension (HBITMAP bitmap, SIZE *size)
 
W32KAPI UINT WINAPI NtGdiGetBoundsRect (HDC hdc, RECT *rect, UINT flags)
 
W32KAPI BOOL WINAPI NtGdiGetCharABCWidthsW (HDC hdc, UINT first, UINT last, WCHAR *chars, ULONG flags, void *buffer)
 
W32KAPI BOOL WINAPI NtGdiGetCharWidthW (HDC hdc, UINT first_char, UINT last_char, WCHAR *chars, ULONG flags, void *buffer)
 
W32KAPI BOOL WINAPI NtGdiGetCharWidthInfo (HDC hdc, struct char_width_info *info)
 
W32KAPI BOOL WINAPI NtGdiGetColorAdjustment (HDC hdc, COLORADJUSTMENT *ca)
 
W32KAPI BOOL WINAPI NtGdiGetDCDword (HDC hdc, UINT method, DWORD *result)
 
W32KAPI HANDLE WINAPI NtGdiGetDCObject (HDC hdc, UINT type)
 
W32KAPI BOOL WINAPI NtGdiGetDCPoint (HDC hdc, UINT method, POINT *result)
 
W32KAPI INT WINAPI NtGdiGetDIBitsInternal (HDC hdc, HBITMAP hbitmap, UINT startscan, UINT lines, void *bits, BITMAPINFO *info, UINT coloruse, UINT max_bits, UINT max_info)
 
W32KAPI INT WINAPI NtGdiGetDeviceCaps (HDC hdc, INT cap)
 
W32KAPI BOOL WINAPI NtGdiGetDeviceGammaRamp (HDC hdc, void *ptr)
 
W32KAPI DWORD WINAPI NtGdiGetFontData (HDC hdc, DWORD table, DWORD offset, void *buffer, DWORD length)
 
W32KAPI BOOL WINAPI NtGdiGetFontFileData (DWORD instance_id, DWORD file_index, UINT64 *offset, void *buff, SIZE_T buff_size)
 
W32KAPI BOOL WINAPI NtGdiGetFontFileInfo (DWORD instance_id, DWORD file_index, struct font_fileinfo *info, SIZE_T size, SIZE_T *needed)
 
W32KAPI DWORD WINAPI NtGdiGetFontUnicodeRanges (HDC hdc, GLYPHSET *lpgs)
 
W32KAPI DWORD WINAPI NtGdiGetGlyphIndicesW (HDC hdc, const WCHAR *str, INT count, WORD *indices, DWORD flags)
 
W32KAPI DWORD WINAPI NtGdiGetGlyphOutline (HDC hdc, UINT ch, UINT format, GLYPHMETRICS *metrics, DWORD size, void *buffer, const MAT2 *mat2, BOOL ignore_rotation)
 
W32KAPI DWORD WINAPI NtGdiGetKerningPairs (HDC hdc, DWORD count, KERNINGPAIR *kern_pair)
 
W32KAPI BOOL WINAPI NtGdiGetMiterLimit (HDC hdc, DWORD *limit)
 
W32KAPI COLORREF WINAPI NtGdiGetNearestColor (HDC hdc, COLORREF color)
 
W32KAPI UINT WINAPI NtGdiGetNearestPaletteIndex (HPALETTE hpalette, COLORREF color)
 
W32KAPI UINT WINAPI NtGdiGetOutlineTextMetricsInternalW (HDC hdc, UINT cbData, OUTLINETEXTMETRICW *otm, ULONG opts)
 
W32KAPI INT WINAPI NtGdiGetPath (HDC hdc, POINT *points, BYTE *types, INT size)
 
W32KAPI COLORREF WINAPI NtGdiGetPixel (HDC hdc, INT x, INT y)
 
W32KAPI INT WINAPI NtGdiGetRandomRgn (HDC hdc, HRGN region, INT code)
 
W32KAPI BOOL WINAPI NtGdiGetRasterizerCaps (RASTERIZER_STATUS *status, UINT size)
 
W32KAPI BOOL WINAPI NtGdiGetRealizationInfo (HDC hdc, struct font_realization_info *info)
 
W32KAPI DWORD WINAPI NtGdiGetRegionData (HRGN hrgn, DWORD count, RGNDATA *data)
 
W32KAPI INT WINAPI NtGdiGetRgnBox (HRGN hrgn, RECT *rect)
 
W32KAPI DWORD WINAPI NtGdiGetSpoolMessage (void *ptr1, DWORD data2, void *ptr3, DWORD data4)
 
W32KAPI UINT WINAPI NtGdiGetSystemPaletteUse (HDC hdc)
 
W32KAPI UINT WINAPI NtGdiGetTextCharsetInfo (HDC hdc, FONTSIGNATURE *fs, DWORD flags)
 
W32KAPI BOOL WINAPI NtGdiGetTextExtentExW (HDC hdc, const WCHAR *str, INT count, INT max_ext, INT *nfit, INT *dxs, SIZE *size, UINT flags)
 
W32KAPI INT WINAPI NtGdiGetTextFaceW (HDC hdc, INT count, WCHAR *name, BOOL alias_name)
 
W32KAPI BOOL WINAPI NtGdiGetTextMetricsW (HDC hdc, TEXTMETRICW *metrics, ULONG flags)
 
W32KAPI BOOL WINAPI NtGdiGetTransform (HDC hdc, DWORD which, XFORM *xform)
 
W32KAPI BOOL WINAPI NtGdiGradientFill (HDC hdc, TRIVERTEX *vert_array, ULONG nvert, void *grad_array, ULONG ngrad, ULONG mode)
 
W32KAPI HFONT WINAPI NtGdiHfontCreate (const void *logfont, ULONG unk2, ULONG unk3, ULONG unk4, void *data)
 
W32KAPI BOOL WINAPI NtGdiIcmBrushInfo (HDC hdc, HBRUSH handle, BITMAPINFO *info, void *bits, ULONG *bits_size, UINT *usage, BOOL *unk, UINT mode)
 
W32KAPI DWORD WINAPI NtGdiInitSpool (void)
 
W32KAPI INT WINAPI NtGdiIntersectClipRect (HDC hdc, INT left, INT top, INT right, INT bottom)
 
W32KAPI BOOL WINAPI NtGdiInvertRgn (HDC hdc, HRGN hrgn)
 
W32KAPI BOOL WINAPI NtGdiLineTo (HDC hdc, INT x, INT y)
 
W32KAPI BOOL WINAPI NtGdiMaskBlt (HDC hdc, INT x_dst, INT y_dst, INT width_dst, INT height_dst, HDC hdc_src, INT x_src, INT y_src, HBITMAP mask, INT x_mask, INT y_mask, DWORD rop, DWORD bk_color)
 
W32KAPI BOOL WINAPI NtGdiModifyWorldTransform (HDC hdc, const XFORM *xform, DWORD mode)
 
W32KAPI BOOL WINAPI NtGdiMoveTo (HDC hdc, INT x, INT y, POINT *pt)
 
W32KAPI INT WINAPI NtGdiOffsetClipRgn (HDC hdc, INT x, INT y)
 
W32KAPI INT WINAPI NtGdiOffsetRgn (HRGN hrgn, INT x, INT y)
 
W32KAPI HDC WINAPI NtGdiOpenDCW (UNICODE_STRING *device, const DEVMODEW *devmode, UNICODE_STRING *output, ULONG type, BOOL is_display, HANDLE hspool, DRIVER_INFO_2W *driver_info, void *pdev)
 
W32KAPI BOOL WINAPI NtGdiPatBlt (HDC hdc, INT left, INT top, INT width, INT height, DWORD rop)
 
W32KAPI HRGN WINAPI NtGdiPathToRegion (HDC hdc)
 
W32KAPI BOOL WINAPI NtGdiPlgBlt (HDC hdc, const POINT *point, HDC hdc_src, INT x_src, INT y_src, INT width, INT height, HBITMAP mask, INT x_mask, INT y_mask, DWORD bk_color)
 
W32KAPI BOOL WINAPI NtGdiPolyDraw (HDC hdc, const POINT *points, const BYTE *types, DWORD count)
 
W32KAPI ULONG WINAPI NtGdiPolyPolyDraw (HDC hdc, const POINT *points, const ULONG *counts, DWORD count, UINT function)
 
W32KAPI BOOL WINAPI NtGdiPtInRegion (HRGN hrgn, INT x, INT y)
 
W32KAPI BOOL WINAPI NtGdiPtVisible (HDC hdc, INT x, INT y)
 
W32KAPI BOOL WINAPI NtGdiRectInRegion (HRGN hrgn, const RECT *rect)
 
W32KAPI BOOL WINAPI NtGdiRectVisible (HDC hdc, const RECT *rect)
 
W32KAPI BOOL WINAPI NtGdiRectangle (HDC hdc, INT left, INT top, INT right, INT bottom)
 
W32KAPI BOOL WINAPI NtGdiRemoveFontMemResourceEx (HANDLE handle)
 
W32KAPI BOOL WINAPI NtGdiRemoveFontResourceW (const WCHAR *str, ULONG size, ULONG files, DWORD flags, DWORD tid, void *dv)
 
W32KAPI BOOL WINAPI NtGdiResetDC (HDC hdc, const DEVMODEW *devmode, BOOL *banding, DRIVER_INFO_2W *driver_info, void *dev)
 
W32KAPI BOOL WINAPI NtGdiResizePalette (HPALETTE palette, UINT count)
 
W32KAPI BOOL WINAPI NtGdiRestoreDC (HDC hdc, INT level)
 
W32KAPI BOOL WINAPI NtGdiRoundRect (HDC hdc, INT left, INT top, INT right, INT bottom, INT ell_width, INT ell_height)
 
W32KAPI INT WINAPI NtGdiSaveDC (HDC hdc)
 
W32KAPI BOOL WINAPI NtGdiScaleViewportExtEx (HDC hdc, INT x_num, INT x_denom, INT y_num, INT y_denom, SIZE *size)
 
W32KAPI BOOL WINAPI NtGdiScaleWindowExtEx (HDC hdc, INT x_num, INT x_denom, INT y_num, INT y_denom, SIZE *size)
 
W32KAPI HGDIOBJ WINAPI NtGdiSelectBitmap (HDC hdc, HGDIOBJ handle)
 
W32KAPI HGDIOBJ WINAPI NtGdiSelectBrush (HDC hdc, HGDIOBJ handle)
 
W32KAPI BOOL WINAPI NtGdiSelectClipPath (HDC hdc, INT mode)
 
W32KAPI HGDIOBJ WINAPI NtGdiSelectFont (HDC hdc, HGDIOBJ handle)
 
W32KAPI HGDIOBJ WINAPI NtGdiSelectPen (HDC hdc, HGDIOBJ handle)
 
W32KAPI LONG WINAPI NtGdiSetBitmapBits (HBITMAP hbitmap, LONG count, const void *bits)
 
W32KAPI BOOL WINAPI NtGdiSetBitmapDimension (HBITMAP hbitmap, INT x, INT y, SIZE *prev_size)
 
W32KAPI BOOL WINAPI NtGdiSetBrushOrg (HDC hdc, INT x, INT y, POINT *prev_org)
 
W32KAPI UINT WINAPI NtGdiSetBoundsRect (HDC hdc, const RECT *rect, UINT flags)
 
W32KAPI BOOL WINAPI NtGdiSetColorAdjustment (HDC hdc, const COLORADJUSTMENT *ca)
 
W32KAPI INT WINAPI NtGdiSetDIBitsToDeviceInternal (HDC hdc, INT x_dst, INT y_dst, DWORD cx, DWORD cy, INT x_src, INT y_src, UINT startscan, UINT lines, const void *bits, const BITMAPINFO *bmi, UINT coloruse, UINT max_bits, UINT max_info, BOOL xform_coords, HANDLE xform)
 
W32KAPI BOOL WINAPI NtGdiSetDeviceGammaRamp (HDC hdc, void *ptr)
 
W32KAPI DWORD WINAPI NtGdiSetLayout (HDC hdc, LONG wox, DWORD layout)
 
W32KAPI BOOL WINAPI NtGdiSetMagicColors (HDC hdc, DWORD magic, ULONG index)
 
W32KAPI INT WINAPI NtGdiSetMetaRgn (HDC hdc)
 
W32KAPI BOOL WINAPI NtGdiSetMiterLimit (HDC hdc, DWORD limit, DWORD *prev_limit)
 
W32KAPI COLORREF WINAPI NtGdiSetPixel (HDC hdc, INT x, INT y, COLORREF color)
 
W32KAPI BOOL WINAPI NtGdiSetPixelFormat (HDC hdc, INT format)
 
W32KAPI BOOL WINAPI NtGdiSetRectRgn (HRGN hrgn, INT left, INT top, INT right, INT bottom)
 
W32KAPI UINT WINAPI NtGdiSetSystemPaletteUse (HDC hdc, UINT use)
 
W32KAPI BOOL WINAPI NtGdiSetTextJustification (HDC hdc, INT extra, INT breaks)
 
W32KAPI BOOL WINAPI NtGdiSetVirtualResolution (HDC hdc, DWORD horz_res, DWORD vert_res, DWORD horz_size, DWORD vert_size)
 
W32KAPI INT WINAPI NtGdiStartDoc (HDC hdc, const DOCINFOW *doc, BOOL *banding, INT job)
 
W32KAPI INT WINAPI NtGdiStartPage (HDC hdc)
 
W32KAPI BOOL WINAPI NtGdiStretchBlt (HDC hdc, INT x_dst, INT y_dst, INT width_dst, INT height_dst, HDC hdc_src, INT x_src, INT y_src, INT width_src, INT height_src, DWORD rop, COLORREF bk_color)
 
W32KAPI INT WINAPI NtGdiStretchDIBitsInternal (HDC hdc, INT x_dst, INT y_dst, INT width_dst, INT height_dst, INT x_src, INT y_src, INT width_src, INT height_src, const void *bits, const BITMAPINFO *bmi, UINT coloruse, DWORD rop, UINT max_info, UINT max_bits, HANDLE xform)
 
W32KAPI BOOL WINAPI NtGdiStrokeAndFillPath (HDC hdc)
 
W32KAPI BOOL WINAPI NtGdiStrokePath (HDC hdc)
 
W32KAPI BOOL WINAPI NtGdiSwapBuffers (HDC hdc)
 
W32KAPI BOOL WINAPI NtGdiTransparentBlt (HDC hdc, int x_dst, int y_dst, int width_dst, int height_dst, HDC hdc_src, int x_src, int y_src, int width_src, int height_src, UINT color)
 
W32KAPI BOOL WINAPI NtGdiTransformPoints (HDC hdc, const POINT *points_in, POINT *points_out, INT count, UINT mode)
 
W32KAPI BOOL WINAPI NtGdiUnrealizeObject (HGDIOBJ obj)
 
W32KAPI BOOL WINAPI NtGdiUpdateColors (HDC hdc)
 
W32KAPI BOOL WINAPI NtGdiWidenPath (HDC hdc)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDICheckVidPnExclusiveOwnership (const D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP *desc)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDICloseAdapter (const D3DKMT_CLOSEADAPTER *desc)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDICreateAllocation (D3DKMT_CREATEALLOCATION *params)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDICreateAllocation2 (D3DKMT_CREATEALLOCATION *params)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDICreateDCFromMemory (D3DKMT_CREATEDCFROMMEMORY *desc)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDICreateDevice (D3DKMT_CREATEDEVICE *desc)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDICreateKeyedMutex (D3DKMT_CREATEKEYEDMUTEX *params)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDICreateKeyedMutex2 (D3DKMT_CREATEKEYEDMUTEX2 *params)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDICreateSynchronizationObject (D3DKMT_CREATESYNCHRONIZATIONOBJECT *params)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDICreateSynchronizationObject2 (D3DKMT_CREATESYNCHRONIZATIONOBJECT2 *params)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIDestroyAllocation (const D3DKMT_DESTROYALLOCATION *params)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIDestroyAllocation2 (const D3DKMT_DESTROYALLOCATION2 *params)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIDestroyDCFromMemory (const D3DKMT_DESTROYDCFROMMEMORY *desc)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIDestroyDevice (const D3DKMT_DESTROYDEVICE *desc)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIDestroyKeyedMutex (const D3DKMT_DESTROYKEYEDMUTEX *params)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIDestroySynchronizationObject (const D3DKMT_DESTROYSYNCHRONIZATIONOBJECT *params)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIEnumAdapters (D3DKMT_ENUMADAPTERS *desc)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIEnumAdapters2 (D3DKMT_ENUMADAPTERS2 *desc)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIEscape (const D3DKMT_ESCAPE *desc)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenAdapterFromDeviceName (D3DKMT_OPENADAPTERFROMDEVICENAME *desc)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenAdapterFromHdc (D3DKMT_OPENADAPTERFROMHDC *desc)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenAdapterFromLuid (D3DKMT_OPENADAPTERFROMLUID *desc)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenKeyedMutex (D3DKMT_OPENKEYEDMUTEX *params)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenKeyedMutex2 (D3DKMT_OPENKEYEDMUTEX2 *params)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenKeyedMutexFromNtHandle (D3DKMT_OPENKEYEDMUTEXFROMNTHANDLE *params)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenResource (D3DKMT_OPENRESOURCE *params)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenResource2 (D3DKMT_OPENRESOURCE *params)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenResourceFromNtHandle (D3DKMT_OPENRESOURCEFROMNTHANDLE *params)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenSynchronizationObject (D3DKMT_OPENSYNCHRONIZATIONOBJECT *params)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenSyncObjectFromNtHandle (D3DKMT_OPENSYNCOBJECTFROMNTHANDLE *params)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenSyncObjectFromNtHandle2 (D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 *params)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenSyncObjectNtHandleFromName (D3DKMT_OPENSYNCOBJECTNTHANDLEFROMNAME *params)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIQueryAdapterInfo (D3DKMT_QUERYADAPTERINFO *desc)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIQueryResourceInfo (D3DKMT_QUERYRESOURCEINFO *params)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIQueryResourceInfoFromNtHandle (D3DKMT_QUERYRESOURCEINFOFROMNTHANDLE *params)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIQueryStatistics (D3DKMT_QUERYSTATISTICS *stats)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIQueryVideoMemoryInfo (D3DKMT_QUERYVIDEOMEMORYINFO *desc)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDISetQueuedLimit (D3DKMT_SETQUEUEDLIMIT *desc)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDISetVidPnSourceOwner (const D3DKMT_SETVIDPNSOURCEOWNER *desc)
 
W32KAPI NTSTATUS WINAPI NtGdiDdDDIShareObjects (UINT count, const D3DKMT_HANDLE *handles, OBJECT_ATTRIBUTES *attr, UINT access, HANDLE *handle)
 
W32KAPI const struct vulkan_funcs * __wine_get_vulkan_driver (UINT version)
 
W32KAPI const struct opengl_funcs__wine_get_wgl_driver (HDC hdc, UINT version)
 
W32KAPI BOOL WINAPI __wine_get_icm_profile (HDC hdc, BOOL allow_default, DWORD *size, WCHAR *filename)
 
W32KAPI BOOL WINAPI __wine_get_file_outline_text_metric (const WCHAR *path, TEXTMETRICW *otm, UINT *em_square, WCHAR *face_name)
 

Macro Definition Documentation

◆ GDI_MAX_HANDLE_COUNT

#define GDI_MAX_HANDLE_COUNT   0x10000

Definition at line 63 of file ntgdi.h.

◆ MWT_SET

#define MWT_SET   4

Definition at line 169 of file ntgdi.h.

◆ NTGDI_GETCHARABCWIDTHS_INDICES

#define NTGDI_GETCHARABCWIDTHS_INDICES   0x02

Definition at line 167 of file ntgdi.h.

◆ NTGDI_GETCHARABCWIDTHS_INT

#define NTGDI_GETCHARABCWIDTHS_INT   0x01

Definition at line 166 of file ntgdi.h.

◆ NTGDI_GETCHARWIDTH_INDICES

#define NTGDI_GETCHARWIDTH_INDICES   0x08

Definition at line 164 of file ntgdi.h.

◆ NTGDI_GETCHARWIDTH_INT

#define NTGDI_GETCHARWIDTH_INT   0x02

Definition at line 163 of file ntgdi.h.

◆ NTGDI_HANDLE_STOCK_OBJECT

#define NTGDI_HANDLE_STOCK_OBJECT   0x00800000

Definition at line 84 of file ntgdi.h.

◆ NTGDI_HANDLE_TYPE_MASK

#define NTGDI_HANDLE_TYPE_MASK   0x007f0000

Definition at line 83 of file ntgdi.h.

◆ NTGDI_HANDLE_TYPE_SHIFT

#define NTGDI_HANDLE_TYPE_SHIFT   16

Definition at line 82 of file ntgdi.h.

◆ NTGDI_OBJ_BITMAP

#define NTGDI_OBJ_BITMAP   0x090000

Definition at line 73 of file ntgdi.h.

◆ NTGDI_OBJ_BRUSH

#define NTGDI_OBJ_BRUSH   0x100000

Definition at line 75 of file ntgdi.h.

◆ NTGDI_OBJ_DC

#define NTGDI_OBJ_DC   0x010000

Definition at line 65 of file ntgdi.h.

◆ NTGDI_OBJ_ENHMETADC

#define NTGDI_OBJ_ENHMETADC   0x210000

Definition at line 66 of file ntgdi.h.

◆ NTGDI_OBJ_ENHMETAFILE

#define NTGDI_OBJ_ENHMETAFILE   0x460000

Definition at line 70 of file ntgdi.h.

◆ NTGDI_OBJ_EXTPEN

#define NTGDI_OBJ_EXTPEN   0x500000

Definition at line 77 of file ntgdi.h.

◆ NTGDI_OBJ_FONT

#define NTGDI_OBJ_FONT   0x0a0000

Definition at line 74 of file ntgdi.h.

◆ NTGDI_OBJ_MEMDC

#define NTGDI_OBJ_MEMDC   0x410000

Definition at line 80 of file ntgdi.h.

◆ NTGDI_OBJ_METADC

#define NTGDI_OBJ_METADC   0x660000

Definition at line 71 of file ntgdi.h.

◆ NTGDI_OBJ_METAFILE

#define NTGDI_OBJ_METAFILE   0x260000

Definition at line 69 of file ntgdi.h.

◆ NTGDI_OBJ_PAL

#define NTGDI_OBJ_PAL   0x080000

Definition at line 72 of file ntgdi.h.

◆ NTGDI_OBJ_PEN

#define NTGDI_OBJ_PEN   0x300000

Definition at line 76 of file ntgdi.h.

◆ NTGDI_OBJ_REGION

#define NTGDI_OBJ_REGION   0x040000

Definition at line 67 of file ntgdi.h.

◆ NTGDI_OBJ_SURF

#define NTGDI_OBJ_SURF   0x050000

Definition at line 68 of file ntgdi.h.

◆ W32KAPI

#define W32KAPI   DECLSPEC_IMPORT

Definition at line 31 of file ntgdi.h.

Typedef Documentation

◆ GDI_HANDLE_ENTRY

◆ GDI_SHARED_MEMORY

◆ PGDI_HANDLE_ENTRY

◆ PGDI_SHARED_MEMORY

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
NtGdiArc 
NtGdiArcTo 
NtGdiChord 
NtGdiPie 

Definition at line 91 of file ntgdi.h.

92{
97};
@ NtGdiChord
Definition: ntgdi.h:95
@ NtGdiArcTo
Definition: ntgdi.h:94
@ NtGdiArc
Definition: ntgdi.h:93
@ NtGdiPie
Definition: ntgdi.h:96

◆ anonymous enum

anonymous enum
Enumerator
NtGdiPolyPolygon 
NtGdiPolyPolyline 
NtGdiPolyBezier 
NtGdiPolyBezierTo 
NtGdiPolylineTo 
NtGdiPolyPolygonRgn 

Definition at line 99 of file ntgdi.h.

100{
107};
@ NtGdiPolyBezier
Definition: ntgdi.h:103
@ NtGdiPolylineTo
Definition: ntgdi.h:105
@ NtGdiPolyPolygonRgn
Definition: ntgdi.h:106
@ NtGdiPolyPolyline
Definition: ntgdi.h:102
@ NtGdiPolyPolygon
Definition: ntgdi.h:101
@ NtGdiPolyBezierTo
Definition: ntgdi.h:104

◆ anonymous enum

anonymous enum
Enumerator
NtGdiLPtoDP 
NtGdiDPtoLP 

Definition at line 109 of file ntgdi.h.

110{
113};
@ NtGdiLPtoDP
Definition: ntgdi.h:111
@ NtGdiDPtoLP
Definition: ntgdi.h:112

◆ anonymous enum

anonymous enum
Enumerator
NtGdiSetMapMode 
NtGdiSetBkColor 
NtGdiSetBkMode 
NtGdiSetTextColor 
NtGdiSetDCBrushColor 
NtGdiSetDCPenColor 
NtGdiSetGraphicsMode 
NtGdiSetROP2 
NtGdiSetTextAlign 

Definition at line 115 of file ntgdi.h.

116{
117 NtGdiSetMapMode = 8,
118 /* not compatible with Windows */
119 NtGdiSetBkColor = 100,
127};
@ NtGdiSetBkColor
Definition: ntgdi.h:119
@ NtGdiSetMapMode
Definition: ntgdi.h:117
@ NtGdiSetROP2
Definition: ntgdi.h:125
@ NtGdiSetTextAlign
Definition: ntgdi.h:126
@ NtGdiSetBkMode
Definition: ntgdi.h:120
@ NtGdiSetDCBrushColor
Definition: ntgdi.h:122
@ NtGdiSetTextColor
Definition: ntgdi.h:121
@ NtGdiSetDCPenColor
Definition: ntgdi.h:123
@ NtGdiSetGraphicsMode
Definition: ntgdi.h:124

◆ anonymous enum

anonymous enum
Enumerator
NtGdiGetArcDirection 
NtGdiGetBkColor 
NtGdiGetBkMode 
NtGdiGetDCBrushColor 
NtGdiGetDCPenColor 
NtGdiGetGraphicsMode 
NtGdiGetLayout 
NtGdiGetPolyFillMode 
NtGdiGetROP2 
NtGdiGetTextColor 
NtGdiIsMemDC 

Definition at line 130 of file ntgdi.h.

131{
143};
@ NtGdiGetPolyFillMode
Definition: ntgdi.h:139
@ NtGdiGetDCPenColor
Definition: ntgdi.h:136
@ NtGdiIsMemDC
Definition: ntgdi.h:142
@ NtGdiGetDCBrushColor
Definition: ntgdi.h:135
@ NtGdiGetGraphicsMode
Definition: ntgdi.h:137
@ NtGdiGetTextColor
Definition: ntgdi.h:141
@ NtGdiGetBkMode
Definition: ntgdi.h:134
@ NtGdiGetBkColor
Definition: ntgdi.h:133
@ NtGdiGetLayout
Definition: ntgdi.h:138
@ NtGdiGetROP2
Definition: ntgdi.h:140
@ NtGdiGetArcDirection
Definition: ntgdi.h:132

◆ anonymous enum

anonymous enum
Enumerator
NtGdiGetBrushOrgEx 
NtGdiGetCurrentPosition 
NtGdiGetDCOrg 

Definition at line 146 of file ntgdi.h.

147{
151};
@ NtGdiGetCurrentPosition
Definition: ntgdi.h:149
@ NtGdiGetBrushOrgEx
Definition: ntgdi.h:148
@ NtGdiGetDCOrg
Definition: ntgdi.h:150

◆ anonymous enum

anonymous enum
Enumerator
NtGdiAnimatePalette 
NtGdiSetPaletteEntries 
NtGdiGetPaletteEntries 
NtGdiGetSystemPaletteEntries 
NtGdiGetDIBColorTable 
NtGdiSetDIBColorTable 

Definition at line 153 of file ntgdi.h.

154{
161};
@ NtGdiSetDIBColorTable
Definition: ntgdi.h:160
@ NtGdiGetSystemPaletteEntries
Definition: ntgdi.h:158
@ NtGdiGetPaletteEntries
Definition: ntgdi.h:157
@ NtGdiAnimatePalette
Definition: ntgdi.h:155
@ NtGdiGetDIBColorTable
Definition: ntgdi.h:159
@ NtGdiSetPaletteEntries
Definition: ntgdi.h:156

Function Documentation

◆ __wine_get_file_outline_text_metric()

W32KAPI BOOL WINAPI __wine_get_file_outline_text_metric ( const WCHAR path,
TEXTMETRICW otm,
UINT em_square,
WCHAR face_name 
)

◆ __wine_get_icm_profile()

W32KAPI BOOL WINAPI __wine_get_icm_profile ( HDC  hdc,
BOOL  allow_default,
DWORD size,
WCHAR filename 
)

◆ __wine_get_vulkan_driver()

W32KAPI const struct vulkan_funcs * __wine_get_vulkan_driver ( UINT  version)

◆ __wine_get_wgl_driver()

W32KAPI const struct opengl_funcs * __wine_get_wgl_driver ( HDC  hdc,
UINT  version 
)

Referenced by wined3d_adapter_init().

◆ NtGdiAbortDoc()

W32KAPI INT WINAPI NtGdiAbortDoc ( HDC  hdc)

Definition at line 16 of file print.c.

17{
19 return 0;
20}
#define UNIMPLEMENTED
Definition: ntoskrnl.c:15

◆ NtGdiAbortPath()

W32KAPI BOOL WINAPI NtGdiAbortPath ( HDC  hdc)

Definition at line 2474 of file path.c.

2475{
2476 PDC dc = DC_LockDc(hDC);
2477 if (!dc)
2478 {
2480 return FALSE;
2481 }
2482
2483 if (!dc->dclevel.hPath)
2484 {
2485 DC_UnlockDc(dc);
2486 return TRUE;
2487 }
2488
2489 if (!PATH_Delete(dc->dclevel.hPath))
2490 {
2491 DC_UnlockDc(dc);
2492 return FALSE;
2493 }
2494
2495 dc->dclevel.hPath = 0;
2496 dc->dclevel.flPath &= ~DCPATH_ACTIVE;
2497
2498 DC_UnlockDc(dc);
2499 return TRUE;
2500}
static HDC hDC
Definition: 3dtext.c:33
HDC dc
Definition: cylfrac.c:34
FORCEINLINE VOID DC_UnlockDc(PDC pdc)
Definition: dc.h:238
FORCEINLINE PDC DC_LockDc(HDC hdc)
Definition: dc.h:220
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define ERROR_INVALID_HANDLE
Definition: compat.h:98
Definition: polytest.cpp:41
BOOL FASTCALL PATH_Delete(HPATH hPath)
Definition: path.c:90
ENGAPI VOID APIENTRY EngSetLastError(_In_ ULONG iError)
Definition: error.c:21

◆ NtGdiAddFontMemResourceEx()

W32KAPI HANDLE WINAPI NtGdiAddFontMemResourceEx ( void ptr,
DWORD  size,
void dv,
ULONG  dv_size,
DWORD count 
)

◆ NtGdiAddFontResourceW()

W32KAPI INT WINAPI NtGdiAddFontResourceW ( const WCHAR str,
ULONG  size,
ULONG  files,
DWORD  flags,
DWORD  tid,
void dv 
)

◆ NtGdiAlphaBlend()

W32KAPI BOOL WINAPI NtGdiAlphaBlend ( HDC  hdc_dst,
int  x_dst,
int  y_dst,
int  width_dst,
int  height_dst,
HDC  hdc_src,
int  x_src,
int  y_src,
int  width_src,
int  height_src,
DWORD  blend_function,
HANDLE  xform 
)

◆ NtGdiAngleArc()

W32KAPI BOOL WINAPI NtGdiAngleArc ( HDC  hdc,
INT  x,
INT  y,
DWORD  radius,
DWORD  start_angle,
DWORD  sweep_angle 
)

◆ NtGdiArcInternal()

W32KAPI BOOL WINAPI NtGdiArcInternal ( UINT  type,
HDC  hdc,
INT  left,
INT  top,
INT  right,
INT  bottom,
INT  xstart,
INT  ystart,
INT  xend,
INT  yend 
)

◆ NtGdiBeginPath()

W32KAPI BOOL WINAPI NtGdiBeginPath ( HDC  hdc)

Definition at line 2504 of file path.c.

2505{
2506 PPATH pPath;
2507 PDC dc;
2508
2509 dc = DC_LockDc(hDC);
2510 if (!dc)
2511 {
2513 return FALSE;
2514 }
2515
2516 /* If path is already open, do nothing. Check if not Save DC state */
2517 if ((dc->dclevel.flPath & DCPATH_ACTIVE) && !(dc->dclevel.flPath & DCPATH_SAVE))
2518 {
2519 DC_UnlockDc(dc);
2520 return TRUE;
2521 }
2522
2523 if (dc->dclevel.hPath)
2524 {
2525 TRACE("BeginPath 1 0x%p\n", dc->dclevel.hPath);
2526 if (!(dc->dclevel.flPath & DCPATH_SAVE))
2527 {
2528 // Remove previous handle.
2529 if (!PATH_Delete(dc->dclevel.hPath))
2530 {
2531 DC_UnlockDc(dc);
2532 return FALSE;
2533 }
2534 }
2535 else
2536 {
2537 // Clear flags and Handle.
2538 dc->dclevel.flPath &= ~(DCPATH_SAVE | DCPATH_ACTIVE);
2539 dc->dclevel.hPath = NULL;
2540 }
2541 }
2543 dc->dclevel.flPath |= DCPATH_ACTIVE; // Set active ASAP!
2544 dc->dclevel.hPath = pPath->BaseObject.hHmgr;
2545 IntGetCurrentPositionEx(dc, &pPath->pos);
2546 IntLPtoDP( dc, &pPath->pos, 1 );
2547 TRACE("BP : Current pos X %d Y %d\n",pPath->pos.x, pPath->pos.y);
2548 PATH_UnlockPath(pPath);
2549 DC_UnlockDc(dc);
2550
2551 if (!pPath)
2552 {
2553 return FALSE;
2554 }
2555 return TRUE;
2556}
HGDIOBJ hHmgr(VOID)
Definition: baseobj.hpp:95
static BOOLEAN IntLPtoDP(DC *pdc, PPOINTL ppt, UINT count)
Definition: coord.h:182
#define NULL
Definition: types.h:112
#define PATH_UnlockPath(pPath)
Definition: path.h:71
@ DCPATH_SAVE
Definition: path.h:7
@ DCPATH_ACTIVE
Definition: path.h:6
#define TRACE(s)
Definition: solgame.cpp:4
Definition: path.h:35
POINT pos
Definition: path.h:58
BASEOBJECT BaseObject
Definition: path.h:36
long y
Definition: polytest.cpp:48
long x
Definition: polytest.cpp:48
VOID FASTCALL IntGetCurrentPositionEx(PDC dc, LPPOINT pt)
Definition: line.c:130
#define NUM_ENTRIES_INITIAL
Definition: path.c:21
PPATH FASTCALL PATH_CreatePath(int count)
Definition: path.c:35

◆ NtGdiBitBlt()

W32KAPI BOOL WINAPI NtGdiBitBlt ( HDC  hdc_dst,
INT  x_dst,
INT  y_dst,
INT  width,
INT  height,
HDC  hdc_src,
INT  x_src,
INT  y_src,
DWORD  rop,
DWORD  bk_color,
FLONG  fl 
)

◆ NtGdiCancelDC()

W32KAPI BOOL WINAPI NtGdiCancelDC ( HDC  hdc)

Definition at line 414 of file dcutil.c.

415{
417 return FALSE;
418}

◆ NtGdiCloseFigure()

W32KAPI BOOL WINAPI NtGdiCloseFigure ( HDC  hdc)

Definition at line 2560 of file path.c.

2561{
2562 BOOL Ret = FALSE; // Default to failure
2563 PDC pDc;
2564 PPATH pPath;
2565
2566 TRACE("Enter %s\n", __FUNCTION__);
2567
2568 pDc = DC_LockDc(hDC);
2569 if (!pDc)
2570 {
2572 return FALSE;
2573 }
2574
2575 pPath = PATH_LockPath(pDc->dclevel.hPath);
2576 if (!pPath)
2577 {
2578 DC_UnlockDc(pDc);
2579 return FALSE;
2580 }
2581
2582 if (pPath->state == PATH_Open)
2583 {
2584 IntGdiCloseFigure(pPath);
2585 Ret = TRUE;
2586 }
2587 else
2588 {
2590 }
2591
2592 PATH_UnlockPath(pPath);
2593 DC_UnlockDc(pDc);
2594 return Ret;
2595}
#define ERROR_INVALID_PARAMETER
Definition: compat.h:101
#define __FUNCTION__
Definition: types.h:116
unsigned int BOOL
Definition: ntddk_ex.h:94
@ PATH_Open
Definition: path.h:19
#define PATH_LockPath(hPath)
Definition: path.h:70
FLONG state
Definition: path.h:52
VOID FASTCALL IntGdiCloseFigure(PPATH pPath)
Definition: path.c:108
#define ERROR_CAN_NOT_COMPLETE
Definition: winerror.h:906

◆ NtGdiCombineRgn()

W32KAPI INT WINAPI NtGdiCombineRgn ( HRGN  dest,
HRGN  src1,
HRGN  src2,
INT  mode 
)

◆ NtGdiComputeXformCoefficients()

W32KAPI BOOL WINAPI NtGdiComputeXformCoefficients ( HDC  hdc)

◆ NtGdiCreateBitmap()

W32KAPI HBITMAP WINAPI NtGdiCreateBitmap ( INT  width,
INT  height,
UINT  planes,
UINT  bpp,
const void bits 
)

◆ NtGdiCreateClientObj()

W32KAPI HANDLE WINAPI NtGdiCreateClientObj ( ULONG  type)

◆ NtGdiCreateCompatibleBitmap()

W32KAPI HBITMAP WINAPI NtGdiCreateCompatibleBitmap ( HDC  hdc,
INT  width,
INT  height 
)

Definition at line 416 of file bitmaps.c.

420{
421 HBITMAP Bmp;
422 PDC Dc;
423
424 /* Check parameters */
425 if ((Width <= 0) || (Height <= 0) || ((Width * Height) > 0x3FFFFFFF))
426 {
428 return NULL;
429 }
430
431 if (!hDC)
432 return GreCreateBitmap(Width, Height, 1, 1, 0);
433
434 Dc = DC_LockDc(hDC);
435
436 DPRINT("NtGdiCreateCompatibleBitmap(%p,%d,%d, bpp:%u) = \n",
437 hDC, Width, Height, Dc->ppdev->gdiinfo.cBitsPixel);
438
439 if (NULL == Dc)
440 {
442 return NULL;
443 }
444
445 Bmp = IntCreateCompatibleBitmap(Dc, Width, Height, 0, 0);
446
447 DC_UnlockDc(Dc);
448 return Bmp;
449}
HBITMAP FASTCALL IntCreateCompatibleBitmap(PDC Dc, INT Width, INT Height, UINT Planes, UINT Bpp)
Definition: bitmaps.c:273
HBITMAP NTAPI GreCreateBitmap(_In_ ULONG nWidth, _In_ ULONG nHeight, _In_ ULONG cPlanes, _In_ ULONG cBitsPixel, _In_opt_ PVOID pvBits)
Definition: bitmaps.c:172
static HBITMAP
Definition: button.c:44
#define DPRINT
Definition: sndvol32.h:73
_In_ HFONT _Out_ PUINT _Out_ PUINT Width
Definition: font.h:89
_In_ HFONT _Out_ PUINT Height
Definition: font.h:88

◆ NtGdiCreateCompatibleDC()

W32KAPI HDC WINAPI NtGdiCreateCompatibleDC ( HDC  hdc)

Definition at line 884 of file dclife.c.

885{
886 /* Call the internal function to create a normal memory DC */
888}
HDC APIENTRY GreCreateCompatibleDC(HDC hdc, BOOL bAltDc)
Definition: dclife.c:817
HDC hdc
Definition: main.c:9

Referenced by IntGdiCreateDisplayDC().

◆ NtGdiCreateDIBBrush()

W32KAPI HBRUSH WINAPI NtGdiCreateDIBBrush ( const void data,
UINT  coloruse,
UINT  size,
BOOL  is_8x8,
BOOL  pen,
const void client 
)

◆ NtGdiCreateDIBitmapInternal()

W32KAPI HBITMAP WINAPI NtGdiCreateDIBitmapInternal ( HDC  hdc,
INT  width,
INT  height,
DWORD  init,
const void bits,
const BITMAPINFO data,
UINT  coloruse,
UINT  max_info,
UINT  max_bits,
ULONG  flags,
HANDLE  xform 
)

◆ NtGdiCreateDIBSection()

W32KAPI HBITMAP WINAPI NtGdiCreateDIBSection ( HDC  hdc,
HANDLE  section,
DWORD  offset,
const BITMAPINFO bmi,
UINT  usage,
UINT  header_size,
ULONG  flags,
ULONG_PTR  color_space,
void **  bits 
)

◆ NtGdiCreateEllipticRgn()

W32KAPI HRGN WINAPI NtGdiCreateEllipticRgn ( INT  left,
INT  top,
INT  right,
INT  bottom 
)

Definition at line 3570 of file region.c.

3578{
3579 return NtGdiCreateRoundRectRgn(Left,
3580 Top,
3581 Right, Bottom,
static LPHIST_ENTRY Bottom
Definition: history.c:54
static LPHIST_ENTRY Top
Definition: history.c:53
HRGN APIENTRY NtGdiCreateRoundRectRgn(INT left, INT top, INT right, INT bottom, INT ellipse_width, INT ellipse_height)
Definition: region.c:3614

◆ NtGdiCreateHalftonePalette()

W32KAPI HPALETTE WINAPI NtGdiCreateHalftonePalette ( HDC  hdc)

Definition at line 527 of file palette.c.

528{
529 int i, r, g, b;
530 PALETTEENTRY PalEntries[256];
531 PPALETTE ppal;
532 PDC pdc;
533 HPALETTE hpal = NULL;
534
535 pdc = DC_LockDc(hDC);
536 if (!pdc)
537 {
539 return NULL;
540 }
541
542 RtlZeroMemory(PalEntries, sizeof(PalEntries));
543
544 /* First and last ten entries are default ones */
545 for (i = 0; i < 10; i++)
546 {
547 PalEntries[i].peRed = g_sysPalTemplate[i].peRed;
548 PalEntries[i].peGreen = g_sysPalTemplate[i].peGreen;
549 PalEntries[i].peBlue = g_sysPalTemplate[i].peBlue;
550
551 PalEntries[246 + i].peRed = g_sysPalTemplate[10 + i].peRed;
552 PalEntries[246 + i].peGreen = g_sysPalTemplate[10 + i].peGreen;
553 PalEntries[246 + i].peBlue = g_sysPalTemplate[10 + i].peBlue;
554 }
555
556 ppal = PALETTE_ShareLockPalette(pdc->dclevel.hpal);
557 if (ppal && (ppal->flFlags & PAL_INDEXED))
558 {
559 /* FIXME: optimize the palette for the current palette */
561 }
562 else
563 {
564 for (r = 0; r < 6; r++)
565 {
566 for (g = 0; g < 6; g++)
567 {
568 for (b = 0; b < 6; b++)
569 {
570 i = r + g*6 + b*36 + 10;
571 PalEntries[i].peRed = r * 51;
572 PalEntries[i].peGreen = g * 51;
573 PalEntries[i].peBlue = b * 51;
574 }
575 }
576 }
577
578 for (i = 216; i < 246; i++)
579 {
580 int v = (i - 216) << 3;
581 PalEntries[i].peRed = v;
582 PalEntries[i].peGreen = v;
583 PalEntries[i].peBlue = v;
584 }
585 }
586
587 if (ppal)
589
590 DC_UnlockDc(pdc);
591
592 ppal = PALETTE_AllocPalWithHandle(PAL_INDEXED, 256, PalEntries, 0, 0, 0);
593 if (ppal)
594 {
595 hpal = ppal->BaseObject.hHmgr;
597 }
598
599 return hpal;
600}
const GLdouble * v
Definition: gl.h:2040
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
GLboolean GLboolean g
Definition: glext.h:6204
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define b
Definition: ke_i.h:79
BASEOBJECT BaseObject
Definition: palette.h:36
FLONG flFlags
Definition: palette.h:40
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
const PALETTEENTRY g_sysPalTemplate[NB_RESERVED_COLORS]
Definition: palette.c:23
PPALETTE NTAPI PALETTE_AllocPalWithHandle(_In_ ULONG iMode, _In_ ULONG cColors, _In_opt_ const PALETTEENTRY *pEntries, _In_ FLONG flRed, _In_ FLONG flGreen, _In_ FLONG flBlue)
Definition: palette.c:212
#define PALETTE_UnlockPalette(pPalette)
Definition: palette.h:56
#define PALETTE_ShareLockPalette(hpal)
Definition: palette.h:57
#define PALETTE_ShareUnlockPalette(ppal)
Definition: palette.h:59
#define PAL_INDEXED
Definition: winddi.h:1561

◆ NtGdiCreateHatchBrushInternal()

W32KAPI HBRUSH WINAPI NtGdiCreateHatchBrushInternal ( INT  style,
COLORREF  color,
BOOL  pen 
)

◆ NtGdiCreateMetafileDC()

W32KAPI HDC WINAPI NtGdiCreateMetafileDC ( HDC  hdc)

◆ NtGdiCreatePaletteInternal()

W32KAPI HPALETTE WINAPI NtGdiCreatePaletteInternal ( const LOGPALETTE palette,
UINT  count 
)

◆ NtGdiCreatePatternBrushInternal()

W32KAPI HBRUSH WINAPI NtGdiCreatePatternBrushInternal ( HBITMAP  hbitmap,
BOOL  pen,
BOOL  is_8x8 
)

◆ NtGdiCreatePen()

W32KAPI HPEN WINAPI NtGdiCreatePen ( INT  style,
INT  width,
COLORREF  color,
HBRUSH  brush 
)

◆ NtGdiCreateRectRgn()

W32KAPI HRGN WINAPI NtGdiCreateRectRgn ( INT  left,
INT  top,
INT  right,
INT  bottom 
)

Definition at line 3585 of file region.c.

3593{
3594 PREGION pRgn;
3595 HRGN hRgn;
3596
3597 /* Allocate region data structure with space for 1 RECTL */
3599 if (pRgn == NULL)
3600 {
3602 return NULL;
3603 }
3604
3605 hRgn = pRgn->BaseObject.hHmgr;
3606
3607 REGION_SetRectRgn(pRgn, LeftRect, TopRect, RightRect, BottomRect);
3608 REGION_UnlockRgn(pRgn);
3609
3610 DPRINT("Returning %p.\n", hRgn);
#define ERROR_NOT_ENOUGH_MEMORY
Definition: dderror.h:7
static HRGN hRgn
Definition: mapping.c:32
Definition: region.h:8
BASEOBJECT BaseObject
Definition: region.h:11
VOID FASTCALL REGION_SetRectRgn(PREGION rgn, INT LeftRect, INT TopRect, INT RightRect, INT BottomRect)
Definition: region.c:2665
VOID FASTCALL REGION_UnlockRgn(_In_ PREGION prgn)
Definition: region.c:2373
PREGION FASTCALL REGION_AllocUserRgnWithHandle(INT nRgn)
Definition: region.c:2294

◆ NtGdiCreateRoundRectRgn()

W32KAPI HRGN WINAPI NtGdiCreateRoundRectRgn ( INT  left,
INT  top,
INT  right,
INT  bottom,
INT  ellipse_width,
INT  ellipse_height 
)

Definition at line 3614 of file region.c.

3624{
3625 PREGION obj;
3626 HRGN hrgn;
3627 int a, b, i, x, y;
3628 INT64 asq, bsq, dx, dy, err;
3629 RECT *rects;
3630
3631 /* Make the dimensions sensible */
3632 if (left > right)
3633 {
3634 INT tmp = left;
3635 left = right;
3636 right = tmp;
3637 }
3638
3639 if (top > bottom)
3640 {
3641 INT tmp = top;
3642 top = bottom;
3643 bottom = tmp;
3644 }
3645
3646 /* the region is for the rectangle interior, but only at right and bottom for some reason */
3647 right--;
3648 bottom--;
3649
3650 ellipse_width = min( right - left, abs( ellipse_width ));
3651 ellipse_height = min( bottom - top, abs( ellipse_height ));
3652
3653 /* Check if we can do a normal rectangle instead */
3654
3655 if ((ellipse_width < 2) || (ellipse_height < 2))
3657
3658 obj = REGION_AllocUserRgnWithHandle( ellipse_height );
3659 if (obj == NULL)
3660 return 0;
3661
3662 hrgn = obj->BaseObject.hHmgr;
3663
3664 obj->rdh.rcBound.left = left;
3665 obj->rdh.rcBound.top = top;
3666 obj->rdh.rcBound.right = right;
3667 obj->rdh.rcBound.bottom = bottom;
3668 rects = obj->Buffer;
3669
3670 /* based on an algorithm by Alois Zingl */
3671
3672 a = ellipse_width - 1;
3673 b = ellipse_height - 1;
3674 asq = (INT64)8 * a * a;
3675 bsq = (INT64)8 * b * b;
3676 dx = (INT64)4 * b * b * (1 - a);
3677 dy = (INT64)4 * a * a * (1 + (b % 2));
3678 err = dx + dy + a * a * (b % 2);
3679
3680 x = 0;
3681 y = ellipse_height / 2;
3682
3683 rects[y].left = left;
3684 rects[y].right = right;
3685
3686 while (x <= ellipse_width / 2)
3687 {
3688 INT64 e2 = 2 * err;
3689 if (e2 >= dx)
3690 {
3691 x++;
3692 err += dx += bsq;
3693 }
3694 if (e2 <= dy)
3695 {
3696 y++;
3697 err += dy += asq;
3698 rects[y].left = left + x;
3699 rects[y].right = right - x;
3700 }
3701 }
3702 for (i = 0; i < ellipse_height / 2; i++)
3703 {
3704 rects[i].left = rects[b - i].left;
3705 rects[i].right = rects[b - i].right;
3706 rects[i].top = top + i;
3707 rects[i].bottom = rects[i].top + 1;
3708 }
3709 for (; i < ellipse_height; i++)
3710 {
3711 rects[i].top = bottom - ellipse_height + i;
3712 rects[i].bottom = rects[i].top + 1;
3713 }
3714 rects[ellipse_height / 2].top = top + ellipse_height / 2; /* extend to top of rectangle */
3715
static HRGN hrgn
COMPILER_DEPENDENT_INT64 INT64
Definition: actypes.h:132
#define abs(i)
Definition: fconv.c:206
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
GLdouble GLdouble GLdouble GLdouble top
Definition: glext.h:10859
GLdouble GLdouble right
Definition: glext.h:10859
GLint left
Definition: glext.h:7726
GLint GLint bottom
Definition: glext.h:7726
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204
#define a
Definition: ke_i.h:78
GLint dy
Definition: linetemp.h:97
GLint dx
Definition: linetemp.h:97
#define min(a, b)
Definition: monoChain.cc:55
#define err(...)
LONG right
Definition: windef.h:108
LONG bottom
Definition: windef.h:109
LONG top
Definition: windef.h:107
LONG left
Definition: windef.h:106
int32_t INT
Definition: typedefs.h:58
HRGN APIENTRY NtGdiCreateRectRgn(INT LeftRect, INT TopRect, INT RightRect, INT BottomRect)
Definition: region.c:3585

Referenced by NtGdiCreateEllipticRgn().

◆ NtGdiCreateSolidBrush()

W32KAPI HBRUSH WINAPI NtGdiCreateSolidBrush ( COLORREF  color,
HBRUSH  brush 
)

◆ NtGdiDdDDICheckVidPnExclusiveOwnership()

W32KAPI NTSTATUS WINAPI NtGdiDdDDICheckVidPnExclusiveOwnership ( const D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP desc)

◆ NtGdiDdDDICloseAdapter()

W32KAPI NTSTATUS WINAPI NtGdiDdDDICloseAdapter ( const D3DKMT_CLOSEADAPTER desc)

◆ NtGdiDdDDICreateAllocation()

W32KAPI NTSTATUS WINAPI NtGdiDdDDICreateAllocation ( D3DKMT_CREATEALLOCATION params)

◆ NtGdiDdDDICreateAllocation2()

W32KAPI NTSTATUS WINAPI NtGdiDdDDICreateAllocation2 ( D3DKMT_CREATEALLOCATION params)

◆ NtGdiDdDDICreateDCFromMemory()

W32KAPI NTSTATUS WINAPI NtGdiDdDDICreateDCFromMemory ( D3DKMT_CREATEDCFROMMEMORY desc)

Definition at line 13 of file d3dkmt.c.

14{
15 PSURFACE psurf;
16 HDC hDC;
17
18 const struct d3dddi_format_info
19 {
21 unsigned int bit_count;
23 unsigned int palette_size;
24 DWORD mask_r, mask_g, mask_b;
25 } *format = NULL;
26 unsigned int i;
27
28 static const struct d3dddi_format_info format_info[] =
29 {
30 { D3DDDIFMT_R8G8B8, 24, BI_RGB, 0, 0x00000000, 0x00000000, 0x00000000 },
31 { D3DDDIFMT_A8R8G8B8, 32, BI_RGB, 0, 0x00000000, 0x00000000, 0x00000000 },
32 { D3DDDIFMT_X8R8G8B8, 32, BI_RGB, 0, 0x00000000, 0x00000000, 0x00000000 },
33 { D3DDDIFMT_R5G6B5, 16, BI_BITFIELDS, 0, 0x0000f800, 0x000007e0, 0x0000001f },
34 { D3DDDIFMT_X1R5G5B5, 16, BI_BITFIELDS, 0, 0x00007c00, 0x000003e0, 0x0000001f },
35 { D3DDDIFMT_A1R5G5B5, 16, BI_BITFIELDS, 0, 0x00007c00, 0x000003e0, 0x0000001f },
36 { D3DDDIFMT_A4R4G4B4, 16, BI_BITFIELDS, 0, 0x00000f00, 0x000000f0, 0x0000000f },
37 { D3DDDIFMT_X4R4G4B4, 16, BI_BITFIELDS, 0, 0x00000f00, 0x000000f0, 0x0000000f },
38 { D3DDDIFMT_P8, 8, BI_RGB, 256, 0x00000000, 0x00000000, 0x00000000 },
39 };
40
41 if (!desc)
43
44 if (!desc->pMemory)
46
47 for (i = 0; i < sizeof(format_info) / sizeof(*format_info); ++i)
48 {
49 if (format_info[i].format == desc->Format)
50 {
52 break;
53 }
54 }
55
56 if (!format)
58
59 if (desc->Width > (UINT_MAX & ~3) / (format->bit_count / 8) ||
60 !desc->Pitch || desc->Pitch < (((desc->Width * format->bit_count + 31) >> 3) & ~3) ||
61 !desc->Height || desc->Height > UINT_MAX / desc->Pitch)
62 {
64 }
65
66 if (!desc->hDeviceDc || !(hDC = NtGdiCreateCompatibleDC(desc->hDeviceDc)))
67 {
69 }
70
71 /* Allocate a surface */
73 desc->Width,
74 desc->Height,
75 BitmapFormat(format->bit_count, format->compression),
77 desc->Pitch,
78 0,
79 desc->pMemory);
80
81 /* Mark as API bitmap */
82 psurf->flags |= (DDB_SURFACE | API_BITMAP);
83
84 desc->hDc = hDC;
85 /* Get the handle for the bitmap */
86 desc->hBitmap = (HBITMAP)psurf->SurfObj.hsurf;
87
88 /* Allocate a palette for this surface */
89 if (format->bit_count <= 8)
90 {
91 PPALETTE palette = PALETTE_AllocPalette(PAL_INDEXED, 1 << format->bit_count, NULL, 0, 0, 0);
92 if (palette)
93 {
96 }
97 }
98
99 /* Unlock the surface and return */
101
102 NtGdiSelectBitmap(desc->hDc, desc->hBitmap);
103
104 return STATUS_SUCCESS;
105}
_In_ fcb _In_ chunk _In_ uint64_t _In_ uint64_t _In_ bool _In_opt_ void _In_opt_ PIRP _In_ LIST_ENTRY _In_ uint8_t compression
Definition: btrfs_drv.h:1365
format_info
static unsigned int palette_size(DWORD flags)
Definition: palette.c:241
#define UINT_MAX
Definition: limits.h:27
unsigned long DWORD
Definition: ntddk_ex.h:95
if(dx< 0)
Definition: linetemp.h:194
#define BI_BITFIELDS
Definition: mmreg.h:507
static HDC
Definition: imagelist.c:88
D3D11_SHADER_VARIABLE_DESC desc
Definition: reflection.c:1204
static HPALETTE palette
Definition: clipboard.c:1457
__kernel_entry W32KAPI HDC APIENTRY NtGdiCreateCompatibleDC(_In_opt_ HDC hdc)
__kernel_entry W32KAPI HBITMAP APIENTRY NtGdiSelectBitmap(_In_ HDC hdc, _In_ HBITMAP hbm)
#define STATUS_SUCCESS
Definition: shellext.h:65
SURFOBJ SurfObj
Definition: surface.h:8
FLONG flags
Definition: surface.h:10
HSURF hsurf
Definition: winddi.h:1206
Definition: format.c:58
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135
#define BI_RGB
Definition: uefivid.c:46
ULONG FASTCALL BitmapFormat(ULONG cBits, ULONG iCompression)
Definition: surface.c:39
PSURFACE NTAPI SURFACE_AllocSurface(_In_ USHORT iType, _In_ ULONG cx, _In_ ULONG cy, _In_ ULONG iFormat, _In_ ULONG fjBitmap, _In_opt_ ULONG cjWidth, _In_opt_ ULONG cjBufSize, _In_opt_ PVOID pvBits)
Definition: surface.c:116
FORCEINLINE VOID SURFACE_vSetPalette(_Inout_ PSURFACE psurf, _In_ PPALETTE ppal)
Definition: surface.h:136
@ API_BITMAP
Definition: surface.h:76
@ DDB_SURFACE
Definition: surface.h:73
#define SURFACE_UnlockSurface(pBMObj)
Definition: surface.h:100
PPALETTE NTAPI PALETTE_AllocPalette(_In_ ULONG iMode, _In_ ULONG cColors, _In_opt_ const PALETTEENTRY *pEntries, _In_ FLONG flRed, _In_ FLONG flGreen, _In_ FLONG flBlue)
Definition: palette.c:135
#define STYPE_BITMAP
Definition: winddi.h:1175
#define BMF_TOPDOWN
Definition: winddi.h:1180
#define BMF_NOZEROINIT
Definition: winddi.h:1181
@ D3DDDIFMT_A8R8G8B8
Definition: d3dukmdt.h:34
@ D3DDDIFMT_P8
Definition: d3dukmdt.h:51
@ D3DDDIFMT_R5G6B5
Definition: d3dukmdt.h:36
@ D3DDDIFMT_R8G8B8
Definition: d3dukmdt.h:33
@ D3DDDIFMT_A4R4G4B4
Definition: d3dukmdt.h:39
@ D3DDDIFMT_X4R4G4B4
Definition: d3dukmdt.h:43
@ D3DDDIFMT_X8R8G8B8
Definition: d3dukmdt.h:35
@ D3DDDIFMT_A1R5G5B5
Definition: d3dukmdt.h:38
@ D3DDDIFMT_X1R5G5B5
Definition: d3dukmdt.h:37
enum _D3DDDIFORMAT D3DDDIFORMAT

◆ NtGdiDdDDICreateDevice()

W32KAPI NTSTATUS WINAPI NtGdiDdDDICreateDevice ( D3DKMT_CREATEDEVICE desc)

◆ NtGdiDdDDICreateKeyedMutex()

W32KAPI NTSTATUS WINAPI NtGdiDdDDICreateKeyedMutex ( D3DKMT_CREATEKEYEDMUTEX params)

◆ NtGdiDdDDICreateKeyedMutex2()

W32KAPI NTSTATUS WINAPI NtGdiDdDDICreateKeyedMutex2 ( D3DKMT_CREATEKEYEDMUTEX2 params)

◆ NtGdiDdDDICreateSynchronizationObject()

W32KAPI NTSTATUS WINAPI NtGdiDdDDICreateSynchronizationObject ( D3DKMT_CREATESYNCHRONIZATIONOBJECT params)

◆ NtGdiDdDDICreateSynchronizationObject2()

W32KAPI NTSTATUS WINAPI NtGdiDdDDICreateSynchronizationObject2 ( D3DKMT_CREATESYNCHRONIZATIONOBJECT2 params)

◆ NtGdiDdDDIDestroyAllocation()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIDestroyAllocation ( const D3DKMT_DESTROYALLOCATION params)

◆ NtGdiDdDDIDestroyAllocation2()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIDestroyAllocation2 ( const D3DKMT_DESTROYALLOCATION2 params)

◆ NtGdiDdDDIDestroyDCFromMemory()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIDestroyDCFromMemory ( const D3DKMT_DESTROYDCFROMMEMORY desc)

Definition at line 109 of file d3dkmt.c.

110{
111 if (!desc)
113
117
118 NtGdiDeleteObjectApp(desc->hBitmap);
120
121 return STATUS_SUCCESS;
122}
#define GDI_OBJECT_TYPE_DC
Definition: gdi.h:46
#define GDI_HANDLE_GET_TYPE(h)
Definition: gdi.h:31
#define GDI_OBJECT_TYPE_BITMAP
Definition: gdi.h:48
__kernel_entry W32KAPI BOOL APIENTRY NtGdiDeleteObjectApp(_In_ HANDLE hobj)

◆ NtGdiDdDDIDestroyDevice()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIDestroyDevice ( const D3DKMT_DESTROYDEVICE desc)

◆ NtGdiDdDDIDestroyKeyedMutex()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIDestroyKeyedMutex ( const D3DKMT_DESTROYKEYEDMUTEX params)

◆ NtGdiDdDDIDestroySynchronizationObject()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIDestroySynchronizationObject ( const D3DKMT_DESTROYSYNCHRONIZATIONOBJECT params)

◆ NtGdiDdDDIEnumAdapters()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIEnumAdapters ( D3DKMT_ENUMADAPTERS desc)

◆ NtGdiDdDDIEnumAdapters2()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIEnumAdapters2 ( D3DKMT_ENUMADAPTERS2 desc)

◆ NtGdiDdDDIEscape()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIEscape ( const D3DKMT_ESCAPE desc)

◆ NtGdiDdDDIOpenAdapterFromDeviceName()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenAdapterFromDeviceName ( D3DKMT_OPENADAPTERFROMDEVICENAME desc)

◆ NtGdiDdDDIOpenAdapterFromHdc()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenAdapterFromHdc ( D3DKMT_OPENADAPTERFROMHDC desc)

◆ NtGdiDdDDIOpenAdapterFromLuid()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenAdapterFromLuid ( D3DKMT_OPENADAPTERFROMLUID desc)

◆ NtGdiDdDDIOpenKeyedMutex()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenKeyedMutex ( D3DKMT_OPENKEYEDMUTEX params)

◆ NtGdiDdDDIOpenKeyedMutex2()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenKeyedMutex2 ( D3DKMT_OPENKEYEDMUTEX2 params)

◆ NtGdiDdDDIOpenKeyedMutexFromNtHandle()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenKeyedMutexFromNtHandle ( D3DKMT_OPENKEYEDMUTEXFROMNTHANDLE params)

◆ NtGdiDdDDIOpenResource()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenResource ( D3DKMT_OPENRESOURCE params)

◆ NtGdiDdDDIOpenResource2()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenResource2 ( D3DKMT_OPENRESOURCE params)

◆ NtGdiDdDDIOpenResourceFromNtHandle()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenResourceFromNtHandle ( D3DKMT_OPENRESOURCEFROMNTHANDLE params)

◆ NtGdiDdDDIOpenSynchronizationObject()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenSynchronizationObject ( D3DKMT_OPENSYNCHRONIZATIONOBJECT params)

◆ NtGdiDdDDIOpenSyncObjectFromNtHandle()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenSyncObjectFromNtHandle ( D3DKMT_OPENSYNCOBJECTFROMNTHANDLE params)

◆ NtGdiDdDDIOpenSyncObjectFromNtHandle2()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenSyncObjectFromNtHandle2 ( D3DKMT_OPENSYNCOBJECTFROMNTHANDLE2 params)

◆ NtGdiDdDDIOpenSyncObjectNtHandleFromName()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIOpenSyncObjectNtHandleFromName ( D3DKMT_OPENSYNCOBJECTNTHANDLEFROMNAME params)

◆ NtGdiDdDDIQueryAdapterInfo()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIQueryAdapterInfo ( D3DKMT_QUERYADAPTERINFO desc)

◆ NtGdiDdDDIQueryResourceInfo()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIQueryResourceInfo ( D3DKMT_QUERYRESOURCEINFO params)

◆ NtGdiDdDDIQueryResourceInfoFromNtHandle()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIQueryResourceInfoFromNtHandle ( D3DKMT_QUERYRESOURCEINFOFROMNTHANDLE params)

◆ NtGdiDdDDIQueryStatistics()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIQueryStatistics ( D3DKMT_QUERYSTATISTICS stats)

◆ NtGdiDdDDIQueryVideoMemoryInfo()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIQueryVideoMemoryInfo ( D3DKMT_QUERYVIDEOMEMORYINFO desc)

◆ NtGdiDdDDISetQueuedLimit()

W32KAPI NTSTATUS WINAPI NtGdiDdDDISetQueuedLimit ( D3DKMT_SETQUEUEDLIMIT desc)

◆ NtGdiDdDDISetVidPnSourceOwner()

W32KAPI NTSTATUS WINAPI NtGdiDdDDISetVidPnSourceOwner ( const D3DKMT_SETVIDPNSOURCEOWNER desc)

◆ NtGdiDdDDIShareObjects()

W32KAPI NTSTATUS WINAPI NtGdiDdDDIShareObjects ( UINT  count,
const D3DKMT_HANDLE handles,
OBJECT_ATTRIBUTES attr,
UINT  access,
HANDLE handle 
)

◆ NtGdiDeleteClientObj()

W32KAPI BOOL WINAPI NtGdiDeleteClientObj ( HGDIOBJ  obj)

◆ NtGdiDeleteObjectApp()

W32KAPI BOOL WINAPI NtGdiDeleteObjectApp ( HGDIOBJ  obj)

Definition at line 950 of file dclife.c.

951{
952 if (GDI_HANDLE_IS_STOCKOBJ(hobj)) return TRUE;
953
955 {
957 return FALSE;
958 }
959
961 return GreDeleteObject(hobj);
962
963 // FIXME: Everything should be callback based
964 return IntGdiDeleteDC(hobj, FALSE);
965}
BOOL FASTCALL IntGdiDeleteDC(HDC hDC, BOOL Force)
Definition: dclife.c:892
#define GDI_HANDLE_IS_STOCKOBJ(h)
Definition: gdi.h:37
#define GDI_OBJ_HMGR_POWNED
Definition: ntgdihdl.h:117
BOOL NTAPI GreDeleteObject(HGDIOBJ hobj)
Definition: gdiobj.c:1165
ULONG NTAPI GreGetObjectOwner(HGDIOBJ hobj)
Definition: gdiobj.c:1199

◆ NtGdiDescribePixelFormat()

W32KAPI INT WINAPI NtGdiDescribePixelFormat ( HDC  hdc,
INT  format,
UINT  size,
PIXELFORMATDESCRIPTOR descr 
)

◆ NtGdiDoPalette()

W32KAPI LONG WINAPI NtGdiDoPalette ( HGDIOBJ  handle,
WORD  start,
WORD  count,
void entries,
DWORD  func,
BOOL  inbound 
)

◆ NtGdiDrawStream()

W32KAPI BOOL WINAPI NtGdiDrawStream ( HDC  hdc,
ULONG  in,
void pvin 
)

◆ NtGdiEllipse()

W32KAPI BOOL WINAPI NtGdiEllipse ( HDC  hdc,
INT  left,
INT  top,
INT  right,
INT  bottom 
)

◆ NtGdiEndDoc()

W32KAPI INT WINAPI NtGdiEndDoc ( HDC  hdc)

Definition at line 24 of file print.c.

25{
27 return 0;
28}

◆ NtGdiEndPage()

W32KAPI INT WINAPI NtGdiEndPage ( HDC  hdc)

Definition at line 32 of file print.c.

33{
35 return 0;
36}

◆ NtGdiEndPath()

W32KAPI BOOL WINAPI NtGdiEndPath ( HDC  hdc)

Definition at line 2599 of file path.c.

2600{
2601 BOOL ret = TRUE;
2602 PPATH pPath;
2603 PDC dc;
2604
2605 dc = DC_LockDc(hDC);
2606 if (!dc)
2607 {
2609 return FALSE;
2610 }
2611
2612 pPath = PATH_LockPath(dc->dclevel.hPath);
2613 if (!pPath)
2614 {
2615 DC_UnlockDc(dc);
2616 return FALSE;
2617 }
2618
2619 /* Check that path is currently being constructed */
2620 if ((pPath->state != PATH_Open) || !(dc->dclevel.flPath & DCPATH_ACTIVE))
2621 {
2622 TRACE("EndPath ERROR! 0x%p\n", dc->dclevel.hPath);
2624 ret = FALSE;
2625 }
2626 /* Set flag to indicate that path is finished */
2627 else
2628 {
2629 TRACE("EndPath 0x%p\n", dc->dclevel.hPath);
2630 pPath->state = PATH_Closed;
2631 dc->dclevel.flPath &= ~DCPATH_ACTIVE;
2632 }
2633
2634 PATH_UnlockPath(pPath);
2635 DC_UnlockDc(dc);
2636 return ret;
2637}
return ret
Definition: mutex.c:146
@ PATH_Closed
Definition: path.h:20

◆ NtGdiEnumFonts()

W32KAPI BOOL WINAPI NtGdiEnumFonts ( HDC  hdc,
ULONG  type,
ULONG  win32_compat,
ULONG  face_name_len,
const WCHAR face_name,
ULONG  charset,
ULONG count,
void buf 
)

◆ NtGdiEqualRgn()

W32KAPI BOOL WINAPI NtGdiEqualRgn ( HRGN  hrgn1,
HRGN  hrgn2 
)

Definition at line 3719 of file region.c.

3725{
3726 HRGN ahrgn[2];
3727 PREGION aprgn[2];
3728 PREGION rgn1, rgn2;
3729 PRECTL tRect1, tRect2;
3730 ULONG i;
3731 BOOL bRet = FALSE;
3732
3733 /* Check if we got 2 regions */
3734 if ((hSrcRgn1 == NULL) || (hSrcRgn2 == NULL))
3735 {
3736 return FALSE;
3737 }
3738
3739 /* Check if these are the same regions */
3740 if (hSrcRgn1 == hSrcRgn2)
3741 {
3742 /* Make sure this region is valid */
3744 GreIsHandleValid(hSrcRgn1))
3745 {
3746 return TRUE;
3747 }
3748 return FALSE;
3749 }
3750
3751 /* Lock both regions */
3752 ahrgn[0] = hSrcRgn1;
3753 ahrgn[1] = hSrcRgn2;
3755 {
3756 DPRINT1("NtGdiEqualRgn failed to lock regions: %p, %p\n",
3757 hSrcRgn1, hSrcRgn2);
3758 return FALSE;
3759 }
3760
3761 REGION_vSyncRegion(aprgn[0]);
3762 REGION_vSyncRegion(aprgn[1]);
3763
3764 rgn1 = aprgn[0];
3765 rgn2 = aprgn[1];
3766
3767 if (rgn1->rdh.nCount != rgn2->rdh.nCount)
3768 goto exit;
3769
3770 if (rgn1->rdh.nCount == 0)
3771 {
3772 bRet = TRUE;
3773 goto exit;
3774 }
3775
3776 if ((rgn1->rdh.rcBound.left != rgn2->rdh.rcBound.left) ||
3777 (rgn1->rdh.rcBound.right != rgn2->rdh.rcBound.right) ||
3778 (rgn1->rdh.rcBound.top != rgn2->rdh.rcBound.top) ||
3779 (rgn1->rdh.rcBound.bottom != rgn2->rdh.rcBound.bottom))
3780 goto exit;
3781
3782 tRect1 = rgn1->Buffer;
3783 tRect2 = rgn2->Buffer;
3784
3785 if ((tRect1 == NULL) || (tRect2 == NULL))
3786 goto exit;
3787
3788 for (i=0; i < rgn1->rdh.nCount; i++)
3789 {
3790 if ((tRect1[i].left != tRect2[i].left) ||
3791 (tRect1[i].right != tRect2[i].right) ||
3792 (tRect1[i].top != tRect2[i].top) ||
3793 (tRect1[i].bottom != tRect2[i].bottom))
3794 goto exit;
3795 }
3796
3797 bRet = TRUE;
3798
3799exit:
3800 REGION_UnlockRgn(rgn1);
#define DPRINT1
Definition: precomp.h:8
@ GDILoObjType_LO_REGION_TYPE
Definition: gdi_private.h:38
@ GDIObjType_RGN_TYPE
Definition: ntgdityp.h:124
#define exit(n)
Definition: config.h:202
RECTL * Buffer
Definition: region.h:16
RGNDATAHEADER rdh
Definition: region.h:15
uint32_t ULONG
Definition: typedefs.h:59
BOOL NTAPI GDIOBJ_bLockMultipleObjects(IN ULONG ulCount, IN HGDIOBJ *ahObj, OUT PGDIOBJ *apObj, IN UCHAR objt)
Definition: gdiobj.c:1038
BOOL NTAPI GreIsHandleValid(HGDIOBJ hobj)
Definition: gdiobj.c:1153
static VOID REGION_vSyncRegion(_In_ PREGION prgn)
Definition: region.c:2315

◆ NtGdiExcludeClipRect()

W32KAPI INT WINAPI NtGdiExcludeClipRect ( HDC  hdc,
INT  left,
INT  top,
INT  right,
INT  bottom 
)

◆ NtGdiExtCreatePen()

W32KAPI HPEN WINAPI NtGdiExtCreatePen ( DWORD  style,
DWORD  width,
ULONG  brush_style,
ULONG  color,
ULONG_PTR  client_hatch,
ULONG_PTR  hatch,
DWORD  style_count,
const DWORD style_bits,
ULONG  dib_size,
BOOL  old_style,
HBRUSH  brush 
)

◆ NtGdiExtCreateRegion()

W32KAPI HRGN WINAPI NtGdiExtCreateRegion ( const XFORM xform,
DWORD  count,
const RGNDATA data 
)

◆ NtGdiExtEscape()

W32KAPI INT WINAPI NtGdiExtEscape ( HDC  hdc,
WCHAR driver,
INT  driver_id,
INT  escape,
INT  input_size,
const char input,
INT  output_size,
char output 
)

◆ NtGdiExtFloodFill()

W32KAPI BOOL WINAPI NtGdiExtFloodFill ( HDC  hdc,
INT  x,
INT  y,
COLORREF  color,
UINT  type 
)

Definition at line 1159 of file fillshap.c.

1165{
1166 PDC dc;
1167#if 0
1168 PDC_ATTR pdcattr;
1169#endif
1170 SURFACE *psurf;
1171 EXLATEOBJ exlo;
1172 BOOL Ret = FALSE;
1173 RECTL DestRect;
1174 POINTL Pt;
1175 ULONG ConvColor;
1176 PREGION prgn;
1177
1178 dc = DC_LockDc(hDC);
1179 if (!dc)
1180 {
1182 return FALSE;
1183 }
1184
1185 if (!dc->dclevel.pSurface)
1186 {
1187 Ret = TRUE;
1188 goto cleanup;
1189 }
1190
1191#if 0
1192 pdcattr = dc->pdcattr;
1193#endif
1194
1195 Pt.x = XStart;
1196 Pt.y = YStart;
1197 IntLPtoDP(dc, (LPPOINT)&Pt, 1);
1198
1199 DC_vPrepareDCsForBlit(dc, &DestRect, NULL, NULL);
1200
1201 psurf = dc->dclevel.pSurface;
1202
1203 prgn = dc->prgnRao ? dc->prgnRao : dc->prgnVis;
1204 if (prgn)
1205 {
1206 Ret = REGION_PtInRegion(prgn, Pt.x, Pt.y);
1207 if (Ret)
1208 REGION_GetRgnBox(prgn, (LPRECT)&DestRect);
1209 else
1210 {
1212 goto cleanup;
1213 }
1214 }
1215 else
1216 {
1217 RECTL_vSetRect(&DestRect, 0, 0, psurf->SurfObj.sizlBitmap.cx, psurf->SurfObj.sizlBitmap.cy);
1218 }
1219
1220 if (dc->fs & (DC_ACCUM_APP|DC_ACCUM_WMGR))
1221 {
1222 IntUpdateBoundsRect(dc, &DestRect);
1223 }
1224
1225 EXLATEOBJ_vInitialize(&exlo, &gpalRGB, psurf->ppal, 0, 0xffffff, 0);
1226
1227 /* Only solid fills supported for now
1228 * How to support pattern brushes and non standard surfaces (not offering dib functions):
1229 * Version a (most likely slow): call DrvPatBlt for every pixel
1230 * Version b: create a flood mask and let MaskBlt blit a masked brush */
1231 ConvColor = XLATEOBJ_iXlate(&exlo.xlo, Color);
1232 Ret = DIB_XXBPP_FloodFillSolid(&psurf->SurfObj, &dc->eboFill.BrushObject, &DestRect, &Pt, ConvColor, FillType);
1233
1235
1236 EXLATEOBJ_vCleanup(&exlo);
1237
1238cleanup:
1239 DC_UnlockDc(dc);
1240 return Ret;
1241}
VOID FASTCALL DC_vPrepareDCsForBlit(PDC pdcDest, const RECT *rcDest, PDC pdcSrc, const RECT *rcSrc)
Definition: dclife.c:505
VOID FASTCALL DC_vFinishBlit(PDC pdc1, PDC pdc2)
Definition: dclife.c:614
VOID FASTCALL IntUpdateBoundsRect(PDC, PRECTL)
Definition: dcutil.c:694
@ DC_ACCUM_APP
Definition: dc.h:25
@ DC_ACCUM_WMGR
Definition: dc.h:24
static void cleanup(void)
Definition: main.c:1335
XLATEOBJ xlo
Definition: xlateobj.h:21
LONG y
Definition: windef.h:130
LONG x
Definition: windef.h:129
LONG cx
Definition: kdterminal.h:27
LONG cy
Definition: kdterminal.h:28
struct _PALETTE *const ppal
Definition: surface.h:11
SIZEL sizlBitmap
Definition: winddi.h:1209
BOOLEAN DIB_XXBPP_FloodFillSolid(SURFOBJ *, BRUSHOBJ *, RECTL *, POINTL *, ULONG, UINT)
Definition: floodfill.c:86
PALETTE gpalRGB
Definition: palette.c:20
FORCEINLINE VOID RECTL_vSetRect(_Out_ RECTL *prcl, _In_ LONG left, _In_ LONG top, _In_ LONG right, _In_ LONG bottom)
Definition: rect.h:5
BOOL FASTCALL REGION_PtInRegion(PREGION prgn, INT X, INT Y)
Definition: region.c:2582
INT FASTCALL REGION_GetRgnBox(PREGION Rgn, PRECTL pRect)
Definition: region.c:2543
ENGAPI ULONG APIENTRY XLATEOBJ_iXlate(_In_ XLATEOBJ *pxlo, _In_ ULONG iColor)
Definition: xlateobj.c:909
VOID NTAPI EXLATEOBJ_vInitialize(_Out_ PEXLATEOBJ pexlo, _In_opt_ PALETTE *ppalSrc, _In_opt_ PALETTE *ppalDst, _In_ COLORREF crSrcBackColor, _In_ COLORREF crDstBackColor, _In_ COLORREF crDstForeColor)
Definition: xlateobj.c:491
VOID NTAPI EXLATEOBJ_vCleanup(_Inout_ PEXLATEOBJ pexlo)
Definition: xlateobj.c:894

◆ NtGdiExtGetObjectW()

W32KAPI INT WINAPI NtGdiExtGetObjectW ( HGDIOBJ  handle,
INT  count,
void buffer 
)

Referenced by GetFontObjectA(), and GetObjectW().

◆ NtGdiExtSelectClipRgn()

W32KAPI INT WINAPI NtGdiExtSelectClipRgn ( HDC  hdc,
HRGN  region,
INT  mode 
)

◆ NtGdiExtTextOutW()

W32KAPI BOOL WINAPI NtGdiExtTextOutW ( HDC  hdc,
INT  x,
INT  y,
UINT  flags,
const RECT rect,
const WCHAR str,
UINT  count,
const INT dx,
DWORD  cp 
)

◆ NtGdiFillPath()

W32KAPI BOOL WINAPI NtGdiFillPath ( HDC  hdc)

Definition at line 2641 of file path.c.

2642{
2643 BOOL ret = FALSE;
2644 PPATH pPath, pNewPath;
2645 PDC_ATTR pdcattr;
2646 PDC dc;
2647
2648 dc = DC_LockDc(hDC);
2649 if (!dc)
2650 {
2652 return FALSE;
2653 }
2654
2655 pPath = PATH_LockPath(dc->dclevel.hPath);
2656 if (!pPath)
2657 {
2658 DC_UnlockDc(dc);
2659 return FALSE;
2660 }
2661
2663
2664 pdcattr = dc->pdcattr;
2665
2666 if (pdcattr->ulDirty_ & (DIRTY_LINE | DC_PEN_DIRTY))
2668
2669 if (pdcattr->ulDirty_ & (DIRTY_FILL | DC_BRUSH_DIRTY))
2671
2672 pNewPath = PATH_FlattenPath(pPath);
2673
2674 if (pNewPath->state != PATH_Closed)
2675 {
2677 }
2678 else if (pNewPath->numEntriesUsed)
2679 {
2680 ret = PATH_FillPath(dc, pNewPath);
2681 }
2682 else ret = TRUE;
2683
2684 PATH_UnlockPath(pNewPath);
2685 PATH_Delete(pNewPath->BaseObject.hHmgr);
2686
2687 PATH_UnlockPath(pPath);
2689 dc->dclevel.hPath = 0;
2690 dc->dclevel.flPath &= ~DCPATH_ACTIVE;
2691
2693 DC_UnlockDc(dc);
2694 return ret;
2695}
VOID FASTCALL DC_vUpdateLineBrush(PDC pdc)
Definition: dcobjs.c:62
VOID FASTCALL DC_vUpdateFillBrush(PDC pdc)
Definition: dcobjs.c:16
#define DIRTY_FILL
Definition: ntgdihdl.h:123
#define DC_PEN_DIRTY
Definition: ntgdihdl.h:136
#define DIRTY_LINE
Definition: ntgdihdl.h:124
#define DC_BRUSH_DIRTY
Definition: ntgdihdl.h:135
ULONG ulDirty_
Definition: ntgdihdl.h:294
int numEntriesUsed
Definition: path.h:55
BOOL FASTCALL PATH_FillPath(PDC dc, PPATH pPath)
Definition: path.c:1518
PPATH FASTCALL PATH_FlattenPath(PPATH pPath)
Definition: path.c:1420

◆ NtGdiFillRgn()

W32KAPI BOOL WINAPI NtGdiFillRgn ( HDC  hdc,
HRGN  hrgn,
HBRUSH  hbrush 
)

◆ NtGdiFlattenPath()

W32KAPI BOOL WINAPI NtGdiFlattenPath ( HDC  hdc)

Definition at line 2699 of file path.c.

2700{
2701 BOOL Ret = FALSE;
2702 DC *pDc;
2703 PPATH pPath, pNewPath = NULL;
2704
2705 TRACE("Enter %s\n", __FUNCTION__);
2706
2707 pDc = DC_LockDc(hDC);
2708 if (!pDc)
2709 {
2711 return FALSE;
2712 }
2713
2714 pPath = PATH_LockPath(pDc->dclevel.hPath);
2715 if (!pPath)
2716 {
2718 DC_UnlockDc(pDc);
2719 return FALSE;
2720 }
2721
2722 if (pPath->state == PATH_Closed)
2723 {
2724 pNewPath = PATH_FlattenPath(pPath);
2725 }
2726
2727 PATH_UnlockPath(pPath);
2728
2729 if (pNewPath)
2730 {
2731 PATH_Delete(pDc->dclevel.hPath);
2732 pDc->dclevel.hPath = pNewPath->BaseObject.hHmgr;
2733 PATH_UnlockPath(pNewPath);
2734 Ret = TRUE;
2735 }
2736
2737 DC_UnlockDc(pDc);
2738 return Ret;
2739}

◆ NtGdiFlush()

◆ NtGdiFontIsLinked()

W32KAPI BOOL WINAPI NtGdiFontIsLinked ( HDC  hdc)

◆ NtGdiFrameRgn()

W32KAPI BOOL WINAPI NtGdiFrameRgn ( HDC  hdc,
HRGN  hrgn,
HBRUSH  brush,
INT  width,
INT  height 
)

◆ NtGdiGetAndSetDCDword()

W32KAPI BOOL WINAPI NtGdiGetAndSetDCDword ( HDC  hdc,
UINT  method,
DWORD  value,
DWORD result 
)

Referenced by GetAndSetDCDWord().

◆ NtGdiGetAppClipBox()

W32KAPI INT WINAPI NtGdiGetAppClipBox ( HDC  hdc,
RECT rect 
)

Referenced by GetClipBox().

◆ NtGdiGetBitmapBits()

W32KAPI LONG WINAPI NtGdiGetBitmapBits ( HBITMAP  bitmap,
LONG  count,
void bits 
)

◆ NtGdiGetBitmapDimension()

W32KAPI BOOL WINAPI NtGdiGetBitmapDimension ( HBITMAP  bitmap,
SIZE size 
)

◆ NtGdiGetBoundsRect()

W32KAPI UINT WINAPI NtGdiGetBoundsRect ( HDC  hdc,
RECT rect,
UINT  flags 
)

Referenced by GetBoundsRect(), and GetBoundsRectAlt().

◆ NtGdiGetCharABCWidthsW()

W32KAPI BOOL WINAPI NtGdiGetCharABCWidthsW ( HDC  hdc,
UINT  first,
UINT  last,
WCHAR chars,
ULONG  flags,
void buffer 
)

◆ NtGdiGetCharWidthInfo()

W32KAPI BOOL WINAPI NtGdiGetCharWidthInfo ( HDC  hdc,
struct char_width_info info 
)

◆ NtGdiGetCharWidthW()

W32KAPI BOOL WINAPI NtGdiGetCharWidthW ( HDC  hdc,
UINT  first_char,
UINT  last_char,
WCHAR chars,
ULONG  flags,
void buffer 
)

◆ NtGdiGetColorAdjustment()

W32KAPI BOOL WINAPI NtGdiGetColorAdjustment ( HDC  hdc,
COLORADJUSTMENT ca 
)

◆ NtGdiGetDCDword()

W32KAPI BOOL WINAPI NtGdiGetDCDword ( HDC  hdc,
UINT  method,
DWORD result 
)

Definition at line 456 of file dcutil.c.

460{
461 BOOL Ret = TRUE;
462 PDC pdc;
463 PDC_ATTR pdcattr;
464
465 DWORD SafeResult = 0;
467
468 if (!Result)
469 {
471 return FALSE;
472 }
473
474 pdc = DC_LockDc(hDC);
475 if (!pdc)
476 {
478 return FALSE;
479 }
480 pdcattr = pdc->pdcattr;
481
482 switch (u)
483 {
484 case GdiGetJournal:
485 break;
486
487 case GdiGetRelAbs:
488 SafeResult = pdcattr->lRelAbs;
489 break;
490
491 case GdiGetBreakExtra:
492 SafeResult = pdcattr->lBreakExtra;
493 break;
494
495 case GdiGetCharBreak:
496 SafeResult = pdcattr->cBreak;
497 break;
498
500 if (pdcattr->dwLayout & LAYOUT_RTL)
501 SafeResult = AD_CLOCKWISE - ((pdc->dclevel.flPath & DCPATH_CLOCKWISE) != 0);
502 else
503 SafeResult = ((pdc->dclevel.flPath & DCPATH_CLOCKWISE) != 0) + AD_COUNTERCLOCKWISE;
504 break;
505
507 SafeResult = pdc->dclevel.lSaveDepth;
508 break;
509
511 SafeResult = IntGetFontLanguageInfo(pdc);
512 break;
513
514 case GdiGetIsMemDc:
515 SafeResult = pdc->dctype;
516 break;
517
518 case GdiGetMapMode:
519 SafeResult = pdcattr->iMapMode;
520 break;
521
523 SafeResult = pdcattr->lTextExtra;
524 break;
525
526 default:
528 Ret = FALSE;
529 break;
530 }
531
532 if (Ret)
533 {
535 {
536 ProbeForWrite(Result, sizeof(DWORD), 1);
537 *Result = SafeResult;
538 }
540 {
542 }
543 _SEH2_END;
544
545 if (!NT_SUCCESS(Status))
546 {
548 Ret = FALSE;
549 }
550 }
551
552 DC_UnlockDc(pdc);
553 return Ret;
554}
LONG NTSTATUS
Definition: precomp.h:26
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:33
#define GdiGetEMFRestorDc
Definition: emfdc.c:1836
VOID NTAPI ProbeForWrite(IN PVOID Address, IN SIZE_T Length, IN ULONG Alignment)
Definition: exintrin.c:143
Status
Definition: gdiplustypes.h:25
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
Definition: glfuncs.h:240
#define EXCEPTION_EXECUTE_HANDLER
Definition: excpt.h:90
@ GdiGetCharBreak
Definition: ntgdityp.h:51
@ GdiGetFontLanguageInfo
Definition: ntgdityp.h:54
@ GdiGetMapMode
Definition: ntgdityp.h:56
@ GdiGetJournal
Definition: ntgdityp.h:48
@ GdiGetTextCharExtra
Definition: ntgdityp.h:57
@ GdiGetIsMemDc
Definition: ntgdityp.h:55
@ GdiGetBreakExtra
Definition: ntgdityp.h:50
@ GdiGetArcDirection
Definition: ntgdityp.h:52
@ GdiGetRelAbs
Definition: ntgdityp.h:49
@ DCPATH_CLOCKWISE
Definition: path.h:8
#define _SEH2_GetExceptionCode()
Definition: pseh2_64.h:204
#define _SEH2_EXCEPT(...)
Definition: pseh2_64.h:104
#define _SEH2_END
Definition: pseh2_64.h:194
#define _SEH2_TRY
Definition: pseh2_64.h:93
LONG lBreakExtra
Definition: ntgdihdl.h:328
LONG cBreak
Definition: ntgdihdl.h:329
INT iMapMode
Definition: ntgdihdl.h:338
DWORD dwLayout
Definition: ntgdihdl.h:339
LONG lTextExtra
Definition: ntgdihdl.h:326
LONG lRelAbs
Definition: ntgdihdl.h:327
VOID FASTCALL SetLastNtError(_In_ NTSTATUS Status)
Definition: error.c:30
DWORD FASTCALL IntGetFontLanguageInfo(_In_ PDC Dc)
Definition: font.c:382
#define LAYOUT_RTL
Definition: wingdi.h:1371
#define AD_COUNTERCLOCKWISE
Definition: wingdi.h:667
#define AD_CLOCKWISE
Definition: wingdi.h:668
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
Definition: wsk.h:409

◆ NtGdiGetDCObject()

W32KAPI HANDLE WINAPI NtGdiGetDCObject ( HDC  hdc,
UINT  type 
)

◆ NtGdiGetDCPoint()

W32KAPI BOOL WINAPI NtGdiGetDCPoint ( HDC  hdc,
UINT  method,
POINT result 
)

◆ NtGdiGetDeviceCaps()

W32KAPI INT WINAPI NtGdiGetDeviceCaps ( HDC  hdc,
INT  cap 
)

Definition at line 1137 of file pdevobj.c.

1140{
1141 PDC pdc;
1142 DEVCAPS devcaps;
1143
1144 /* Lock the given DC */
1145 pdc = DC_LockDc(hdc);
1146 if (!pdc)
1147 {
1149 return 0;
1150 }
1151
1152 /* Get the data */
1153 PDEVOBJ_vGetDeviceCaps(pdc->ppdev, &devcaps);
1154
1155 /* Unlock the DC */
1156 DC_UnlockDc(pdc);
1157
1158 /* Return capability */
1159 switch (Index)
1160 {
1161 case DRIVERVERSION:
1162 return devcaps.ulVersion;
1163
1164 case TECHNOLOGY:
1165 return devcaps.ulTechnology;
1166
1167 case HORZSIZE:
1168 return devcaps.ulHorzSize;
1169
1170 case VERTSIZE:
1171 return devcaps.ulVertSize;
1172
1173 case HORZRES:
1174 return devcaps.ulHorzRes;
1175
1176 case VERTRES:
1177 return devcaps.ulVertRes;
1178
1179 case LOGPIXELSX:
1180 return devcaps.ulLogPixelsX;
1181
1182 case LOGPIXELSY:
1183 return devcaps.ulLogPixelsY;
1184
1185 case BITSPIXEL:
1186 return devcaps.ulBitsPixel;
1187
1188 case PLANES:
1189 return devcaps.ulPlanes;
1190
1191 case NUMBRUSHES:
1192 return -1;
1193
1194 case NUMPENS:
1195 return devcaps.ulNumPens;
1196
1197 case NUMFONTS:
1198 return devcaps.ulNumFonts;
1199
1200 case NUMCOLORS:
1201 return devcaps.ulNumColors;
1202
1203 case ASPECTX:
1204 return devcaps.ulAspectX;
1205
1206 case ASPECTY:
1207 return devcaps.ulAspectY;
1208
1209 case ASPECTXY:
1210 return devcaps.ulAspectXY;
1211
1212 case CLIPCAPS:
1213 return CP_RECTANGLE;
1214
1215 case SIZEPALETTE:
1216 return devcaps.ulSizePalette;
1217
1218 case NUMRESERVED:
1219 return 20;
1220
1221 case COLORRES:
1222 return devcaps.ulColorRes;
1223
1224 case DESKTOPVERTRES:
1225 return devcaps.ulVertRes;
1226
1227 case DESKTOPHORZRES:
1228 return devcaps.ulHorzRes;
1229
1230 case BLTALIGNMENT:
1231 return devcaps.ulBltAlignment;
1232
1233 case SHADEBLENDCAPS:
1234 return devcaps.ulShadeBlend;
1235
1236 case COLORMGMTCAPS:
1237 return devcaps.ulColorMgmtCaps;
1238
1239 case PHYSICALWIDTH:
1240 return devcaps.ulPhysicalWidth;
1241
1242 case PHYSICALHEIGHT:
1243 return devcaps.ulPhysicalHeight;
1244
1245 case PHYSICALOFFSETX:
1246 return devcaps.ulPhysicalOffsetX;
1247
1248 case PHYSICALOFFSETY:
1249 return devcaps.ulPhysicalOffsetY;
1250
1251 case VREFRESH:
1252 return devcaps.ulVRefresh;
1253
1254 case RASTERCAPS:
1255 return devcaps.ulRasterCaps;
1256
1257 case CURVECAPS:
1258 return (CC_CIRCLES | CC_PIE | CC_CHORD | CC_ELLIPSES | CC_WIDE |
1260
1261 case LINECAPS:
1264
1265 case POLYGONALCAPS:
1268
1269 case TEXTCAPS:
1270 return devcaps.ulTextCaps;
1271
1272 case CAPS1:
1273 case PDEVICESIZE:
1274 case SCALINGFACTORX:
1275 case SCALINGFACTORY:
1276 default:
1277 return 0;
1278 }
1279
1280 return 0;
1281}
#define CAPS1
Definition: mmsystem.h:936
VOID NTAPI PDEVOBJ_vGetDeviceCaps(IN PPDEVOBJ ppdev, OUT PDEVCAPS pDevCaps)
Definition: pdevobj.c:1037
ULONG ulVertSize
Definition: ntgdityp.h:303
ULONG ulPhysicalOffsetX
Definition: ntgdityp.h:321
ULONG ulNumFonts
Definition: ntgdityp.h:309
ULONG ulTechnology
Definition: ntgdityp.h:299
ULONG ulTextCaps
Definition: ntgdityp.h:323
ULONG ulAspectY
Definition: ntgdityp.h:313
ULONG ulLogPixelsX
Definition: ntgdityp.h:315
ULONG ulLogPixelsY
Definition: ntgdityp.h:316
ULONG ulVersion
Definition: ntgdityp.h:298
ULONG ulAspectX
Definition: ntgdityp.h:312
ULONG ulHorzSize
Definition: ntgdityp.h:302
ULONG ulBltAlignment
Definition: ntgdityp.h:327
ULONG ulSizePalette
Definition: ntgdityp.h:317
ULONG ulBitsPixel
Definition: ntgdityp.h:306
ULONG ulColorMgmtCaps
Definition: ntgdityp.h:333
ULONG ulHorzRes
Definition: ntgdityp.h:304
ULONG ulPhysicalHeight
Definition: ntgdityp.h:320
ULONG ulColorRes
Definition: ntgdityp.h:318
ULONG ulNumPens
Definition: ntgdityp.h:308
ULONG ulPhysicalOffsetY
Definition: ntgdityp.h:322
ULONG ulPhysicalWidth
Definition: ntgdityp.h:319
ULONG ulVertRes
Definition: ntgdityp.h:305
ULONG ulRasterCaps
Definition: ntgdityp.h:311
ULONG ulNumColors
Definition: ntgdityp.h:310
ULONG ulShadeBlend
Definition: ntgdityp.h:332
ULONG ulAspectXY
Definition: ntgdityp.h:314
ULONG ulPlanes
Definition: ntgdityp.h:307
ULONG ulVRefresh
Definition: ntgdityp.h:324
_In_ WDFCOLLECTION _In_ ULONG Index
#define NUMRESERVED
Definition: wingdi.h:733
#define PHYSICALOFFSETY
Definition: wingdi.h:738
#define NUMBRUSHES
Definition: wingdi.h:722
#define LC_WIDESTYLED
Definition: wingdi.h:777
#define RASTERCAPS
Definition: wingdi.h:745
#define CC_CIRCLES
Definition: wingdi.h:761
#define HORZRES
Definition: wingdi.h:716
#define CC_WIDESTYLED
Definition: wingdi.h:767
#define ASPECTX
Definition: wingdi.h:727
#define PC_RECTANGLE
Definition: wingdi.h:797
#define CC_WIDE
Definition: wingdi.h:765
#define CC_INTERIORS
Definition: wingdi.h:768
#define PHYSICALHEIGHT
Definition: wingdi.h:736
#define CP_RECTANGLE
Definition: wingdi.h:826
#define COLORRES
Definition: wingdi.h:734
#define SCALINGFACTORX
Definition: wingdi.h:739
#define BLTALIGNMENT
Definition: wingdi.h:744
#define LC_STYLED
Definition: wingdi.h:776
#define PC_SCANLINE
Definition: wingdi.h:799
#define VERTSIZE
Definition: wingdi.h:715
#define LOGPIXELSY
Definition: wingdi.h:719
#define PHYSICALOFFSETX
Definition: wingdi.h:737
#define SIZEPALETTE
Definition: wingdi.h:732
#define DRIVERVERSION
Definition: wingdi.h:705
#define NUMCOLORS
Definition: wingdi.h:725
#define POLYGONALCAPS
Definition: wingdi.h:779
#define CC_ELLIPSES
Definition: wingdi.h:764
#define LC_POLYMARKER
Definition: wingdi.h:774
#define HORZSIZE
Definition: wingdi.h:714
#define PDEVICESIZE
Definition: wingdi.h:730
#define TEXTCAPS
Definition: wingdi.h:806
#define SCALINGFACTORY
Definition: wingdi.h:740
#define VREFRESH
Definition: wingdi.h:741
#define VERTRES
Definition: wingdi.h:717
#define LC_POLYLINE
Definition: wingdi.h:772
#define CC_ROUNDRECT
Definition: wingdi.h:769
#define PC_WINDPOLYGON
Definition: wingdi.h:798
#define CURVECAPS
Definition: wingdi.h:759
#define PHYSICALWIDTH
Definition: wingdi.h:735
#define PC_WIDE
Definition: wingdi.h:801
#define LC_WIDE
Definition: wingdi.h:775
#define PLANES
Definition: wingdi.h:721
#define DESKTOPHORZRES
Definition: wingdi.h:742
#define CC_PIE
Definition: wingdi.h:762
#define LOGPIXELSX
Definition: wingdi.h:718
#define CC_STYLED
Definition: wingdi.h:766
#define BITSPIXEL
Definition: wingdi.h:720
#define PC_STYLED
Definition: wingdi.h:802
#define CC_CHORD
Definition: wingdi.h:763
#define NUMFONTS
Definition: wingdi.h:724
#define PC_INTERIORS
Definition: wingdi.h:804
#define LC_INTERIORS
Definition: wingdi.h:778
#define PC_POLYGON
Definition: wingdi.h:794
#define LINECAPS
Definition: wingdi.h:770
#define ASPECTY
Definition: wingdi.h:728
#define NUMPENS
Definition: wingdi.h:723
#define LC_MARKER
Definition: wingdi.h:773
#define DESKTOPVERTRES
Definition: wingdi.h:743
#define CLIPCAPS
Definition: wingdi.h:731
#define ASPECTXY
Definition: wingdi.h:729
#define TECHNOLOGY
Definition: wingdi.h:706
#define PC_WIDESTYLED
Definition: wingdi.h:803

◆ NtGdiGetDeviceGammaRamp()

W32KAPI BOOL WINAPI NtGdiGetDeviceGammaRamp ( HDC  hdc,
void ptr 
)

Referenced by GetDeviceGammaRamp().

◆ NtGdiGetDIBitsInternal()

W32KAPI INT WINAPI NtGdiGetDIBitsInternal ( HDC  hdc,
HBITMAP  hbitmap,
UINT  startscan,
UINT  lines,
void bits,
BITMAPINFO info,
UINT  coloruse,
UINT  max_bits,
UINT  max_info 
)

Referenced by GetDIBits(), and START_TEST().

◆ NtGdiGetFontData()

W32KAPI DWORD WINAPI NtGdiGetFontData ( HDC  hdc,
DWORD  table,
DWORD  offset,
void buffer,
DWORD  length 
)

Referenced by GetFontData().

◆ NtGdiGetFontFileData()

W32KAPI BOOL WINAPI NtGdiGetFontFileData ( DWORD  instance_id,
DWORD  file_index,
UINT64 offset,
void buff,
SIZE_T  buff_size 
)

◆ NtGdiGetFontFileInfo()

W32KAPI BOOL WINAPI NtGdiGetFontFileInfo ( DWORD  instance_id,
DWORD  file_index,
struct font_fileinfo info,
SIZE_T  size,
SIZE_T needed 
)

◆ NtGdiGetFontUnicodeRanges()

W32KAPI DWORD WINAPI NtGdiGetFontUnicodeRanges ( HDC  hdc,
GLYPHSET *  lpgs 
)

◆ NtGdiGetGlyphIndicesW()

W32KAPI DWORD WINAPI NtGdiGetGlyphIndicesW ( HDC  hdc,
const WCHAR str,
INT  count,
WORD indices,
DWORD  flags 
)

◆ NtGdiGetGlyphOutline()

W32KAPI DWORD WINAPI NtGdiGetGlyphOutline ( HDC  hdc,
UINT  ch,
UINT  format,
GLYPHMETRICS metrics,
DWORD  size,
void buffer,
const MAT2 mat2,
BOOL  ignore_rotation 
)

◆ NtGdiGetKerningPairs()

W32KAPI DWORD WINAPI NtGdiGetKerningPairs ( HDC  hdc,
DWORD  count,
KERNINGPAIR kern_pair 
)

◆ NtGdiGetMiterLimit()

W32KAPI BOOL WINAPI NtGdiGetMiterLimit ( HDC  hdc,
DWORD limit 
)

◆ NtGdiGetNearestColor()

W32KAPI COLORREF WINAPI NtGdiGetNearestColor ( HDC  hdc,
COLORREF  color 
)

◆ NtGdiGetNearestPaletteIndex()

W32KAPI UINT WINAPI NtGdiGetNearestPaletteIndex ( HPALETTE  hpalette,
COLORREF  color 
)

Definition at line 717 of file palette.c.

720{
722 UINT index = 0;
723
724 if (ppal)
725 {
726 if (ppal->flFlags & PAL_INDEXED)
727 {
728 /* Return closest match for the given RGB color */
730 }
731 // else SetLastError ?
733 }
734
735 return index;
736}
#define index(s, c)
Definition: various.h:29
GLuint index
Definition: glext.h:6031
unsigned int UINT
Definition: ndis.h:50
ULONG NTAPI PALETTE_ulGetNearestPaletteIndex(PALETTE *ppal, ULONG iColor)
Definition: palette.c:264

◆ NtGdiGetOutlineTextMetricsInternalW()

W32KAPI UINT WINAPI NtGdiGetOutlineTextMetricsInternalW ( HDC  hdc,
UINT  cbData,
OUTLINETEXTMETRICW otm,
ULONG  opts 
)

◆ NtGdiGetPath()

W32KAPI INT WINAPI NtGdiGetPath ( HDC  hdc,
POINT points,
BYTE types,
INT  size 
)

◆ NtGdiGetPixel()

W32KAPI COLORREF WINAPI NtGdiGetPixel ( HDC  hdc,
INT  x,
INT  y 
)

◆ NtGdiGetRandomRgn()

W32KAPI INT WINAPI NtGdiGetRandomRgn ( HDC  hdc,
HRGN  region,
INT  code 
)
Todo:
FIXME This is not really correct, since we already modified the region

Definition at line 709 of file dcobjs.c.

713{
714 INT ret = 0;
715 PDC pdc;
716 PREGION prgnSrc = NULL;
717
718 pdc = DC_LockDc(hdc);
719 if (!pdc)
720 {
722 return -1;
723 }
724
725 switch (iCode)
726 {
727 case CLIPRGN:
728 prgnSrc = pdc->dclevel.prgnClip;
729 break;
730
731 case METARGN:
732 prgnSrc = pdc->dclevel.prgnMeta;
733 break;
734
735 case APIRGN:
736 if (pdc->fs & DC_DIRTY_RAO)
738 if (pdc->prgnAPI)
739 {
740 prgnSrc = pdc->prgnAPI;
741 }
742 else if (pdc->dclevel.prgnClip)
743 {
744 prgnSrc = pdc->dclevel.prgnClip;
745 }
746 else if (pdc->dclevel.prgnMeta)
747 {
748 prgnSrc = pdc->dclevel.prgnMeta;
749 }
750 break;
751
752 case SYSRGN:
753 prgnSrc = pdc->prgnVis;
754 break;
755
756 default:
757 break;
758 }
759
760 if (prgnSrc)
761 {
762 PREGION prgnDest = REGION_LockRgn(hrgnDest);
763 if (prgnDest)
764 {
765 ret = IntGdiCombineRgn(prgnDest, prgnSrc, 0, RGN_COPY) == ERROR ? -1 : 1;
766 if ((ret == 1) && (iCode == SYSRGN))
767 {
769 ret = REGION_bOffsetRgn(prgnDest, pdc->ptlDCOrig.x, pdc->ptlDCOrig.y);
770 }
771 REGION_UnlockRgn(prgnDest);
772 }
773 else
774 ret = -1;
775 }
776
777 DC_UnlockDc(pdc);
778
779 return ret;
780}
#define APIRGN
Definition: GetRandomRgn.c:12
#define METARGN
Definition: GetRandomRgn.c:11
#define SYSRGN
Definition: GetRandomRgn.c:13
VOID FASTCALL CLIPPING_UpdateGCRegion(PDC pDC)
Definition: cliprgn.c:741
@ DC_DIRTY_RAO
Definition: dc.h:23
#define ERROR(name)
Definition: error_private.h:53
#define CLIPRGN
Definition: precomp.h:18
static HRGN INT iCode
Definition: mapping.c:32
PREGION FASTCALL REGION_LockRgn(_In_ HRGN hrgn)
Definition: region.c:2358
BOOL FASTCALL REGION_bOffsetRgn(_Inout_ PREGION prgn, _In_ INT cx, _In_ INT cy)
Definition: region.c:2707
INT FASTCALL IntGdiCombineRgn(PREGION prgnDest, PREGION prgnSrc1, PREGION prgnSrc2, INT iCombineMode)
Definition: region.c:2487
#define RGN_COPY
Definition: wingdi.h:357

◆ NtGdiGetRasterizerCaps()

W32KAPI BOOL WINAPI NtGdiGetRasterizerCaps ( RASTERIZER_STATUS status,
UINT  size 
)

◆ NtGdiGetRealizationInfo()

W32KAPI BOOL WINAPI NtGdiGetRealizationInfo ( HDC  hdc,
struct font_realization_info info 
)

Referenced by GdiRealizationInfo().

◆ NtGdiGetRegionData()

W32KAPI DWORD WINAPI NtGdiGetRegionData ( HRGN  hrgn,
DWORD  count,
RGNDATA data 
)

Referenced by GetRegionData(), and MirrorRgnByWidth().

◆ NtGdiGetRgnBox()

W32KAPI INT WINAPI NtGdiGetRgnBox ( HRGN  hrgn,
RECT rect 
)

◆ NtGdiGetSpoolMessage()

W32KAPI DWORD WINAPI NtGdiGetSpoolMessage ( void ptr1,
DWORD  data2,
void ptr3,
DWORD  data4 
)

◆ NtGdiGetSystemPaletteUse()

W32KAPI UINT WINAPI NtGdiGetSystemPaletteUse ( HDC  hdc)

Definition at line 1207 of file palette.c.

1208{
1209 return SystemPaletteUse;
1210}
static UINT SystemPaletteUse
Definition: palette.c:18

◆ NtGdiGetTextCharsetInfo()

W32KAPI UINT WINAPI NtGdiGetTextCharsetInfo ( HDC  hdc,
FONTSIGNATURE fs,
DWORD  flags 
)

◆ NtGdiGetTextExtentExW()

W32KAPI BOOL WINAPI NtGdiGetTextExtentExW ( HDC  hdc,
const WCHAR str,
INT  count,
INT  max_ext,
INT nfit,
INT dxs,
SIZE size,
UINT  flags 
)

◆ NtGdiGetTextFaceW()

W32KAPI INT WINAPI NtGdiGetTextFaceW ( HDC  hdc,
INT  count,
WCHAR name,
BOOL  alias_name 
)

◆ NtGdiGetTextMetricsW()

W32KAPI BOOL WINAPI NtGdiGetTextMetricsW ( HDC  hdc,
TEXTMETRICW metrics,
ULONG  flags 
)

Referenced by GetTextMetricsA(), and GetTextMetricsW().

◆ NtGdiGetTransform()

◆ NtGdiGradientFill()

W32KAPI BOOL WINAPI NtGdiGradientFill ( HDC  hdc,
TRIVERTEX vert_array,
ULONG  nvert,
void grad_array,
ULONG  ngrad,
ULONG  mode 
)

◆ NtGdiHfontCreate()

W32KAPI HFONT WINAPI NtGdiHfontCreate ( const void logfont,
ULONG  unk2,
ULONG  unk3,
ULONG  unk4,
void data 
)

◆ NtGdiIcmBrushInfo()

W32KAPI BOOL WINAPI NtGdiIcmBrushInfo ( HDC  hdc,
HBRUSH  handle,
BITMAPINFO info,
void bits,
ULONG bits_size,
UINT usage,
BOOL unk,
UINT  mode 
)

◆ NtGdiInitSpool()

W32KAPI DWORD WINAPI NtGdiInitSpool ( void  )

Definition at line 1048 of file stubs.c.

1049{
1051 return FALSE;
1052}
#define ERROR_NOT_SUPPORTED
Definition: compat.h:100

◆ NtGdiIntersectClipRect()

W32KAPI INT WINAPI NtGdiIntersectClipRect ( HDC  hdc,
INT  left,
INT  top,
INT  right,
INT  bottom 
)

◆ NtGdiInvertRgn()

W32KAPI BOOL WINAPI NtGdiInvertRgn ( HDC  hdc,
HRGN  hrgn 
)

◆ NtGdiLineTo()

W32KAPI BOOL WINAPI NtGdiLineTo ( HDC  hdc,
INT  x,
INT  y 
)

◆ NtGdiMaskBlt()

W32KAPI BOOL WINAPI NtGdiMaskBlt ( HDC  hdc,
INT  x_dst,
INT  y_dst,
INT  width_dst,
INT  height_dst,
HDC  hdc_src,
INT  x_src,
INT  y_src,
HBITMAP  mask,
INT  x_mask,
INT  y_mask,
DWORD  rop,
DWORD  bk_color 
)

◆ NtGdiModifyWorldTransform()

W32KAPI BOOL WINAPI NtGdiModifyWorldTransform ( HDC  hdc,
const XFORM xform,
DWORD  mode 
)

◆ NtGdiMoveTo()

W32KAPI BOOL WINAPI NtGdiMoveTo ( HDC  hdc,
INT  x,
INT  y,
POINT pt 
)

Referenced by Do_LineTo().

◆ NtGdiOffsetClipRgn()

W32KAPI INT WINAPI NtGdiOffsetClipRgn ( HDC  hdc,
INT  x,
INT  y 
)

◆ NtGdiOffsetRgn()

W32KAPI INT WINAPI NtGdiOffsetRgn ( HRGN  hrgn,
INT  x,
INT  y 
)

◆ NtGdiOpenDCW()

W32KAPI HDC WINAPI NtGdiOpenDCW ( UNICODE_STRING device,
const DEVMODEW devmode,
UNICODE_STRING output,
ULONG  type,
BOOL  is_display,
HANDLE  hspool,
DRIVER_INFO_2W driver_info,
void pdev 
)

◆ NtGdiPatBlt()

W32KAPI BOOL WINAPI NtGdiPatBlt ( HDC  hdc,
INT  left,
INT  top,
INT  width,
INT  height,
DWORD  rop 
)

◆ NtGdiPathToRegion()

W32KAPI HRGN WINAPI NtGdiPathToRegion ( HDC  hdc)

Definition at line 2861 of file path.c.

2862{
2863 PPATH pPath, pNewPath;
2864 HRGN hrgnRval = 0;
2865 int Ret;
2866 PREGION Rgn;
2867 DC *pDc;
2868 PDC_ATTR pdcattr;
2869
2870 TRACE("Enter %s\n", __FUNCTION__);
2871
2872 pDc = DC_LockDc(hDC);
2873 if (!pDc)
2874 {
2875 ERR("Failed to lock DC %p\n", hDC);
2877 return NULL;
2878 }
2879
2880 pdcattr = pDc->pdcattr;
2881
2882 pPath = PATH_LockPath(pDc->dclevel.hPath);
2883 if (!pPath)
2884 {
2885 ERR("Failed to lock DC path %p\n", pDc->dclevel.hPath);
2886 DC_UnlockDc(pDc);
2887 return NULL;
2888 }
2889
2890 if (pPath->state != PATH_Closed)
2891 {
2892 // FIXME: Check that setlasterror is being called correctly
2893 ERR("Path is not closed!\n");
2895 }
2896 else
2897 {
2898 /* Create the region and fill it with the path strokes */
2900 if (!Rgn)
2901 {
2902 ERR("Failed to allocate a region\n");
2903 PATH_UnlockPath(pPath);
2904 DC_UnlockDc(pDc);
2905 return NULL;
2906 }
2907 hrgnRval = Rgn->BaseObject.hHmgr;
2908
2909 pNewPath = PATH_FlattenPath(pPath);
2910 if (pNewPath == NULL)
2911 {
2912 ERR("Failed to flatten path %p\n", pDc->dclevel.hPath);
2913 REGION_Delete(Rgn);
2914 PATH_UnlockPath(pPath);
2915 DC_UnlockDc(pDc);
2916 return NULL;
2917 }
2918
2919 Ret = PATH_PathToRegion(pNewPath, pdcattr->jFillMode, Rgn);
2920
2921 PATH_UnlockPath(pNewPath);
2922 PATH_Delete(pNewPath->BaseObject.hHmgr);
2923
2924 if (!Ret)
2925 {
2926 ERR("PATH_PathToRegion failed\n");
2927 REGION_Delete(Rgn);
2928 hrgnRval = NULL;
2929 }
2930 else
2931 REGION_UnlockRgn(Rgn);
2932 }
2933
2934 PATH_UnlockPath(pPath);
2935 PATH_Delete(pDc->dclevel.hPath);
2936 pDc->dclevel.hPath = NULL;
2937 pDc->dclevel.flPath &= ~DCPATH_ACTIVE;
2938
2939 DC_UnlockDc(pDc);
2940 return hrgnRval;
2941}
#define ERR(fmt,...)
Definition: precomp.h:57
BYTE jFillMode
Definition: ntgdihdl.h:309
BOOL FASTCALL PATH_PathToRegion(PPATH pPath, INT Mode, PREGION Rgn)
Definition: path.c:1463
VOID FASTCALL REGION_Delete(PREGION pRgn)
Definition: region.c:2449

◆ NtGdiPlgBlt()

W32KAPI BOOL WINAPI NtGdiPlgBlt ( HDC  hdc,
const POINT point,
HDC  hdc_src,
INT  x_src,
INT  y_src,
INT  width,
INT  height,
HBITMAP  mask,
INT  x_mask,
INT  y_mask,
DWORD  bk_color 
)

◆ NtGdiPolyDraw()

W32KAPI BOOL WINAPI NtGdiPolyDraw ( HDC  hdc,
const POINT points,
const BYTE types,
DWORD  count 
)

◆ NtGdiPolyPolyDraw()

W32KAPI ULONG WINAPI NtGdiPolyPolyDraw ( HDC  hdc,
const POINT points,
const ULONG counts,
DWORD  count,
UINT  function 
)

◆ NtGdiPtInRegion()

W32KAPI BOOL WINAPI NtGdiPtInRegion ( HRGN  hrgn,
INT  x,
INT  y 
)

◆ NtGdiPtVisible()

W32KAPI BOOL WINAPI NtGdiPtVisible ( HDC  hdc,
INT  x,
INT  y 
)

◆ NtGdiRectangle()

W32KAPI BOOL WINAPI NtGdiRectangle ( HDC  hdc,
INT  left,
INT  top,
INT  right,
INT  bottom 
)

◆ NtGdiRectInRegion()

W32KAPI BOOL WINAPI NtGdiRectInRegion ( HRGN  hrgn,
const RECT rect 
)

◆ NtGdiRectVisible()

W32KAPI BOOL WINAPI NtGdiRectVisible ( HDC  hdc,
const RECT rect 
)

◆ NtGdiRemoveFontMemResourceEx()

W32KAPI BOOL WINAPI NtGdiRemoveFontMemResourceEx ( HANDLE  handle)

◆ NtGdiRemoveFontResourceW()

W32KAPI BOOL WINAPI NtGdiRemoveFontResourceW ( const WCHAR str,
ULONG  size,
ULONG  files,
DWORD  flags,
DWORD  tid,
void dv 
)

◆ NtGdiResetDC()

W32KAPI BOOL WINAPI NtGdiResetDC ( HDC  hdc,
const DEVMODEW devmode,
BOOL banding,
DRIVER_INFO_2W driver_info,
void dev 
)

◆ NtGdiResizePalette()

W32KAPI BOOL WINAPI NtGdiResizePalette ( HPALETTE  palette,
UINT  count 
)

Definition at line 604 of file palette.c.

607{
608/* PALOBJ *palPtr = (PALOBJ*)AccessUserObject(hPal);
609 UINT cPrevEnt, prevVer;
610 INT prevsize, size = sizeof(LOGPALETTE) + (cEntries - 1) * sizeof(PALETTEENTRY);
611 XLATEOBJ *XlateObj = NULL;
612
613 if(!palPtr) return FALSE;
614 cPrevEnt = palPtr->logpalette->palNumEntries;
615 prevVer = palPtr->logpalette->palVersion;
616 prevsize = sizeof(LOGPALETTE) + (cPrevEnt - 1) * sizeof(PALETTEENTRY) + sizeof(int*) + sizeof(GDIOBJHDR);
617 size += sizeof(int*) + sizeof(GDIOBJHDR);
618 XlateObj = palPtr->logicalToSystem;
619
620 if (!(palPtr = GDI_ReallocObject(size, hPal, palPtr))) return FALSE;
621
622 if(XlateObj)
623 {
624 XLATEOBJ *NewXlateObj = (int*) HeapReAlloc(GetProcessHeap(), 0, XlateObj, cEntries * sizeof(int));
625 if(NewXlateObj == NULL)
626 {
627 ERR("Can not resize logicalToSystem -- out of memory!\n");
628 GDI_ReleaseObj( hPal );
629 return FALSE;
630 }
631 palPtr->logicalToSystem = NewXlateObj;
632 }
633
634 if(cEntries > cPrevEnt)
635 {
636 if(XlateObj) memset(palPtr->logicalToSystem + cPrevEnt, 0, (cEntries - cPrevEnt)*sizeof(int));
637 memset( (BYTE*)palPtr + prevsize, 0, size - prevsize );
638 PALETTE_ValidateFlags((PALETTEENTRY*)((BYTE*)palPtr + prevsize), cEntries - cPrevEnt );
639 }
640 palPtr->logpalette->palNumEntries = cEntries;
641 palPtr->logpalette->palVersion = prevVer;
642// GDI_ReleaseObj( hPal );
643 return TRUE; */
644
646 return FALSE;
647}

◆ NtGdiRestoreDC()

W32KAPI BOOL WINAPI NtGdiRestoreDC ( HDC  hdc,
INT  level 
)

Definition at line 213 of file dcstate.c.

216{
217 PDC pdc;
218
219 DPRINT("NtGdiRestoreDC(%p, %d)\n", hdc, iSaveLevel);
220
221 /* Lock the original DC */
222 pdc = DC_LockDc(hdc);
223 if (!pdc)
224 {
226 return FALSE;
227 }
228
229 ASSERT(pdc->dclevel.lSaveDepth > 0);
230
231 /* Negative values are relative to the stack top */
232 if (iSaveLevel < 0)
233 iSaveLevel = pdc->dclevel.lSaveDepth + iSaveLevel;
234
235 /* Check if we have a valid instance */
236 if (iSaveLevel <= 0 || iSaveLevel >= pdc->dclevel.lSaveDepth)
237 {
238 DPRINT("Illegal save level, requested: %ld, current: %ld\n",
239 iSaveLevel, pdc->dclevel.lSaveDepth);
240 DC_UnlockDc(pdc);
242 return FALSE;
243 }
244
245 /* Call the internal function */
246 DC_vRestoreDC(pdc, iSaveLevel);
247
248 DC_UnlockDc(pdc);
249
250 DPRINT("Leave NtGdiRestoreDC\n");
251 return TRUE;
252}
VOID NTAPI DC_vRestoreDC(IN PDC pdc, INT iSaveLevel)
Definition: dcstate.c:138
#define ASSERT(a)
Definition: mode.c:44

◆ NtGdiRoundRect()

W32KAPI BOOL WINAPI NtGdiRoundRect ( HDC  hdc,
INT  left,
INT  top,
INT  right,
INT  bottom,
INT  ell_width,
INT  ell_height 
)

◆ NtGdiSaveDC()

W32KAPI INT WINAPI NtGdiSaveDC ( HDC  hdc)

Definition at line 257 of file dcstate.c.

259{
260 HDC hdcSave;
261 PDC pdc, pdcSave;
262 INT lSaveDepth;
263
264 DPRINT("NtGdiSaveDC(%p)\n", hDC);
265
266 /* Lock the original dc */
267 pdc = DC_LockDc(hDC);
268 if (pdc == NULL)
269 {
270 DPRINT("Could not lock DC\n");
272 return 0;
273 }
274
275 /* Allocate a new dc */
277 if (pdcSave == NULL)
278 {
279 DPRINT("Could not allocate a new DC\n");
280 DC_UnlockDc(pdc);
281 return 0;
282 }
283 hdcSave = pdcSave->BaseObject.hHmgr;
284
285 PDEVOBJ_vReference(pdc->ppdev);
286 DC_vInitDc(pdcSave, DCTYPE_MEMORY, pdc->ppdev);
287
288 /* Handle references here correctly */
289 //pdcSrc->dclevel.pSurface = NULL;
290 //pdcSrc->dclevel.pbrFill = NULL;
291 //pdcSrc->dclevel.pbrLine = NULL;
292 //pdcSrc->dclevel.ppal = NULL;
293
294 /* Make it a kernel handle
295 (FIXME: Windows handles this differently, see Wiki) */
296 GDIOBJ_vSetObjectOwner(&pdcSave->BaseObject, GDI_OBJ_HMGR_PUBLIC);
297
298 /* Copy the current state */
299 DC_vCopyState(pdc, pdcSave, FALSE);
300
301 /* Only memory DC's change their surface */
302 if (pdc->dctype == DCTYPE_MEMORY)
303 DC_vSelectSurface(pdcSave, pdc->dclevel.pSurface);
304
305 /* Copy path */
306 if (pdc->dclevel.hPath)
307 {
308 PATH_SavePath( pdcSave, pdc );
309 }
310 pdcSave->dclevel.flPath = pdc->dclevel.flPath | DCPATH_SAVESTATE;
311
312 /* Set new dc as save dc */
313 pdcSave->dclevel.hdcSave = pdc->dclevel.hdcSave;
314 pdc->dclevel.hdcSave = hdcSave;
315
316 /* Increase save depth, return old value */
317 lSaveDepth = pdc->dclevel.lSaveDepth++;
318
319 /* Cleanup and return */
320 DC_UnlockDc(pdcSave);
321 DC_UnlockDc(pdc);
322
323 DPRINT("Leave NtGdiSaveDC: %ld, hdcSave = %p\n", lSaveDepth, hdcSave);
324 return lSaveDepth;
325}
FORCEINLINE VOID DC_vSelectSurface(PDC pdc, PSURFACE psurfNew)
Definition: dc.h:248
@ DCTYPE_MEMORY
Definition: dc.h:42
PDC NTAPI DC_AllocDcWithHandle(GDILOOBJTYPE eDcObjType)
Definition: dclife.c:69
VOID NTAPI DC_vInitDc(PDC pdc, DCTYPE dctype, PPDEVOBJ ppdev)
Definition: dclife.c:129
VOID FASTCALL DC_vCopyState(PDC pdcSrc, PDC pdcDst, BOOL To)
Definition: dcstate.c:16
@ GDILoObjType_LO_DC_TYPE
Definition: gdi_private.h:34
#define GDI_OBJ_HMGR_PUBLIC
Definition: ntgdihdl.h:116
@ DCPATH_SAVESTATE
Definition: path.h:11
FORCEINLINE VOID PDEVOBJ_vReference(_In_ PPDEVOBJ ppdev)
Definition: pdevobj.h:160
VOID NTAPI GDIOBJ_vSetObjectOwner(POBJ pobj, ULONG ulNewOwner)
Definition: gdiobj.c:972
BOOL PATH_SavePath(DC *dst, DC *src)
Definition: path.c:187

◆ NtGdiScaleViewportExtEx()

W32KAPI BOOL WINAPI NtGdiScaleViewportExtEx ( HDC  hdc,
INT  x_num,
INT  x_denom,
INT  y_num,
INT  y_denom,
SIZE size 
)

◆ NtGdiScaleWindowExtEx()

W32KAPI BOOL WINAPI NtGdiScaleWindowExtEx ( HDC  hdc,
INT  x_num,
INT  x_denom,
INT  y_num,
INT  y_denom,
SIZE size 
)

◆ NtGdiSelectBitmap()

W32KAPI HGDIOBJ WINAPI NtGdiSelectBitmap ( HDC  hdc,
HGDIOBJ  handle 
)

◆ NtGdiSelectBrush()

W32KAPI HGDIOBJ WINAPI NtGdiSelectBrush ( HDC  hdc,
HGDIOBJ  handle 
)

◆ NtGdiSelectClipPath()

W32KAPI BOOL WINAPI NtGdiSelectClipPath ( HDC  hdc,
INT  mode 
)

◆ NtGdiSelectFont()

W32KAPI HGDIOBJ WINAPI NtGdiSelectFont ( HDC  hdc,
HGDIOBJ  handle 
)

◆ NtGdiSelectPen()

W32KAPI HGDIOBJ WINAPI NtGdiSelectPen ( HDC  hdc,
HGDIOBJ  handle 
)

◆ NtGdiSetBitmapBits()

W32KAPI LONG WINAPI NtGdiSetBitmapBits ( HBITMAP  hbitmap,
LONG  count,
const void bits 
)

◆ NtGdiSetBitmapDimension()

W32KAPI BOOL WINAPI NtGdiSetBitmapDimension ( HBITMAP  hbitmap,
INT  x,
INT  y,
SIZE prev_size 
)

◆ NtGdiSetBoundsRect()

W32KAPI UINT WINAPI NtGdiSetBoundsRect ( HDC  hdc,
const RECT rect,
UINT  flags 
)

◆ NtGdiSetBrushOrg()

W32KAPI BOOL WINAPI NtGdiSetBrushOrg ( HDC  hdc,
INT  x,
INT  y,
POINT prev_org 
)

Referenced by SetBrushOrgEx().

◆ NtGdiSetColorAdjustment()

W32KAPI BOOL WINAPI NtGdiSetColorAdjustment ( HDC  hdc,
const COLORADJUSTMENT ca 
)

◆ NtGdiSetDeviceGammaRamp()

W32KAPI BOOL WINAPI NtGdiSetDeviceGammaRamp ( HDC  hdc,
void ptr 
)

◆ NtGdiSetDIBitsToDeviceInternal()

W32KAPI INT WINAPI NtGdiSetDIBitsToDeviceInternal ( HDC  hdc,
INT  x_dst,
INT  y_dst,
DWORD  cx,
DWORD  cy,
INT  x_src,
INT  y_src,
UINT  startscan,
UINT  lines,
const void bits,
const BITMAPINFO bmi,
UINT  coloruse,
UINT  max_bits,
UINT  max_info,
BOOL  xform_coords,
HANDLE  xform 
)

◆ NtGdiSetLayout()

W32KAPI DWORD WINAPI NtGdiSetLayout ( HDC  hdc,
LONG  wox,
DWORD  layout 
)

◆ NtGdiSetMagicColors()

W32KAPI BOOL WINAPI NtGdiSetMagicColors ( HDC  hdc,
DWORD  magic,
ULONG  index 
)

◆ NtGdiSetMetaRgn()

W32KAPI INT WINAPI NtGdiSetMetaRgn ( HDC  hdc)

Definition at line 723 of file cliprgn.c.

724{
725 INT Ret;
726 PDC pDC = DC_LockDc(hDC);
727
728 if (!pDC)
729 {
731 return ERROR;
732 }
733 Ret = IntGdiSetMetaRgn(pDC);
734
735 DC_UnlockDc(pDC);
736 return Ret;
737}
int FASTCALL IntGdiSetMetaRgn(PDC pDC)
Definition: cliprgn.c:677

◆ NtGdiSetMiterLimit()

W32KAPI BOOL WINAPI NtGdiSetMiterLimit ( HDC  hdc,
DWORD  limit,
DWORD prev_limit 
)

◆ NtGdiSetPixel()

W32KAPI COLORREF WINAPI NtGdiSetPixel ( HDC  hdc,
INT  x,
INT  y,
COLORREF  color 
)

◆ NtGdiSetPixelFormat()

W32KAPI BOOL WINAPI NtGdiSetPixelFormat ( HDC  hdc,
INT  format 
)

◆ NtGdiSetRectRgn()

W32KAPI BOOL WINAPI NtGdiSetRectRgn ( HRGN  hrgn,
INT  left,
INT  top,
INT  right,
INT  bottom 
)

◆ NtGdiSetSystemPaletteUse()

W32KAPI UINT WINAPI NtGdiSetSystemPaletteUse ( HDC  hdc,
UINT  use 
)

Definition at line 1180 of file palette.c.

1181{
1182 UINT old = SystemPaletteUse;
1183
1184 /* Device doesn't support colour palettes */
1186 return SYSPAL_ERROR;
1187 }
1188
1189 switch (Usage)
1190 {
1191 case SYSPAL_NOSTATIC:
1192 case SYSPAL_NOSTATIC256:
1193 case SYSPAL_STATIC:
1195 break;
1196
1197 default:
1198 old=SYSPAL_ERROR;
1199 break;
1200 }
1201
1202 return old;
1203}
_Must_inspect_result_ _In_ USAGE _In_ USHORT _In_ USAGE Usage
Definition: hidpi.h:384
__kernel_entry W32KAPI INT APIENTRY NtGdiGetDeviceCaps(_In_ HDC hdc, _In_ INT i)
#define SYSPAL_ERROR
Definition: wingdi.h:927
#define SYSPAL_STATIC
Definition: wingdi.h:926
#define SYSPAL_NOSTATIC
Definition: wingdi.h:925
#define SYSPAL_NOSTATIC256
Definition: wingdi.h:21
#define RC_PALETTE
Definition: wingdi.h:790

◆ NtGdiSetTextJustification()

W32KAPI BOOL WINAPI NtGdiSetTextJustification ( HDC  hdc,
INT  extra,
INT  breaks 
)

◆ NtGdiSetVirtualResolution()

W32KAPI BOOL WINAPI NtGdiSetVirtualResolution ( HDC  hdc,
DWORD  horz_res,
DWORD  vert_res,
DWORD  horz_size,
DWORD  vert_size 
)

◆ NtGdiStartDoc()

W32KAPI INT WINAPI NtGdiStartDoc ( HDC  hdc,
const DOCINFOW doc,
BOOL banding,
INT  job 
)

◆ NtGdiStartPage()

W32KAPI INT WINAPI NtGdiStartPage ( HDC  hdc)

Definition at line 272 of file print.c.

273{
275 return 0;
276}

◆ NtGdiStretchBlt()

W32KAPI BOOL WINAPI NtGdiStretchBlt ( HDC  hdc,
INT  x_dst,
INT  y_dst,
INT  width_dst,
INT  height_dst,
HDC  hdc_src,
INT  x_src,
INT  y_src,
INT  width_src,
INT  height_src,
DWORD  rop,
COLORREF  bk_color 
)

◆ NtGdiStretchDIBitsInternal()

W32KAPI INT WINAPI NtGdiStretchDIBitsInternal ( HDC  hdc,
INT  x_dst,
INT  y_dst,
INT  width_dst,
INT  height_dst,
INT  x_src,
INT  y_src,
INT  width_src,
INT  height_src,
const void bits,
const BITMAPINFO bmi,
UINT  coloruse,
DWORD  rop,
UINT  max_info,
UINT  max_bits,
HANDLE  xform 
)

◆ NtGdiStrokeAndFillPath()

W32KAPI BOOL WINAPI NtGdiStrokeAndFillPath ( HDC  hdc)

Definition at line 2985 of file path.c.

2986{
2987 DC *pDc;
2988 PDC_ATTR pdcattr;
2989 PPATH pPath, pNewPath;
2990 BOOL bRet = FALSE;
2991
2992 TRACE("Enter %s\n", __FUNCTION__);
2993
2994 if (!(pDc = DC_LockDc(hDC)))
2995 {
2997 return FALSE;
2998 }
2999 pPath = PATH_LockPath(pDc->dclevel.hPath);
3000 if (!pPath)
3001 {
3002 DC_UnlockDc(pDc);
3003 return FALSE;
3004 }
3005
3007
3008 pdcattr = pDc->pdcattr;
3009
3010 if (pdcattr->ulDirty_ & (DIRTY_FILL | DC_BRUSH_DIRTY))
3012
3013 if (pdcattr->ulDirty_ & (DIRTY_LINE | DC_PEN_DIRTY))
3015
3016 pNewPath = PATH_FlattenPath(pPath);
3017
3018 if (pNewPath->state != PATH_Closed)
3019 {
3021 }
3022 else if (pNewPath->numEntriesUsed)
3023 {
3024 bRet = PATH_FillPath(pDc, pNewPath);
3025 if (bRet) bRet = PATH_StrokePath(pDc, pNewPath);
3026 }
3027 else bRet = TRUE;
3028
3029 PATH_UnlockPath(pNewPath);
3030 PATH_Delete(pNewPath->BaseObject.hHmgr);
3031
3032 PATH_UnlockPath(pPath);
3034 pDc->dclevel.hPath = 0;
3035 pDc->dclevel.flPath &= ~DCPATH_ACTIVE;
3036
3037 DC_vFinishBlit(pDc, NULL);
3038 DC_UnlockDc(pDc);
3039 return bRet;
3040}
BOOL FASTCALL PATH_StrokePath(DC *dc, PPATH pPath)
Definition: path.c:1610

◆ NtGdiStrokePath()

W32KAPI BOOL WINAPI NtGdiStrokePath ( HDC  hdc)

Definition at line 3044 of file path.c.

3045{
3046 DC *pDc;
3047 PDC_ATTR pdcattr;
3048 PPATH pPath, pNewPath;
3049 BOOL bRet = FALSE;
3050
3051 TRACE("Enter %s\n", __FUNCTION__);
3052
3053 if (!(pDc = DC_LockDc(hDC)))
3054 {
3056 return FALSE;
3057 }
3058
3059 pPath = PATH_LockPath(pDc->dclevel.hPath);
3060 if (!pPath)
3061 {
3062 DC_UnlockDc(pDc);
3063 return FALSE;
3064 }
3065
3067
3068 pdcattr = pDc->pdcattr;
3069
3070 if (pdcattr->ulDirty_ & (DIRTY_LINE | DC_PEN_DIRTY))
3072
3073 pNewPath = PATH_FlattenPath(pPath);
3074
3075 if (pNewPath->state != PATH_Closed)
3076 {
3078 }
3079 else bRet = PATH_StrokePath(pDc, pNewPath);
3080
3081 PATH_UnlockPath(pNewPath);
3082 PATH_Delete(pNewPath->BaseObject.hHmgr);
3083
3084 DC_vFinishBlit(pDc, NULL);
3085
3086 PATH_UnlockPath(pPath);
3088 pDc->dclevel.hPath = 0;
3089 pDc->dclevel.flPath &= ~DCPATH_ACTIVE;
3090
3091 DC_UnlockDc(pDc);
3092 return bRet;
3093}

◆ NtGdiSwapBuffers()

W32KAPI BOOL WINAPI NtGdiSwapBuffers ( HDC  hdc)

◆ NtGdiTransformPoints()

W32KAPI BOOL WINAPI NtGdiTransformPoints ( HDC  hdc,
const POINT points_in,
POINT points_out,
INT  count,
UINT  mode 
)

◆ NtGdiTransparentBlt()

W32KAPI BOOL WINAPI NtGdiTransparentBlt ( HDC  hdc,
int  x_dst,
int  y_dst,
int  width_dst,
int  height_dst,
HDC  hdc_src,
int  x_src,
int  y_src,
int  width_src,
int  height_src,
UINT  color 
)

◆ NtGdiUnrealizeObject()

W32KAPI BOOL WINAPI NtGdiUnrealizeObject ( HGDIOBJ  obj)

Definition at line 1251 of file palette.c.

1252{
1253 BOOL Ret = FALSE;
1254 PPALETTE palGDI;
1255
1256 if ( !hgdiobj ||
1257 GDI_HANDLE_IS_STOCKOBJ(hgdiobj) ||
1259 return Ret;
1260
1261 palGDI = PALETTE_ShareLockPalette(hgdiobj);
1262 if (!palGDI) return FALSE;
1263
1264 // FIXME!!
1265 // Need to do something!!!
1266 // Zero out Current and Old Translated pointers?
1267 //
1268 Ret = TRUE;
1270 return Ret;
1271}
#define GDI_OBJECT_TYPE_PALETTE
Definition: gdi.h:49
#define GDI_HANDLE_IS_TYPE(h, t)
Definition: gdi.h:34

◆ NtGdiUpdateColors()

W32KAPI BOOL WINAPI NtGdiUpdateColors ( HDC  hdc)

Definition at line 1214 of file palette.c.

1215{
1216 PWND Wnd;
1217 BOOL calledFromUser, ret;
1219
1220 calledFromUser = UserIsEntered();
1221
1222 if (!calledFromUser){
1224 }
1225
1227 if (Wnd == NULL)
1228 {
1230
1231 if (!calledFromUser){
1232 UserLeave();
1233 }
1234
1235 return FALSE;
1236 }
1237
1238 UserRefObjectCo(Wnd, &Ref);
1240 UserDerefObjectCo(Wnd);
1241
1242 if (!calledFromUser){
1243 UserLeave();
1244 }
1245
1246 return ret;
1247}
HWND FASTCALL IntWindowFromDC(HDC hDc)
Definition: windc.c:894
BOOL FASTCALL UserIsEntered(VOID)
Definition: ntuser.c:225
VOID FASTCALL UserLeave(VOID)
Definition: ntuser.c:255
VOID FASTCALL UserEnterExclusive(VOID)
Definition: ntuser.c:247
static __inline VOID UserDerefObjectCo(PVOID obj)
Definition: object.h:43
static __inline VOID UserRefObjectCo(PVOID obj, PUSER_REFERENCE_ENTRY UserReferenceEntry)
Definition: object.h:27
Definition: object.h:4
Definition: ntuser.h:694
BOOL FASTCALL co_UserRedrawWindow(PWND Window, const RECTL *UpdateRect, PREGION UpdateRgn, ULONG Flags)
Definition: painting.c:895
PWND FASTCALL UserGetWindowObject(HWND hWnd)
Definition: window.c:123
#define ERROR_INVALID_WINDOW_HANDLE
Definition: winerror.h:1226
#define RDW_INVALIDATE
Definition: winuser.h:1225

◆ NtGdiWidenPath()

W32KAPI BOOL WINAPI NtGdiWidenPath ( HDC  hdc)

Definition at line 3097 of file path.c.

3098{
3099 PPATH pPath;
3100 BOOL Ret = FALSE;
3101 PDC pdc = DC_LockDc(hDC);
3102 TRACE("NtGdiWidenPat Enter\n");
3103 if (!pdc)
3104 {
3106 return FALSE;
3107 }
3108
3109 pPath = PATH_WidenPath(pdc);
3110 if (pPath)
3111 {
3112 TRACE("WindenPath New Path\n");
3113 PATH_Delete(pdc->dclevel.hPath);
3114 pdc->dclevel.hPath = pPath->BaseObject.hHmgr;
3115 Ret = TRUE;
3116 }
3117 DC_UnlockDc(pdc);
3118 TRACE("NtGdiWidenPat Ret %d\n",Ret);
3119 return Ret;
3120}
static PPATH FASTCALL PATH_WidenPath(DC *dc)
Definition: path.c:2133