[ros-dev] [ros-diffs] [jgardou] 56947: [WIN32SS/GDI]
Jérôme Gardou
jerome.gardou at reactos.org
Mon Jul 23 10:14:42 UTC 2012
OOPS.. Sorry. Changelog should have been:
[WIN32SS/NTGDI]
- Associate NULL surface for newly created memory DCs.
jgardou at svn.reactos.org a écrit :
> Author: jgardou
> Date: Mon Jul 23 10:12:53 2012
> New Revision: 56947
>
> URL: http://svn.reactos.org/svn/reactos?rev=56947&view=rev
> Log:
> [WIN32SS/GDI]
>
> Modified:
> trunk/reactos/win32ss/gdi/eng/engbrush.c
> trunk/reactos/win32ss/gdi/ntgdi/bitblt.c
> trunk/reactos/win32ss/gdi/ntgdi/bitmaps.c
> trunk/reactos/win32ss/gdi/ntgdi/dclife.c
> trunk/reactos/win32ss/gdi/ntgdi/dcobjs.c
>
> Modified: trunk/reactos/win32ss/gdi/eng/engbrush.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/eng/engbrush.c?rev=56947&r1=56946&r2=56947&view=diff
> ==============================================================================
> --- trunk/reactos/win32ss/gdi/eng/engbrush.c [iso-8859-1] (original)
> +++ trunk/reactos/win32ss/gdi/eng/engbrush.c [iso-8859-1] Mon Jul 23 10:12:53 2012
> @@ -67,6 +67,9 @@
> pebo->crCurrentText = pdc->pdcattr->crForegroundClr;
>
> pebo->psurfTrg = pdc->dclevel.pSurface;
> + /* We are initializing for a new memory DC */
> + if(!pebo->psurfTrg)
> + pebo->psurfTrg = psurfDefaultBitmap;
> ASSERT(pebo->psurfTrg);
> ASSERT(pebo->psurfTrg->ppal);
>
>
> Modified: trunk/reactos/win32ss/gdi/ntgdi/bitblt.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/ntgdi/bitblt.c?rev=56947&r1=56946&r2=56947&view=diff
> ==============================================================================
> --- trunk/reactos/win32ss/gdi/ntgdi/bitblt.c [iso-8859-1] (original)
> +++ trunk/reactos/win32ss/gdi/ntgdi/bitblt.c [iso-8859-1] Mon Jul 23 10:12:53 2012
> @@ -807,9 +807,11 @@
> SURFACE *psurf;
> POINTL BrushOrigin;
> BOOL ret;
> - PBRUSH pbrush = pebo->pbrush;
> + PBRUSH pbrush;
>
> ASSERT(pebo);
> + pbrush = pebo->pbrush;
> + ASSERT(pbrush);
>
> FIXUP_ROP(dwRop);
>
>
> Modified: trunk/reactos/win32ss/gdi/ntgdi/bitmaps.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/ntgdi/bitmaps.c?rev=56947&r1=56946&r2=56947&view=diff
> ==============================================================================
> --- trunk/reactos/win32ss/gdi/ntgdi/bitmaps.c [iso-8859-1] (original)
> +++ trunk/reactos/win32ss/gdi/ntgdi/bitmaps.c [iso-8859-1] Mon Jul 23 10:12:53 2012
> @@ -259,6 +259,7 @@
> DIBSECTION dibs;
> INT Count;
> PSURFACE psurf = Dc->dclevel.pSurface;
> + if(!psurf) psurf = psurfDefaultBitmap;
> Count = BITMAP_GetObject(psurf, sizeof(dibs), &dibs);
>
> if (Count == sizeof(BITMAP))
>
> Modified: trunk/reactos/win32ss/gdi/ntgdi/dclife.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/ntgdi/dclife.c?rev=56947&r1=56946&r2=56947&view=diff
> ==============================================================================
> --- trunk/reactos/win32ss/gdi/ntgdi/dclife.c [iso-8859-1] (original)
> +++ trunk/reactos/win32ss/gdi/ntgdi/dclife.c [iso-8859-1] Mon Jul 23 10:12:53 2012
> @@ -180,7 +180,7 @@
> pdc->dclevel.pSurface = NULL;
>
> // FIXME: HACK, because our code expects a surface
> - pdc->dclevel.pSurface = SURFACE_ShareLockSurface(StockObjects[DEFAULT_BITMAP]);
> + // pdc->dclevel.pSurface = SURFACE_ShareLockSurface(StockObjects[DEFAULT_BITMAP]);
>
> pdc->erclBounds.left = 0;
> pdc->erclBounds.top = 0;
> @@ -271,12 +271,9 @@
> pdc->dclevel.ptlBrushOrigin.x = 0;
> pdc->dclevel.ptlBrushOrigin.y = 0;
> pdc->dcattr.ptlBrushOrigin = pdc->dclevel.ptlBrushOrigin;
> -
> - /* Initialize EBRUSHOBJs */
> - EBRUSHOBJ_vInit(&pdc->eboFill, pdc->dclevel.pbrFill, pdc);
> - EBRUSHOBJ_vInit(&pdc->eboLine, pdc->dclevel.pbrLine, pdc);
> +
> + /* Init text brush */
> EBRUSHOBJ_vInit(&pdc->eboText, pbrDefaultBrush, pdc);
> - EBRUSHOBJ_vInit(&pdc->eboBackground, pbrDefaultBrush, pdc);
>
> /* Setup fill data */
> pdc->dcattr.jROP2 = R2_COPYPEN;
> @@ -424,9 +421,8 @@
> pdc->dclevel.pbrFill = BRUSH_ShareLockBrush(pdc->pdcattr->hbrush);
> pdc->dclevel.pbrLine = PEN_ShareLockPen(pdc->pdcattr->hpen);
>
> - /* Update the EBRUSHOBJs */
> - EBRUSHOBJ_vUpdate(&pdc->eboFill, pdc->dclevel.pbrFill, pdc);
> - EBRUSHOBJ_vUpdate(&pdc->eboLine, pdc->dclevel.pbrLine, pdc);
> + /* Mark them as dirty */
> + pdc->pdcattr->ulDirty_ |= DIRTY_FILL|DIRTY_LINE;
>
> /* Allocate or free DC attribute */
> if (ulOwner == GDI_OBJ_HMGR_PUBLIC || ulOwner == GDI_OBJ_HMGR_NONE)
> @@ -796,7 +792,7 @@
> DC_bAllocDcAttr(pdcNew);
>
> // HACK!
> - DC_vSelectSurface(pdcNew, psurfDefaultBitmap);
> + //DC_vSelectSurface(pdcNew, psurfDefaultBitmap);
>
> DC_UnlockDc(pdcNew);
>
>
> Modified: trunk/reactos/win32ss/gdi/ntgdi/dcobjs.c
> URL: http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/ntgdi/dcobjs.c?rev=56947&r1=56946&r2=56947&view=diff
> ==============================================================================
> --- trunk/reactos/win32ss/gdi/ntgdi/dcobjs.c [iso-8859-1] (original)
> +++ trunk/reactos/win32ss/gdi/ntgdi/dcobjs.c [iso-8859-1] Mon Jul 23 10:12:53 2012
> @@ -230,9 +230,10 @@
> }
>
> /* Is this a valid palette for this depth? */
> - if ((BitsPerFormat(pdc->dclevel.pSurface->SurfObj.iBitmapFormat) <= 8
> - && (ppal->flFlags & PAL_INDEXED)) ||
> - (BitsPerFormat(pdc->dclevel.pSurface->SurfObj.iBitmapFormat) > 8))
> + if ((!pdc->dclevel.pSurface) ||
> + (BitsPerFormat(pdc->dclevel.pSurface->SurfObj.iBitmapFormat) <= 8
> + && (ppal->flFlags & PAL_INDEXED)) ||
> + (BitsPerFormat(pdc->dclevel.pSurface->SurfObj.iBitmapFormat) > 8))
> {
> /* Get old palette, set new one */
> oldPal = pdc->dclevel.hpal;
> @@ -383,7 +384,7 @@
> pdc->dclevel.sizl.cy = 1;
>
> // HACK
> - psurfNew = SURFACE_ShareLockSurface(hbmp);
> + //psurfNew = SURFACE_ShareLockSurface(hbmp);
> }
> else
> {
>
>
More information about the Ros-dev
mailing list