Commit graph

78 commits

Author SHA1 Message Date
James Tabor de77947079 - Pass more bitmap cross tests, 16 bit is down to 52. I have more fixes that relate to that number, need more time to work on it. Fixed SEH abuse in CreateBitmap.
svn path=/trunk/; revision=37522
2008-11-21 18:34:31 +00:00
James Tabor fa0375352f - Fixes bug 3864. While I was at it I fixed most of the gdi max bit max info sizes too.
- Added notes for the SEH abuse in win32k dibobj.c.
- Tested WinMerge 2.10.2, AbiWord 2.4.1, Firefox 1.5.0.3 and wine gdi32 bitmap cross test.
- When testing with gdi cross test in 24 and 32 bit display mode, we have a pixel conversion mismatch. Please fix it!


svn path=/trunk/; revision=37436
2008-11-18 05:36:19 +00:00
James Tabor 02456c2f68 - Start the implementation and support for dc attribute dirty bits. See bug 3863.
svn path=/trunk/; revision=37346
2008-11-13 23:12:42 +00:00
James Tabor 7d22914162 - Add missing CAPS to psdk.
- Implemented NtGdiGetDeviceCapsAll.
- Now support primary display device capabilities in shared gdi handle table.

svn path=/trunk/; revision=36825
2008-10-19 04:47:04 +00:00
Timo Kreuzer dcae209a08 Change DC and DC_ATTR members from MATRIX_S and EFLOAT_S, which are explicit fpu emulation types, instead use MATRIX and FLOATOBJ which are the class types. Plug in new FLOATOBJ api and remove old fpu using version. Implement XFORMOBJ api using FLOATOBJ. Remove most of the fpu using code from win32k.
svn path=/trunk/; revision=35779
2008-08-30 01:01:52 +00:00
Timo Kreuzer a5e5e742fd Patch by Stefan Ginsberg:
- remove XFORM members from DC structure and use MATRIX instead. Use MatrixS2XForm and XForm2MatrixS for intermediate conversion.
- this is a temporary solution (still using fpu) until I'm finished with FLOATOBJ rewrite + XFOROMOBJ api (soon)

svn path=/trunk/; revision=34554
2008-07-16 20:16:30 +00:00
James Tabor 64a20b3ace Path needed some love Phase I:
- Rewrite Path handle support and reordered path.c.
- Wine Sync/Port PATH_WidenPath and PATH_DoArcPart. Wine Path test results: 151 tests executed (0 marked as todo, 24 failures). 3 skipped.
- Found where the use of SelectObject in DC_InitDC, placed nulls into hbrush and hpen, I comment out and used StockObject and now default drawing works.
- Implemented AngleArc and most of Arc. This is very experimental and it does draw and does not crash.
- Cleaned up some files with extra <CR> at the end of lines.
- Fully tested: Taskmgr, FF 1.5, Abiword, drawing programs, and all.
- Note: Path drawing is majorly misaligned. Fill path will draw in one area and Stroke path will draw in another.
- Note: Trunk: Gdi wine DC test: dc.c:89 Failed to lock hDC, sometimes locking up the system. See bug 3333.

svn path=/trunk/; revision=34119
2008-06-27 00:06:46 +00:00
James Tabor 4d4d130154 Attempt to fix bug 3259. Use IntGdiCleanDC for error checking.
svn path=/trunk/; revision=33863
2008-06-06 02:59:12 +00:00
James Tabor e8eda04c27 Move from fixed PrimarySurface to pointer based pPrimarySurface. Misc changes..
svn path=/trunk/; revision=33832
2008-06-03 03:41:54 +00:00
James Tabor bcefe305f1 Update Dc level structure.
svn path=/trunk/; revision=33831
2008-06-02 21:10:31 +00:00
James Tabor b0c65c30fe Move xform data from W structure into DcLevel within unions. Why: Sticking with systems floating point and reducing the size of DC.
svn path=/trunk/; revision=33830
2008-06-02 19:51:04 +00:00
James Tabor 114a366a38 Stefan Ginsberg <stefan__100__ at hotmail.com>
- Remove old DCOrg and replace it with ptlDCOrig.

