This looks like ultra-hax. Can you explain why this should be correct?
It would mean DrvSetPixelFormat would be passed a SURFACE rather than a
SURFOBJ.
jimtabor(a)svn.reactos.org schrieb:
Author: jimtabor
Date: Tue Jun 2 10:50:36 2009
New Revision: 41250
URL:
http://svn.reactos.org/svn/reactos?rev=41250&view=rev
Log:
- Hax-implement NtGdiSetPixelFormat and add a support function UserGethWnd with some code
cleanup.
Modified:
[...]
+ /*
+ Based on some rules! InfoDC to DC or, based on wiki information!
+ All pointers, it's a "must be!", (CONTAINING_RECORD +10h = SURFOBJ),
the
+ pointer will start at SURFOBJ of the SURFACE structure.
+ */
+ pso = (SURFOBJ *)pdc->dclevel.pSurface;
+ if (!pso) pso = pdc->pSurfInfo;
+ if (!pso) pso = ppdev->pSurface;
+ }
+
+ if (ppdev->flFlags & PDEV_META_DEVICE)
+ {
+ UNIMPLEMENTED;
+ goto Exit;
+ }
+
+ if (ppdev->DriverFunctions.SetPixelFormat)
+ {
+ Ret = ppdev->DriverFunctions.SetPixelFormat(
+ pso,
+ ipfd,
+ hWnd);
+ }