ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

engobjects.h
Go to the documentation of this file.
00001 /*
00002  *  ReactOS kernel
00003  *  Copyright (C) 1998, 1999, 2000, 2001 ReactOS Team
00004  *
00005  *  This program is free software; you can redistribute it and/or modify
00006  *  it under the terms of the GNU General Public License as published by
00007  *  the Free Software Foundation; either version 2 of the License, or
00008  *  (at your option) any later version.
00009  *
00010  *  This program is distributed in the hope that it will be useful,
00011  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013  *  GNU General Public License for more details.
00014  *
00015  *  You should have received a copy of the GNU General Public License along
00016  *  with this program; if not, write to the Free Software Foundation, Inc.,
00017  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
00018  */
00019  /*
00020  * COPYRIGHT:         See COPYING in the top level directory
00021  * PROJECT:           ReactOS kernel
00022  * PURPOSE:           GDI Internal Objects
00023  * FILE:              subsystem/win32/win32k/eng/objects.h
00024  * PROGRAMER:         Jason Filby
00025  * REVISION HISTORY:
00026  *                 21/8/1999: Created
00027  */
00028 
00029 #pragma once
00030 
00031 /* Structure of internal gdi objects that win32k manages for ddi engine:
00032    |---------------------------------|
00033    |         Public part             |
00034    |      accessed from engine       |
00035    |---------------------------------|
00036    |        Private part             |
00037    |       managed by gdi            |
00038    |_________________________________|
00039 
00040 ---------------------------------------------------------------------------*/
00041 
00042 /* EXtended CLip and Window Region Object */
00043 typedef struct _XCLIPOBJ
00044 {
00045   WNDOBJ;
00046   PVOID   pClipRgn;    /* prgnRao_ or (prgnVis_ if (prgnRao_ == z)) */
00047   RECTL   rclClipRgn;
00048   PVOID   pscanClipRgn; /* Ptr to regions rect buffer based on iDirection. */
00049   DWORD   cScan;
00050   DWORD   reserved;
00051   ULONG   ulBSize;
00052   LONG    lscnSize;
00053   ULONG   ulObjSize;
00054   ULONG   iDirection;
00055   ULONG   ulClipType;
00056   DWORD   reserved1;
00057   LONG    lUpDown;
00058   DWORD   reserved2;
00059   BOOL    bShouldDoAll;
00060   DWORD   nComplexity; /* count/mode based on # of rect in regions scan. */
00061   PVOID   pDDA;        /* Pointer to a large drawing structure. */
00062 } XCLIPOBJ, *PXCLIPOBJ;
00063 /*
00064   EngCreateClip allocates XCLIPOBJ and RGNOBJ, pco->co.pClipRgn = &pco->ro.
00065   {
00066     XCLIPOBJ co;
00067     RGNOBJ   ro;
00068   }
00069  */
00070 typedef struct _CLIPGDI {
00071   CLIPOBJ ClipObj;
00072   ULONG EnumPos;
00073   ULONG EnumOrder;
00074   ULONG EnumMax;
00075   ENUMRECTS EnumRects;
00076 } CLIPGDI, *PCLIPGDI;
00077 
00078 /*ei What is this for? */
00079 typedef struct _DRVFUNCTIONSGDI {
00080   HDEV  hdev;
00081   DRVFN Functions[INDEX_LAST];
00082 } DRVFUNCTIONSGDI;
00083 
00084 typedef struct _FLOATGDI {
00085   ULONG Dummy;
00086 } FLOATGDI;
00087 
00088 typedef struct _FONTGDI {
00089   FONTOBJ     FontObj;
00090   ULONG       iUnique;
00091   FLONG       flType;
00092   union{
00093   DHPDEV      dhpdev;
00094   FT_Face     face;
00095   };
00096 
00097   LONG        lMaxNegA;
00098   LONG        lMaxNegC;
00099   LONG        lMinWidthD;
00100 
00101   LPWSTR      Filename;
00102   BYTE        Underline;
00103   BYTE        StrikeOut;
00104 } FONTGDI, *PFONTGDI;
00105 
00106 typedef struct _PATHGDI {
00107   PATHOBJ PathObj;
00108 } PATHGDI;
00109 
00110 typedef struct _WNDGDI {
00111   WNDOBJ            WndObj;
00112   HWND              Hwnd;
00113   CLIPOBJ           *ClientClipObj;
00114   WNDOBJCHANGEPROC  ChangeProc;
00115   FLONG             Flags;
00116   int               PixelFormat;
00117 } WNDGDI, *PWNDGDI;
00118 
00119 typedef struct _XFORMGDI {
00120   ULONG Dummy;
00121   /* XFORMOBJ has no public members */
00122 } XFORMGDI;
00123 
00124 /* As the *OBJ structures are located at the beginning of the *GDI structures
00125    we can simply typecast the pointer */
00126 #define ObjToGDI(ClipObj, Type) (Type##GDI *)(ClipObj)
00127 #define GDIToObj(ClipGDI, Type) (Type##OBJ *)(ClipGDI)

Generated on Sat May 26 2012 04:37:08 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.