svn path=/trunk/; revision=33828
2008-06-02 17:53:53 +00:00
James Tabor 87b264fba8 Modified GDIOBJ_Copy and Set owner to return bool. Start the use of server info for metrics data. Tested with Qemu on Linux.
svn path=/trunk/; revision=33765
2008-05-30 04:56:10 +00:00
Timo Kreuzer 22942d0ae4 remove hFirstBitmap from the WIN_DC_INFO struct, wasn't used anyway and use StockObject(DEFAULT_BITMAP) for the default bitmap when creating a mem dc as on windows.
svn path=/trunk/; revision=33762
2008-05-29 19:44:23 +00:00
Timo Kreuzer d60ea94881 fix palette implementation: use the surface's palette to crate the xlate objects, default to the device default palette. The dc palette defaults to stock object default palette. Implement IntCreateXlateForBlt, used in BitBlt etc functions to perform the needed operations to create the xlate object instead of duplicating the code. This allows for global thermonuclear solitaire again and hopefully doesn't break everything else ;-)
svn path=/trunk/; revision=33752
2008-05-29 01:17:50 +00:00
James Tabor d05a01709b Add more data for extended clip object.
svn path=/trunk/; revision=33658
2008-05-23 12:50:46 +00:00
James Tabor 540035b99a Removed w.flags from dc.h update all related.
svn path=/trunk/; revision=33656
2008-05-23 01:46:55 +00:00
James Tabor f5aa4b5c0c Move W structure back into dc.h and added the clip object for dcobj.
svn path=/trunk/; revision=33655
2008-05-23 01:11:25 +00:00
James Tabor 6f3798d0cf Removed unused code from Arc. Removed old saveLevel and hSelf, use DcLevel. Other changes to region and clipping.
svn path=/trunk/; revision=33653
2008-05-23 00:29:08 +00:00
Timo Kreuzer 7325a8a281 remove PalIndexed from dc struct
svn path=/trunk/; revision=33334
2008-05-06 20:50:53 +00:00
James Tabor d6273ed28e Quick implementation of DxEngCreateMemoryDC and DxEngCleanDC. It compiles. 8^D
svn path=/trunk/; revision=33310
2008-05-06 04:22:49 +00:00
James Tabor 9b3cb4f2aa Impement DxEngSetDCState, DxEngIsHdevLockedByCurrentThread and DxEngUn & ReferenceHdev.
svn path=/trunk/; revision=33284
2008-05-04 23:17:10 +00:00
James Tabor 05c051a5d4 Implement NtGdiGetDCforBitmap. Q. Where to set hdc? ATM we return null.
svn path=/trunk/; revision=33026
2008-04-18 20:43:25 +00:00
James Tabor 6449849098 Add new examples for retrieving DC origin.
svn path=/trunk/; revision=33015
2008-04-18 02:23:38 +00:00
James Tabor cbd1d50bb1 Fix copy count and added dc path flags and support new arc direction.
svn path=/trunk/; revision=32992
2008-04-17 01:12:58 +00:00
Timo Kreuzer fb4af9ff8f - fix build
- remobe RegisterThreadAcceleratorTable prototype (function doesn't exist)

svn path=/trunk/; revision=32991
2008-04-16 21:55:47 +00:00
Timo Kreuzer 73ca643c51 win32k header cleanup/update:
- make the headers include headers they depend on, so the inclusion order is irrelevant, not finished
- start sorting them alphabetically
- remove duplicate include of timer.h
- add cliprgn.h
- add DCLEVEL struct and make DC struct windows xp compatible (currently + some ros specific entries)

svn path=/trunk/; revision=32989
2008-04-16 21:34:12 +00:00
Timo Kreuzer c11d265144 Bye, bye, GDIOBJ header! You've served us well, but now the time has come for you to make room for BASEOBJECT.
Also bye, bye, HandleTable parameter. You've never done any reasonable job, so no one will be missing you.

svn path=/trunk/; revision=32497
2008-02-26 23:09:20 +00:00
Timo Kreuzer d8582b6bd2 - add BASEOBJECT to brush, palette, font and region structures- fix debug output
svn path=/trunk/; revision=32485
2008-02-26 01:00:34 +00:00
Timo Kreuzer ebc9271c72 some cleanup
- move NtGdiFlushUserBatch prototype to ntgdi.h
- move pool tags from ntgdihdl.h to win32k/tags.h
- move DC struct from ntgdihdl.h to win32k/dc.h
- replace GDIEMPTYHDR with BASEOBJECT
- use BASEOBJECT in DC and GDIDEVICE structures
- rename some NtGdiXxx functions that don't deserve that name and remove some that were defined by a macro, but don't exist on windows (#if 0'ed atm)
- remove RetrieveDisplayHDC() prototype (doesn't exist)

svn path=/trunk/; revision=32419
2008-02-18 23:05:41 +00:00
James Tabor 8592433357 See http://msdn2.microsoft.com/en-us/library/aa293810(VS.60).aspx for details.
svn path=/trunk/; revision=31694
2008-01-10 06:34:37 +00:00
James Tabor 238f8e2ac9 Remove unused flags and start using new dc type ids.
svn path=/trunk/; revision=31660
2008-01-08 03:48:08 +00:00
James Tabor f7a3ba1f59 Add graphics device structure.
svn path=/trunk/; revision=31588
2008-01-04 02:26:09 +00:00
James Tabor c8d1a61558 Fix DxEngGetHdevData.
svn path=/trunk/; revision=31578
2008-01-02 23:57:05 +00:00
James Tabor 1f316e8323 Fix DxEngSetHdevData.
svn path=/trunk/; revision=31576
2008-01-02 23:21:24 +00:00
James Tabor 420a4b869c Add new dxdd support members to gdi device structure.
svn path=/trunk/; revision=31573
2008-01-02 22:17:59 +00:00
Magnus Olsen 7ef202bdd6 rename Pdev to hPDev in GDIDEVICE struct
fixed bug in DxEngGetDCState

svn path=/trunk/; revision=31530
2008-01-01 01:08:07 +00:00
James Tabor 88eea4a9ce Support NtGdiGetDhpdev.
svn path=/trunk/; revision=31463
2007-12-27 17:56:31 +00:00
James Tabor 5c4628595b Fixed one more test, now from 23 to 22 fail. Reordered NtGdiDeleteObjectApp and created a separate function so that applications can not delete DCs belonging to DCEs. Add a check for Wnd = NULL for UserGetDCEx, this did not help the test results. Test Qemu Linux, Xp and hardware. Install and run AbiWord and FF as tests.
svn path=/trunk/; revision=31033
2007-12-06 02:09:56 +00:00
James Tabor 124f989076 Fix NtGdiFlush so it will not spam the debug list. Add changes and fixups.
svn path=/trunk/; revision=30994
2007-12-04 07:51:03 +00:00
James Tabor de21070985 Add GdiDevice flags.
svn path=/trunk/; revision=30950
2007-12-02 00:42:31 +00:00
James Tabor d2bb5d906c - Removed NtGdiGet/SetStretchBltMode, updated all related files.
- Implement GetHFONT & Get/SetLayout/Width.
- Add layout types to PSDK.
- Updates and small cleanups.

svn path=/trunk/; revision=30831
2007-11-28 07:52:51 +00:00
James Tabor 48a2026e7a Removing old syscalls and updated related files. Old syscalls will be renamed for internal use.
svn path=/trunk/; revision=30603
2007-11-20 19:56:57 +00:00
James Tabor 3d30146033 Optimize and cleanup dcutil.
svn path=/trunk/; revision=30582
2007-11-20 02:22:30 +00:00
James Tabor 417b927ad5 Removed code support for dcattr, it was over kill. Fix display locks, take resource from GdiDevice. If pDc_Attr zero, use internal. Fix mass exit error when freeing already freed handle.
svn path=/trunk/; revision=30448
2007-11-14 22:53:19 +00:00
James Tabor 9c5a81037b Move types out of handles headers. Add Locks for displays.
svn path=/trunk/; revision=30402
2007-11-12 19:08:44 +00:00
James Tabor f0e8f2df37 3rd FIN.
svn path=/trunk/; revision=30374
2007-11-12 06:43:44 +00:00
James Tabor 98f75aa494 2nd Sort out gdi device mess.
svn path=/trunk/; revision=30373
2007-11-12 04:58:41 +00:00
James Tabor cd2962c5b8 1st Sort out gdi device mess.
svn path=/trunk/; revision=30370
2007-11-12 01:26:32 +00:00
Magnus Olsen 759c0dde2a Merge from branch ReactX to Trunk,
Please make a clean build after this update

Add dxg.sys driver 
----------------------------------------------------------------
This driver contains all DirectX graphic APIs called by win32k. Most of them
are stubbed, and the following APIs are implemented:
DxDxgGenericThunk, DxDdIoctl, DriverEntry, DxDdStartupDxGraphics, DxDdCleanupDxGraphics

Add dxgthk.sys driver, which is 100% finished
---------------------------------------------------------
The following APIs are implemented (almost all are forwarders):
DriverEntry, EngAcquireSemaphore, EngAllocMem, EngAllocUserMem,
EngCopyBits, EngCreateBitmap, EngCreatePalette, EngCreateSemaphore,
EngDeletePalette, EngDeleteSemaphore, EngDeleteSurface,
EngFindImageProcAddress, EngFreeMem, EngFreeUserMem,
EngLoadImage, EngLockSurface, EngReleaseSemaphore,
EngSetLastError, EngUnloadImage, EngUnlockSurface

Add dxapi.sys driver
--------------------------------------------------------------
Most of the APIs used by the graphic card's driver or win32k are stubs.
The following APIs are implemented:
DriverEntry, GsDriverEntry, DxApiGetVersion, DxApi.
All APIs which DxApi wraps are stubs.
 
Changes in win32k
-------------------------------------------------------------------
Move _DC struct to include\reactos\win32k\ntgdihdl.h
--------------------------------------------------------------------------
Implement NtGdiDdCanCreateD3DBuffer, NtGdiD3dContextDestroy,
NtGdiD3dContextDestroyAll, NtGdiDdCreateD3DBuffer, NtGdiDdDestroyD3DBuffer,
NtGdiD3dDrawPrimitives2, NtGdiDdLockD3D, NtGdiD3dValidateTextureStageState, 
NtGdiDdUnlockD3D, NtGdiDdCreateSurface, NtGdiDdWaitForVerticalBlank, 
NtGdiDdCanCreateSurface, NtGdiDdGetScanLine, NtGdiDdCreateSurfaceEx,
DxDdStartupDxGraphics, NtGdiDdCreateDirectDrawObject, NtGdiDxgGenericThunk,
NtGdiDdGetDriverState, NtGdiDdColorControl, NtGdiDdCreateSurfaceObject,
NtGdiDdCreateSurfaceObject, NtGdiDdDeleteDirectDrawObject, NtGdiDdDeleteSurfaceObject,
NtGdiDdQueryDirectDrawObject, NtGdiDdReenableDirectDrawObject, NtGdiDdGetDriverInfo,
NtGdiDdGetAvailDriverMemory, NtGdiDdSetExclusiveMode, NtGdiDdFlipToGDISurface,
NtGdiDdGetDC, NtGdiDdGetDxHandle, NtGdiDdReleaseDC, NtGdiDdResetVisrgn,
NtGdiDdSetGammaRamp, NtGdiDdDestroySurface, NtGdiDdFlip, NtGdiDdLock, NtGdiDdUnlock,
NtGdiDdBlt, NtGdiDdSetColorKey, NtGdiDdAddAttachedSurface, NtGdiDdGetBltStatus,
NtGdiDdGetFlipStatus, NtGdiDdUpdateOverlay, NtGdiDdSetOverlayPosition,
NtGdiDdAlphaBlt, NtGdiDdAttachSurface, NtGdiDdUnattachSurface,
NtGdiDvpCanCreateVideoPort, NtGdiDvpColorControl, NtGdiDvpCreateVideoPort,
NtGdiDvpDestroyVideoPort, NtGdiDvpFlipVideoPort, NtGdiDvpGetVideoPortBandwidth,
NtGdiDvpGetVideoPortFlipStatus, NtGdiDvpGetVideoPortInputFormats, 
NtGdiDvpGetVideoPortLine, NtGdiDvpGetVideoPortOutputFormats, 
NtGdiDvpGetVideoPortConnectInfo, NtGdiDvpGetVideoSignalStatus,
NtGdiDvpUpdateVideoPort, NtGdiDvpWaitForVideoPortSync,
NtGdiDvpAcquireNotification, NtGdiDvpReleaseNotification,
NtGdiDvpGetVideoPortField, NtGdiDdBeginMoCompFrame,
NtGdiDdCreateMoComp, NtGdiDdDestroyMoComp,
NtGdiDdEndMoCompFrame, NtGdiDdGetInternalMoCompInfo,
NtGdiDdGetMoCompBuffInfo, NtGdiDdGetMoCompFormats,
NtGdiDdGetMoCompGuids, NtGdiDdQueryMoCompStatus,
NtGdiDdRenderMoComp, HeapVidMemAllocAligned,
VidMemFree, EngAllocPrivateUserMem, EngFreePrivateUserMem,
EngLockDirectDrawSurface, EngUnlockDirectDrawSurface

But all those functions are stubbed in dxg.sys
----------------------------------------------------------------------------
Implemented APIsL

DxEngLockDC, DxEngUnlockDC, DxEngGetDCState, EngDxIoctl
----------------------------------------------------------------------------
Stubbed APIs:

DxEngNUIsTermSrv, DxEngRedrawDesktop, DxEngDispUniq, DxEngVisRgnUniq,
DxEngEnumerateHdev, DxEngGetDeviceGammaRamp, DxEngCreateMemoryDC,
DxEngScreenAccessCheck, DxEngLockShareSem, DxEngUnlockShareSem,
DxEngLockHdev, DxEngUnlockHdev, DxEngReferenceHdev,
DxEngIsHdevLockedByCurrentThread, DxEngUnreferenceHdev, 
DxEngSetDeviceGammaRamp, DxEngSpTearDownSprites, 
DxEngSpUnTearDownSprites, DxEngSpSpritesVisible,
DxEngGetHdevData, DxEngSetHdevData, DxEngGetDesktopDC,
DxEngDeleteDC, DxEngCleanDC, DxEngSetDCOwner,
DxEngSetDCState, DxEngSelectBitmap,DxEngSetBitmapOwner, 
DxEngDeleteSurface, DxEngGetSurfaceData, DxEngAltLockSurface,
DxEngUploadPaletteEntryToSurface, DxEngMarkSurfaceAsDirectDraw, 
DxEngSelectPaletteToSurface, DxEngSyncPaletteTableWithDevice,
DxEngSetPaletteState, DxEngGetRedirectionBitmap, DxEngLoadImage, 
DxEngIncDispUniq

----------------------------------------------------------------------------
Remember we need the DxEng APIs implemented and HeapVidMemAllocAligned,
VidMemFree, EngAllocPrivateUserMem, EngFreePrivateUserMem,
EngLockDirectDrawSurface, EngUnlockDirectDrawSurface implemented
before it's possible to have full DirectX support at kmode.

svn path=/trunk/; revision=30328
2007-11-10 15:31:49 +00:00