NtGdiStretchDIBitsInternal Changes that Broke Sims in R51005 This was searched using the parameter "dibobj.c" and then looking for "[WIN32K]" in the message. Revision: 2bbd8711a747e88759edcff139e64e348a79a5a6 Author: Timo Kreuzer Date: 3/9/2011 9:46:13 AM Message: [WIN32K] - Fix calculation of dest rect in IntSetDIBits (Not affected by patch). - Rewrite NtGdiStretchDIBitsInternal. It now calls NtGdiSetDIBitsToDeviceInternal in case of SRCCOPY and no stretching and NtGdiCreateDIBitmapInternal + IntEngStretchBlt in the default case. This fixes RLE compressed dibs. - The code isn't yet perfect, Windows behaviour is pretty complex, especially in regard to topdown/bottomup DIBs and the whole code needs to be rewritten. It will cause one more failed bitmap test, but another one that was formerly only passing with legacy 9x behaviour now behaves correctly. See issue #5886 for more details. svn path=/trunk/; revision=51005 ---- Modified: reactos/subsystems/win32/win32k/objects/dibobj.c External issue ID: 5886 ReactOS CORE-5337 bitmap in About-dialog (shell32) not drawn, but black rectangle =============== Revision: 197cf31913c02e80869aa23b6c8f9bb75f17a0dd Author: Timo Kreuzer Date: 4/15/2011 10:29:08 AM Message: [WIN32K] - Use shared locks for surfaces and palettes svn path=/trunk/; revision=51352 ---- Modified: reactos/subsystems/win32/win32k/ntddraw/dxeng.c Modified: reactos/subsystems/win32/win32k/ntuser/cursoricon.c Modified: reactos/subsystems/win32/win32k/objects/bitmaps.c Modified: reactos/subsystems/win32/win32k/objects/dibobj.c Modified: reactos/subsystems/win32/win32k/objects/palette.c - No changes to NtGdiStretchDIBitsInternal function. ================================================== Revision: 46662954bd37f3eca5eebb67ac831d589681a8a5 Author: Timo Kreuzer Date: 4/18/2011 2:09:05 PM Message: [WIN32K] - Use shared locks for surfaces and palettes svn path=/trunk/; revision=51392 ---- Modified: reactos/subsystems/win32/win32k/eng/bitblt.c Modified: reactos/subsystems/win32/win32k/eng/stretchblt.c Modified: reactos/subsystems/win32/win32k/ntuser/clipboard.c Modified: reactos/subsystems/win32/win32k/ntuser/cursoricon.c Modified: reactos/subsystems/win32/win32k/ntuser/sysparams.c Modified: reactos/subsystems/win32/win32k/objects/bitmaps.c Modified: reactos/subsystems/win32/win32k/objects/dibobj.c Modified: reactos/subsystems/win32/win32k/objects/icm.c - No changes to NtGdiStretchDIBitsInternal function. ================================================================= Revision: 9ff568fd7dad878066c33a83a054248b8f74ea0c Author: Timo Kreuzer Date: 4/28/2011 3:26:46 AM Message: [WIN32K] Rewrite of the GDI handle manager - The old handle manager used a completely retarded spinlock in combination with KeDelayExecutionThread() for both exclusive and shared locks. This is probably the most uneffective algorithm possible. It was also duplicating code everywhere and it was a overall mess It is now replaced with a lock-free reference counter for shared locks and a pushlock for exclusive locks. -> Better performance and scalability. - Allocate user mode object attributes from the new gdi pool. This way, we don't need any caching, since the pool serves as a cache. Its also much faster and uses much less memory. - Allow object allocations of different size, instead of fixed size from a table. This way a single allocation can take care of actual needs. - Allow allcoating objects without a handle and insert them into the handle table later - Properly synchronize the process GDIHandleCount. Now gdiview and taskmanager show the correct number of gdi handles. - Implement a new event tracking system, that is capable of tracking all reverences and locks of objects and pool allocations to help track possible leaks - Make sure that all objects of a process are deleted in cleanup - Make sure all usermode memory allocations are freed, when cleaning up the process pool. - Make sure that each object type is using the correct type of lock (either shared or exclusive, not a mixture) - Fix some object / reference leaks - Lots of inferface improvements - Use global variables for certain things instead of members in the mapped gdi handle table - Make IntSysCreateRectpRgn create a region without a handle - Fix detection od source and mask use in GreStretchBltMask - Use GDIOBJ_bLockMultipleObjects in NtGdiCombineRegion to avoid possible deadlocks - Fix NtGdiAbortPath to reset DCPATH_ACTIVE flag in the dc and only bail out on error, instead of always - Replace DC_AllocateDcAttr and DC_AllocDcAttr with DC_bAllocDcAttr using the new user mode pool - Remove DCU_SyncDcAttrtoUser and DCU_SynchDcAttrtoUser. Those functions were unused and didn't do anything useful anyway, - Replace IntGdiSetDCOwnerEx and DC_SetOwnership with GreSetDCOwner, remove unused NoSetBrush parameter - Replace GDIOBJ_bValidateHandle and IsObjectDead with GreIsHandleValid - Chage GDIOBJ_bLockMultipleObjects: pass object type, return a BOOL, whether all objects could be locked, cleanup on failure svn path=/trunk/; revision=51470 ---- Modified: reactos/subsystems/win32/win32k/eng/driverobj.c Modified: reactos/subsystems/win32/win32k/eng/engbrush.c Modified: reactos/subsystems/win32/win32k/eng/engwindow.c Modified: reactos/subsystems/win32/win32k/eng/pdevobj.c Modified: reactos/subsystems/win32/win32k/eng/surface.c Modified: reactos/subsystems/win32/win32k/include/brush.h Modified: reactos/subsystems/win32/win32k/include/color.h Modified: reactos/subsystems/win32/win32k/include/dc.h Modified: reactos/subsystems/win32/win32k/include/dib.h Modified: reactos/subsystems/win32/win32k/include/driverobj.h Modified: reactos/subsystems/win32/win32k/include/gdidebug.h Modified: reactos/subsystems/win32/win32k/include/gdiobj.h Modified: reactos/subsystems/win32/win32k/include/misc.h Modified: reactos/subsystems/win32/win32k/include/palette.h Modified: reactos/subsystems/win32/win32k/include/path.h Modified: reactos/subsystems/win32/win32k/include/pen.h Modified: reactos/subsystems/win32/win32k/include/region.h Modified: reactos/subsystems/win32/win32k/include/surface.h Modified: reactos/subsystems/win32/win32k/include/text.h Modified: reactos/subsystems/win32/win32k/include/win32.h Modified: reactos/subsystems/win32/win32k/include/win32kp.h Modified: reactos/subsystems/win32/win32k/main/dllmain.c Modified: reactos/subsystems/win32/win32k/ntddraw/dxeng.c Modified: reactos/subsystems/win32/win32k/ntuser/cursoricon.c Modified: reactos/subsystems/win32/win32k/ntuser/desktop.c Modified: reactos/subsystems/win32/win32k/ntuser/message.c Modified: reactos/subsystems/win32/win32k/ntuser/monitor.c Modified: reactos/subsystems/win32/win32k/ntuser/painting.c Modified: reactos/subsystems/win32/win32k/ntuser/sysparams.c Modified: reactos/subsystems/win32/win32k/ntuser/vis.c Modified: reactos/subsystems/win32/win32k/ntuser/windc.c Modified: reactos/subsystems/win32/win32k/ntuser/winpos.c Modified: reactos/subsystems/win32/win32k/ntuser/winsta.c Modified: reactos/subsystems/win32/win32k/objects/bitblt.c Modified: reactos/subsystems/win32/win32k/objects/bitmaps.c Modified: reactos/subsystems/win32/win32k/objects/brush.c Modified: reactos/subsystems/win32/win32k/objects/cliprgn.c Modified: reactos/subsystems/win32/win32k/objects/dcattr.c Modified: reactos/subsystems/win32/win32k/objects/dclife.c Modified: reactos/subsystems/win32/win32k/objects/dcobjs.c Modified: reactos/subsystems/win32/win32k/objects/dcstate.c Modified: reactos/subsystems/win32/win32k/objects/dibobj.c Modified: reactos/subsystems/win32/win32k/objects/drawing.c Modified: reactos/subsystems/win32/win32k/objects/fillshap.c Modified: reactos/subsystems/win32/win32k/objects/gdibatch.c Modified: reactos/subsystems/win32/win32k/objects/gdidbg.c Modified: reactos/subsystems/win32/win32k/objects/gdiobj.c Modified: reactos/subsystems/win32/win32k/objects/gdipool.c Modified: reactos/subsystems/win32/win32k/objects/icm.c Modified: reactos/subsystems/win32/win32k/objects/palette.c Modified: reactos/subsystems/win32/win32k/objects/path.c Modified: reactos/subsystems/win32/win32k/objects/pen.c Modified: reactos/subsystems/win32/win32k/objects/region.c Modified: reactos/subsystems/win32/win32k/win32k.rbuild - No changes to NtGdiStretchDIBitsInternal function. ======================================================================= Revision: 71f6457399e8cf766a1aef03b68e15c943392267 Author: Rafal Harabien Date: 5/26/2011 4:25:57 PM Message: [WIN32K] - Remove unused ROS specific NtGdiSetDIBits syscall svn path=/trunk/; revision=51936 ---- Modified: reactos/include/reactos/win32k/ntgdibad.h Modified: reactos/subsystems/win32/win32k/objects/dibobj.c Modified: reactos/subsystems/win32/win32k/w32ksvc.db Modified: reactos/subsystems/win32/win32k/w32ksvc.h - No changes to NtGdiStretchDIBitsInternal function. ============================================================================ Revision: 4d19f25802b23d42a50d9482dcfcac55029a43fa Author: Giannis Adamopoulos Date: 9/20/2011 2:41:33 PM Message: [win32k] - Replace long file headers with short headers - Minor cleanup svn path=/trunk/; revision=53778 ---- Modified: reactos/subsystems/win32/win32k/eng/bitblt.c Modified: reactos/subsystems/win32/win32k/eng/clip.c Modified: reactos/subsystems/win32/win32k/eng/copybits.c Modified: reactos/subsystems/win32/win32k/eng/debug.c Modified: reactos/subsystems/win32/win32k/eng/engevent.c Modified: reactos/subsystems/win32/win32k/eng/engmisc.c Modified: reactos/subsystems/win32/win32k/eng/engwindow.c Modified: reactos/subsystems/win32/win32k/eng/float.c Modified: reactos/subsystems/win32/win32k/eng/gradient.c Modified: reactos/subsystems/win32/win32k/eng/ldevobj.c Modified: reactos/subsystems/win32/win32k/eng/lineto.c Modified: reactos/subsystems/win32/win32k/eng/mem.c Modified: reactos/subsystems/win32/win32k/eng/mouse.c Modified: reactos/subsystems/win32/win32k/eng/paint.c Modified: reactos/subsystems/win32/win32k/eng/pdevobj.c Modified: reactos/subsystems/win32/win32k/eng/perfcnt.c Modified: reactos/subsystems/win32/win32k/eng/sort.c Modified: reactos/subsystems/win32/win32k/eng/surface.c Modified: reactos/subsystems/win32/win32k/eng/transblt.c Modified: reactos/subsystems/win32/win32k/eng/xlate.c Modified: reactos/subsystems/win32/win32k/include/intgdi.h Modified: reactos/subsystems/win32/win32k/include/path.h Modified: reactos/subsystems/win32/win32k/include/text.h Modified: reactos/subsystems/win32/win32k/include/win32kp.h Modified: reactos/subsystems/win32/win32k/ntuser/accelerator.c Modified: reactos/subsystems/win32/win32k/ntuser/callback.c Modified: reactos/subsystems/win32/win32k/ntuser/callproc.c Modified: reactos/subsystems/win32/win32k/ntuser/caret.c Modified: reactos/subsystems/win32/win32k/ntuser/class.c Modified: reactos/subsystems/win32/win32k/ntuser/clipboard.c Modified: reactos/subsystems/win32/win32k/ntuser/csr.c Modified: reactos/subsystems/win32/win32k/ntuser/cursoricon.c Modified: reactos/subsystems/win32/win32k/ntuser/defwnd.c Modified: reactos/subsystems/win32/win32k/ntuser/desktop.c Modified: reactos/subsystems/win32/win32k/ntuser/display.c Modified: reactos/subsystems/win32/win32k/ntuser/event.c Modified: reactos/subsystems/win32/win32k/ntuser/focus.c Modified: reactos/subsystems/win32/win32k/ntuser/guicheck.c Modified: reactos/subsystems/win32/win32k/ntuser/hook.c Modified: reactos/subsystems/win32/win32k/ntuser/hotkey.c Modified: reactos/subsystems/win32/win32k/ntuser/input.c Modified: reactos/subsystems/win32/win32k/ntuser/kbdlayout.c Modified: reactos/subsystems/win32/win32k/ntuser/keyboard.c Modified: reactos/subsystems/win32/win32k/ntuser/menu.c Modified: reactos/subsystems/win32/win32k/ntuser/message.c Modified: reactos/subsystems/win32/win32k/ntuser/metric.c Modified: reactos/subsystems/win32/win32k/ntuser/misc.c Modified: reactos/subsystems/win32/win32k/ntuser/monitor.c Modified: reactos/subsystems/win32/win32k/ntuser/msgqueue.c Modified: reactos/subsystems/win32/win32k/ntuser/ntstubs.c Modified: reactos/subsystems/win32/win32k/ntuser/ntuser.c Modified: reactos/subsystems/win32/win32k/ntuser/object.c Modified: reactos/subsystems/win32/win32k/ntuser/painting.c Modified: reactos/subsystems/win32/win32k/ntuser/prop.c Modified: reactos/subsystems/win32/win32k/ntuser/scrollbar.c Modified: reactos/subsystems/win32/win32k/ntuser/session.c Modified: reactos/subsystems/win32/win32k/ntuser/simplecall.c Modified: reactos/subsystems/win32/win32k/ntuser/sysparams.c Modified: reactos/subsystems/win32/win32k/ntuser/timer.c Modified: reactos/subsystems/win32/win32k/ntuser/useratom.c Modified: reactos/subsystems/win32/win32k/ntuser/vis.c Modified: reactos/subsystems/win32/win32k/ntuser/windc.c Modified: reactos/subsystems/win32/win32k/ntuser/window.c Modified: reactos/subsystems/win32/win32k/ntuser/winpos.c Modified: reactos/subsystems/win32/win32k/ntuser/winsta.c Modified: reactos/subsystems/win32/win32k/objects/arc.c Modified: reactos/subsystems/win32/win32k/objects/bezier.c Modified: reactos/subsystems/win32/win32k/objects/bitblt.c Modified: reactos/subsystems/win32/win32k/objects/bitmaps.c Modified: reactos/subsystems/win32/win32k/objects/cliprgn.c Modified: reactos/subsystems/win32/win32k/objects/dclife.c Modified: reactos/subsystems/win32/win32k/objects/dibobj.c Modified: reactos/subsystems/win32/win32k/objects/drawing.c Modified: reactos/subsystems/win32/win32k/objects/fillshap.c Modified: reactos/subsystems/win32/win32k/objects/font.c Modified: reactos/subsystems/win32/win32k/objects/freetype.c Modified: reactos/subsystems/win32/win32k/objects/icm.c Modified: reactos/subsystems/win32/win32k/objects/line.c Modified: reactos/subsystems/win32/win32k/objects/path.c Modified: reactos/subsystems/win32/win32k/objects/pen.c Modified: reactos/subsystems/win32/win32k/objects/polyfill.c Modified: reactos/subsystems/win32/win32k/objects/print.c Modified: reactos/subsystems/win32/win32k/objects/rect.c Modified: reactos/subsystems/win32/win32k/objects/stockobj.c Modified: reactos/subsystems/win32/win32k/objects/wingl.c Modified: reactos/subsystems/win32/win32k/pch.h - No changes to NtGdiStretchDIBitsInternal function. ===================================================================== Revision: 6d6eced5dab6b788fcdffdd592a9a1dc41186b5b Author: Timo Kreuzer Date: 10/6/2011 5:56:58 AM Message: [WIN32K] Fix handling of RLE compressed bitmaps in NtGdiStretchDIBitsInternal, by using similar code as in NtGdiSetDIBitsToDeviceInternal calling GreCreateBitmapEx instead of NtGdiCreateDIBitmapInternal. Fixes bug 6168. svn path=/trunk/; revision=54019 ---- Modified: reactos/subsystems/win32/win32k/objects/dibobj.c - Fixes CCleaner Version 2.25 images not drawn. - Current patch shows CCleaner Version2.25 shows images correctly. =============================================================================== Revision: 1c23f7c0ef7440968784f7f7ad353be5c660cee1 Author: Timo Kreuzer Date: 10/6/2011 6:02:44 AM Message: [WIN32K] Remove a debug breakpoint that was not supposed to be comitted. svn path=/trunk/; revision=54020 ---- Modified: reactos/subsystems/win32/win32k/objects/dibobj.c Accidental commit to remove debugbreak. ================================================================================== Revision: 41d37ba9a2a1a7ddf94591242d42e7e38ae7e495 Author: Timo Kreuzer Date: 10/6/2011 8:38:45 AM Message: [WIN32K] use GreCreateBitmapEx in IntSetDIBits as well to handle RLE images. Fixes bug 6388 svn path=/trunk/; revision=54024 ---- Modified: reactos/subsystems/win32/win32k/objects/dibobj.c External issue ID: 6388 ReactOS CORE-5797 graphical issues in VypressChat installer - No changes to NtGdiStretchDIBitsInternal function. ====================================================================================== Revision: 8dba8e4af8cdc2c630acb8109ffe018a8fc3b136 Author: Timo Kreuzer Date: 10/18/2011 8:13:37 AM Message: [WIN32K] Copy the BITMAPINFO to a safe kernel mode buffer, before accessing it. Fixes bug 6587. svn path=/trunk/; revision=54188 ---- Modified: reactos/subsystems/win32/win32k/objects/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ============================================================================================= Revision: f4065b5b2ad09c5f542540014e4328e90c0b2908 Author: Dmitry Gorbachev Date: 12/13/2011 10:07:06 PM Message: [WIN32K] Fix indentation, comments, debug messages. Lioncash (mathew1800\AT/gmail\DOT/com), bug #6762. svn path=/trunk/; revision=54647 ---- Modified: reactos/subsystems/win32/win32k/dib/dib1bpp.c ... ... Modified: reactos/subsystems/win32/win32k/objects/dibobj.c ... - Changes to capitalization of Comments only. =================================================================================================== Revision: a508886eb09c25c1b67f5eee1203275fa350bb5a Author: Timo Kreuzer Date: 3/4/2012 5:32:43 AM Message: [WIN32K] - Fix a possible integer overflow in NtGdiCreateBitmap - Don't cast length of LARGE_STRING (ULONG) to USHORT, instead truncate to MAXUSHORT. This is still hacky, but better than before. - Fix MSVC warnings svn path=/trunk/; revision=55993 ---- Modified: reactos/include/reactos/win32k/ntuser.h ... Modified: reactos/subsystems/win32/win32k/objects/dibobj.c ... - No changes to NtGdiStretchDIBitsInternal function. =============================================================================================== Revision: 196349d5509dd382530924bc7cda63bbf5470840 Author: Timo Kreuzer Date: 4/26/2012 11:32:01 AM Message: [WIN32K] Fix palette index wraparound when initializing a DIB palette with DIB_PAL_COLORS. Fixes gdi32_winetest::palette svn path=/trunk/; revision=56430 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ============================================================================= Revision: 1ba45017807b24661ab2a39a9e1643e6dd0463f8 Author: Timo Kreuzer Date: 5/1/2012 8:57:18 AM Message: [WIN32K] - Fix RLE hack (thanks to Mephisto) - Remove obsolete flags svn path=/trunk/; revision=56464 ---- Modified: reactos/win32ss/gdi/eng/surface.c Modified: reactos/win32ss/gdi/eng/surface.h Modified: reactos/win32ss/gdi/ntgdi/bitblt.c Modified: reactos/win32ss/gdi/ntgdi/bitmaps.c Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ===================================================================================== Revision: 7be39c2aba994a05f37bcf75e131154c122f221b Author: Timo Kreuzer Date: 5/2/2012 5:09:05 AM Message: [WIN32K] Modify DIB_MapPaletteColors, first allocating a palette without initializing the colors, then setting up the colors. This wway we don't need to allocate an intermediate buffer. svn path=/trunk/; revision=56474 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ========================================================================================== Revision: 710a09d490cb8d57340af80ba058bfc7a636c472 Author: Timo Kreuzer Date: 5/2/2012 8:56:55 AM Message: [WIN32K] - Fix a palette leak in DIB_CreateDIBSection - Remove PALETTE_AllocPalette and PALETTE_AllocPaletteIndexedRGB, use PALETTE_AllocPalWithHandle instead svn path=/trunk/; revision=56476 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c Modified: reactos/win32ss/gdi/ntgdi/palette.c Modified: reactos/win32ss/gdi/ntgdi/palette.h - No changes to NtGdiStretchDIBitsInternal function. ========================================================================================== Revision: 7bf273c81931d36746179973411d935b90138b95 Author: Timo Kreuzer Date: 5/4/2012 12:37:07 PM Message: [WIN32K] - Add cjMaxBits parameter to GreCreateDIBitmapInternal - Rename GDIBRUSH_* constants to BR_*, as they are named in gdikdx svn path=/trunk/; revision=56496 ---- Modified: reactos/win32ss/gdi/eng/engbrush.c Modified: reactos/win32ss/gdi/eng/lineto.c Modified: reactos/win32ss/gdi/ntgdi/bitblt.c Modified: reactos/win32ss/gdi/ntgdi/bitmaps.h Modified: reactos/win32ss/gdi/ntgdi/brush.c Modified: reactos/win32ss/gdi/ntgdi/brush.h Modified: reactos/win32ss/gdi/ntgdi/dibobj.c Modified: reactos/win32ss/gdi/ntgdi/drawing.c Modified: reactos/win32ss/gdi/ntgdi/fillshap.c Modified: reactos/win32ss/gdi/ntgdi/line.c Modified: reactos/win32ss/gdi/ntgdi/pen.c Modified: reactos/win32ss/gdi/ntgdi/stockobj.c - No changes to NtGdiStretchDIBitsInternal function. ====================================================================================== Revision: 29625188232127fb628e2ebabb9e6b62201df62f Author: Timo Kreuzer Date: 5/5/2012 4:39:35 PM Message: [WIN32K] Implement CreateDIBPalette(), replacing BuildDIBPalette. It creates a palette without a handle and handles DIB_PAL_COLORS as well as DIB_RGB_COLORS. Additionally it now handles DIB_PAL_BRUSHHACK, which is used for DIB brushes, when DIB_PAL_COLORS is passed to CreateDIBPatternBrush(). The palette is not created directly, but instead the indices into the DC palette are put into the palette and the real palette is created, when the brush is realized. The latter is not yet handled. svn path=/trunk/; revision=56518 ---- Modified: reactos/win32ss/gdi/ntgdi/brush.h Modified: reactos/win32ss/gdi/ntgdi/dib.h Modified: reactos/win32ss/gdi/ntgdi/dibobj.c Modified: reactos/win32ss/gdi/ntgdi/palette.c Modified: reactos/win32ss/gdi/ntgdi/palette.h Deleted Code in NtGdiStretchDIBitsInternal function: hpalDIB = BuildDIBPalette(pbmi); if (!hpalDIB) { bResult = FALSE; goto cleanup; } /* Lock the DIB palette */ ppalDIB = PALETTE_ShareLockPalette(hpalDIB); Replaced with Code: ppalDIB = CreateDIBPalette(pbmi, pdc, dwUsage); - No functional changes. ============================================================================================= Revision: d31e05222e4cee69b0ab0dc9f1258449fc004b32 Author: Timo Kreuzer Date: 5/5/2012 4:43:39 PM Message: fix build svn path=/trunk/; revision=56519 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c Deleted Line in NtGdiStretchDIBitsInternal function: HPALETTE hpalDIB = 0; - No functional changes. ============================================================================================== Revision: 2b1b0f0fa58e4361684995a4bd2069eaa63fafc0 Author: Timo Kreuzer Date: 5/5/2012 5:06:15 PM Message: [WIN32K] Someone passes iUsage == 2, so don't assert in that case, but ignore it as long as it's not supported. svn path=/trunk/; revision=56520 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. =============================================================================================== Revision: c183b86b8a3aed00ab7225fd8478fa3ff0ebb5f5 Author: Timo Kreuzer Date: 5/5/2012 5:50:47 PM Message: [WIN32K] Fix regression of gdi32_winetest palette svn path=/trunk/; revision=56521 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. =================================================================================================== Revision: b4cf798850b56213f13ca8e4d2d7f25d3cf13938 Author: Timo Kreuzer Date: 5/8/2012 11:21:27 AM Message: [WIN32K] Fix crashes due to CreateDIBitmap tests svn path=/trunk/; revision=56543 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. =================================================================================================== Revision: 8d409bed6033e0aed51b03f7aad51808acadfa22 Author: Timo Kreuzer Date: 5/9/2012 3:13:49 AM Message: [WIN32K] - Make CreateDIBPalette handle BITMAPCOREINFO (we need to handle this, since win32k can load bitmap files, that can contain these headers) - Remove obsolete IntSetDIBColorTable, IntGetDIBColorTable svn path=/trunk/; revision=56548 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ================================================================================================= Revision: 0ed94ccae0b4aa64ad83897d5d37777c544e2f9b Author: Timo Kreuzer Date: 7/1/2012 8:43:33 AM Message: [WIN32K] - Implement SURFACE_vSetPalette and use it everywhere to set the palette for a surface. Make SURFACE::ppal const, so noone accidentally modifies it without properly handling the references. svn path=/trunk/; revision=56816 ---- Modified: reactos/win32ss/gdi/eng/surface.c Modified: reactos/win32ss/gdi/eng/surface.h Modified: reactos/win32ss/gdi/ntgdi/bitmaps.c Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ==================================================================================================== Revision: 78bdedec32495d3760c1b2cbdd8e1f1644a748b2 Author: Jérôme Gardou Date: 7/22/2012 4:19:02 PM Message: [WIN32SS/NTGDI] - Don't assume DC surface in non NULL in NtGdiSetDIBitsToDeviceInternal svn path=/trunk/; revision=56942 ---- Modified: reactos/win32ss/gdi/ntgdi/dc.h Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ===================================================================================================== Revision: 9fd18d4a198f429eed7fa3902c41e38c46d4db5f Author: Timo Kreuzer Date: 7/31/2012 3:44:56 PM Message: [WIN32K] - pass COLORADJUSTMENT to IntEngStretchBlt - IntEngStretchBlt, EngStretchBltROP, DrvStretchBltROP always use a source, ASSERT that - annotate pbrDefaultBrush and psurfDefaultBitmap as _Notnull_ - Don't use uninitialized psoInput in EngStretchBltROP - Use trivial CLIPOBJ instead of NULL in IntEngStretchBlt - Always pass a source surface to EngStretchBltROP svn path=/trunk/; revision=57008 ---- Modified: reactos/win32ss/gdi/eng/inteng.h Modified: reactos/win32ss/gdi/eng/stretchblt.c Modified: reactos/win32ss/gdi/ntgdi/bitblt.c Modified: reactos/win32ss/gdi/ntgdi/dc.h Modified: reactos/win32ss/gdi/ntgdi/dibobj.c Modified: reactos/win32ss/user/ntuser/winsta.c Modified /* Perform the stretch operation */ bResult = IntEngStretchBlt(&psurfDst->SurfObj, &psurfTmp->SurfObj, NULL, pdc->rosdc.CombinedClip, &exlo.xlo, &pdc->dclevel.ca, // <== Added this line. &rcDst, &rcSrc, NULL, &pdc->eboFill.BrushObject, NULL, ROP_TO_ROP4(dwRop)); - No functional change. ==================================================================================================== Revision: cb9175370c2d2c2f1b87e16ac381308e851f705f Author: Timo Kreuzer Date: 8/2/2012 5:06:08 AM Message: [WIN32K] Return non-null value when a dc without a bitmap selected is passed to NtGdiSetDIBitsToDeviceInternal svn path=/trunk/; revision=57028 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ========================================================================================================= Revision: c0a0dfce297ff315fe4a6e78fea8363513c6e256 Author: Jérôme Gardou Date: 8/22/2012 11:45:49 AM Message: [WIN32K] - Use the right surface for direct DCs in DIB transfer functions It could have changed with a display settings change svn path=/trunk/; revision=57129 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c Old Code: psurfDst = pdc->dclevel.pSurface; New Code: /* * Select the right surface. * NOTE: we don't call DC_vPrepareDCsForBlit, because we don't * care about mouse, visible region or brushes in this API. */ if(pdc->dctype == DCTYPE_DIRECT) psurfDst = pdc->ppdev->pSurface; else psurfDst = pdc->dclevel.pSurface; - Old Code does not use Surfaces, so not applicable to our changes. ================================================================================================ Revision: ae2e8ad56283ca653353038c7142d986e65ad7ad Author: Jérôme Gardou Date: 8/22/2012 3:11:41 PM Message: [WIN32K] - Use DC_vPrepareDCsForBlit in DIB transfer functions, as per Timo's remarks. svn path=/trunk/; revision=57138 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c Remove Code: /* * Select the right surface. * NOTE: we don't call DC_vPrepareDCsForBlit, because we don't * care about mouse, visible region or brushes in this API. */ if(pdc->dctype == DCTYPE_DIRECT) psurfDst = pdc->ppdev->pSurface; else psurfDst = pdc->dclevel.pSurface; if (!psurfDst) { // CHECKME bResult = TRUE; goto cleanup; } Add Code: /* Prepare DC for blit */ DC_vPrepareDCsForBlit(pdc, rcDst, NULL, rcSrc); psurfDst = pdc->dclevel.pSurface; if (!psurfDst) { DC_vFinishBlit(pdc, NULL); // CHECKME bResult = TRUE; goto cleanup; } - Old Code does not use Surfaces, so not applicable to our changes. =============================================================================================== Revision: 54babc294b8842a0c7d1c57aebcc3fbba4a3993c Author: Timo Kreuzer Date: 9/30/2012 3:30:23 PM Message: [WIN32K] - Seperate GreGetDIBitsInternal from NtGdiGetDIBitsInternal - Rewrite IntSynthesizeDib - Fixes heap corruption when doing screen shots or copying from paint CORE-6674 CORE-6093 #resolve svn path=/trunk/; revision=57443 ---- Modified: reactos/win32ss/gdi/ntgdi/dib.h Modified: reactos/win32ss/gdi/ntgdi/dibobj.c Modified: reactos/win32ss/user/ntuser/clipboard.c - Spacing removed only. No functional changes to NtGdiStretchDIBitsInternal function. ================================================================================================ Revision: aec6311fb516e974f67649bb82fa4ed0e7a85ee9 Author: Timo Kreuzer Date: 9/30/2012 4:21:03 PM Message: [WIN32K] Hack around completely broken GreGetDIBitsInternal. Fixes bugcheck caused by gdi32_winetest bitmap. svn path=/trunk/; revision=57444 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ========================================================================================================= Revision: bdd3db1d3db394636fbf071af399a2c2c4a9a36b Author: Timo Kreuzer Date: 9/30/2012 5:02:02 PM Message: [WIN32K] Fix the hack, so it doesn't cause overwriting of usermode memory. svn path=/trunk/; revision=57445 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ======================================================================================================= Revision: dfbde4a0d6e2359c6d171ea114d91285751107b4 Author: Timo Kreuzer Date: 10/6/2012 3:15:36 PM Message: [WIN32K] Use ExAllocatePoolWithTag instead of ExAllocatePool svn path=/trunk/; revision=57505 ---- Modified: reactos/win32ss/drivers/videoprt/dispatch.c Modified: reactos/win32ss/drivers/videoprt/videoprt.h Modified: reactos/win32ss/gdi/eng/engevent.c Modified: reactos/win32ss/gdi/eng/mem.c Modified: reactos/win32ss/gdi/eng/surface.c Modified: reactos/win32ss/gdi/ntgdi/dibobj.c ... - No changes to NtGdiStretchDIBitsInternal function. ======================================================================================================== Revision: 4bebb78d5e33c32eff749409e91d6a93116ceb8f Author: Timo Kreuzer Date: 10/7/2012 5:03:31 AM Message: [WIN32K] Fix missing colorTriple increment when creating the color table in GreGetDIBitsInternal. svn path=/trunk/; revision=57510 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ================================================================================================ Revision: 79ff1e973ac56ecc6dd604f68027744f11a02c9b Author: Jérôme Gardou Date: 10/10/2012 6:05:38 PM Message: [GDI32] - Assume that the provided buffer size is maximal in GetDIBits [WIN32K] - Probe buffer before writing to it - Fail DIB Section creation if palette creation failed svn path=/trunk/; revision=57535 ---- Modified: reactos/win32ss/gdi/gdi32/objects/bitmap.c Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ====================================================================================================== Revision: 9971415df51cd4efb35352f9827fb7045daddf1c Author: Jérôme Gardou Date: 10/11/2012 8:33:09 AM Message: [WIN32K] - Accept to fill a BITMAPCOREINFO structure in NtGdiGetDIBitsInternal svn path=/trunk/; revision=57537 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ====================================================================================================== Revision: 5ad72c914523f9d94daa8467be32b696b46ce7fc Author: Jérôme Gardou Date: 11/8/2012 6:40:41 AM Message: [WIN32K] - Work only with BITMAPINFO in GreGetDIBItsInternal and convert the structure back to BITMAPCOREINFO if needed. - Set the rgbReserved member to 0 when getting palette of a DIB section svn path=/trunk/; revision=57691 ---- Modified: reactos/win32ss/gdi/ntgdi/dib.h Modified: reactos/win32ss/gdi/ntgdi/dibobj.c Modified: reactos/win32ss/user/ntuser/clipboard.c Modified: reactos/win32ss/user/ntuser/misc/file.c - No changes to NtGdiStretchDIBitsInternal function. =============================================================================================== Revision: e61a4d3fcbf12661a7e635d9e2d585722b57265f Author: Timo Kreuzer Date: 12/18/2012 3:44:58 PM Message: [WIN32K] - Add/improve some annotations - Improve code in EngpGetPDEV and NtGdiGetRegionData - Simplify SEH exception handling - Fix possible NULL pointer dereferences - Fix wrong variable usage in UnpackParam - Fix a possible bufer overrun - Check return value of ExAllocatePool and RtlCreateUnicodeString - Fix & vs && typo All detected with VS11 analyse svn path=/trunk/; revision=57948 ---- Modified: reactos/include/psdk/ntgdi.h Modified: reactos/win32ss/gdi/eng/pdevobj.c Modified: reactos/win32ss/gdi/eng/pdevobj.h Modified: reactos/win32ss/gdi/eng/xlateobj.c Modified: reactos/win32ss/gdi/eng/xlateobj.h Modified: reactos/win32ss/gdi/ntgdi/cliprgn.c Modified: reactos/win32ss/gdi/ntgdi/coord.c Modified: reactos/win32ss/gdi/ntgdi/dibobj.c ... - No changes to NtGdiStretchDIBitsInternal function. =============================================================================================== Revision: 7dd6427e003cc5d8e1ca0cc61618ffbdf521d071 Author: Timo Kreuzer Date: 1/1/2013 1:41:20 PM Message: [WIN32K] Partly revert r57691. Fixes messed up icons in 32bpp. svn path=/trunk/; revision=58091 ---- Modified: reactos/win32ss/gdi/ntgdi/dib.h Modified: reactos/win32ss/gdi/ntgdi/dibobj.c Modified: reactos/win32ss/user/ntuser/clipboard.c Modified: reactos/win32ss/user/ntuser/misc/file.c - No changes to NtGdiStretchDIBitsInternal function. =============================================================================================== Revision: eb2bbd0d4bb21ddcfc58f4d1d050cf4d143c65f8 Author: Timo Kreuzer Date: 1/2/2013 8:52:34 AM Message: [WIN32K] Revert the revert from r58091 and apply a correct fix (passed parameters to RECTL_vSetRect() in wrong order) svn path=/trunk/; revision=58101 ---- Modified: reactos/win32ss/gdi/ntgdi/dib.h Modified: reactos/win32ss/gdi/ntgdi/dibobj.c Modified: reactos/win32ss/user/ntuser/clipboard.c Modified: reactos/win32ss/user/ntuser/misc/file.c - No changes to NtGdiStretchDIBitsInternal function. ================================================================================================= Revision: 6790ef337ff7810a3372ee14dd8f00a04248be0b Author: Timo Kreuzer Date: 1/5/2013 1:57:59 PM Message: [WIN32K] In NtGdiStretchDIBitsInternal check early for info dc / mem dc without surface, only allocate memory and copy bits if the caller actually passed bits (they are optional), free the allocation, when an exception happens instead of leaking the memory. svn path=/trunk/; revision=58116 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c Remove this code: if (!psurfDst) { DC_vFinishBlit(pdc, NULL); // CHECKME bResult = TRUE; goto cleanup; } Add this code: /* Check for info / mem DC without surface */ if (!pdc->dclevel.pSurface) { DC_UnlockDc(pdc); // CHECKME return TRUE; } and Replace this code: pvBits = ExAllocatePoolWithTag(PagedPool, cjMaxBits, 'pmeT'); if (!pvBits) { return 0; } _SEH2_TRY { ProbeForRead(pjInit, cjMaxBits, 1); RtlCopyMemory(pvBits, pjInit, cjMaxBits); } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { _SEH2_YIELD(return 0); } _SEH2_END With This code: if (pjInit && (cjMaxBits > 0)) { pvBits = ExAllocatePoolWithTag(PagedPool, cjMaxBits, 'pmeT'); if (!pvBits) { return 0; } _SEH2_TRY { ProbeForRead(pjInit, cjMaxBits, 1); RtlCopyMemory(pvBits, pjInit, cjMaxBits); } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { ExFreePoolWithTag(pvBits, 'pmeT'); _SEH2_YIELD(return 0); } _SEH2_END } else { pvBits = NULL; } - Old code does not use surfaces, so most of this is not pertinent to us. - I copied the test for "info / mem DC without surface" into the new replacement code. ================================================================================================== Revision: df7f9319c20c262b4ca2e7cadb11490f3b14cac9 Author: Jérôme Gardou Date: 7/23/2014 11:05:47 AM Message: [WIN32K] - Correctly use the Clip, Meta, Rao, API and Vis Regions in DCs - Update the DC clipping object on demand each time a blt is performed - Reduce the number of region allocated with handles when it's not needed This commit fixes numerous bugs regarding clipping, most notably SetDIBitsToDevice overlapping foreground windows CORE-8353 #resolve #comment There are still a few quirks in winetests which will get fixed in a next commit CORE-7628 #comment should be fixed in rev 63731, please confirm. svn path=/trunk/; revision=63731 ---- Modified: reactos/win32ss/gdi/ntgdi/arc.c Modified: reactos/win32ss/gdi/ntgdi/bitblt.c Modified: reactos/win32ss/gdi/ntgdi/cliprgn.c Modified: reactos/win32ss/gdi/ntgdi/cliprgn.h Modified: reactos/win32ss/gdi/ntgdi/dc.h Modified: reactos/win32ss/gdi/ntgdi/dclife.c Modified: reactos/win32ss/gdi/ntgdi/dcobjs.c Modified: reactos/win32ss/gdi/ntgdi/dcstate.c Modified: reactos/win32ss/gdi/ntgdi/dcutil.c Modified: reactos/win32ss/gdi/ntgdi/dibobj.c ... Change this code: /* Prepare DC for blit */ DC_vPrepareDCsForBlit(pdc, rcDst, NULL, rcSrc); to this code: /* Prepare DC for blit */ DC_vPrepareDCsForBlit(pdc, &rcDst, NULL, NULL); - No functional changes. ============================================================================================= Revision: 4069d63c30225d869768c99245cc85f0b9096714 Author: Jérôme Gardou Date: 7/26/2014 10:41:08 AM Message: [WIN32K] - Improve the WNDOBJ/CLIPOBJ hack by using the same internal structure for both object. This way a driver can enumerate WNDOBJ::coClient safely. Also take this as an opportunity to get rid of DC::ros_dc. svn path=/trunk/; revision=63739 ---- Modified: reactos/win32ss/gdi/eng/bitblt.c Modified: reactos/win32ss/gdi/eng/clip.c Modified: reactos/win32ss/gdi/eng/engobjects.h Modified: reactos/win32ss/gdi/eng/engwindow.c Modified: reactos/win32ss/gdi/eng/inteng.h Modified: reactos/win32ss/gdi/eng/lineto.c Modified: reactos/win32ss/gdi/ntgdi/arc.c Modified: reactos/win32ss/gdi/ntgdi/bitblt.c Modified: reactos/win32ss/gdi/ntgdi/cliprgn.c Modified: reactos/win32ss/gdi/ntgdi/dc.h Modified: reactos/win32ss/gdi/ntgdi/dclife.c Modified: reactos/win32ss/gdi/ntgdi/dibobj.c ... Change this code: /* Perform the stretch operation */ bResult = IntEngStretchBlt(&psurfDst->SurfObj, &psurfTmp->SurfObj, NULL, pdc->rosdc.CombinedClip, // <= This changed &exlo.xlo, &pdc->dclevel.ca, &rcDst, &rcSrc, NULL, &pdc->eboFill.BrushObject, NULL, ROP_TO_ROP4(dwRop)); To this code: /* Perform the stretch operation */ bResult = IntEngStretchBlt(&psurfDst->SurfObj, &psurfTmp->SurfObj, NULL, &pdc->co.ClipObj, // <= This changed &exlo.xlo, &pdc->dclevel.ca, &rcDst, &rcSrc, NULL, &pdc->eboFill.BrushObject, NULL, ROP_TO_ROP4(dwRop)); - No changes to our work. ========================================================================================== Revision: ec5927ad19cd6587dd3fe784dad9b479c67b9a00 Author: Jérôme Gardou Date: 8/23/2014 9:20:16 AM Message: [WIN32K] - Improve the "infamous RLE hack" in SetDIBitsToDevice by using a mask bitmap corresponding to the valid RLE data [GDI32] - Improve some input checks svn path=/trunk/; revision=63920 ---- Modified: reactos/win32ss/gdi/gdi32/objects/bitmap.c Modified: reactos/win32ss/gdi/gdi32/objects/utils.c Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. =============================================================================================== Revision: 9a96133a37f129a24ba06fc451fbac12a816aeb3 Author: Jérôme Gardou Date: 8/23/2014 10:20:44 AM Message: [WIN32K] - Remove left-over assert svn path=/trunk/; revision=63922 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ================================================================================================= Revision: b5e8d798e98eebbb2cf7a79a37f562f36de333a0 Author: Amine Khaldi Date: 10/16/2014 2:14:52 PM Message: [WIN32K] * Zap EGAColorsTriples and DefLogPaletteTriples. * Remove extra () around a comparison. svn path=/trunk/; revision=64764 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ================================================================================================= Revision: a09a102a08cac7b2809229b963dfa93f6364d2d2 Author: Jérôme Gardou Date: 10/24/2014 12:31:46 PM Message: [WIN32K] - First implementation of CreateDIBitmap with the undocumented CBM_CREATEDIB flag. CORE-8695 svn path=/trunk/; revision=64966 ---- Modified: reactos/win32ss/gdi/gdi32/objects/bitmap.c Modified: reactos/win32ss/gdi/ntgdi/bitmaps.c Modified: reactos/win32ss/gdi/ntgdi/dibobj.c Modified: reactos/win32ss/gdi/ntgdi/intgdi.h - No changes to NtGdiStretchDIBitsInternal function. ================================================================================================= Revision: 5acaa31a62b9e2f3a0e8406f61494d60b0e23d31 Author: Jérôme Gardou Date: 10/24/2014 1:45:25 PM Message: [WIN32K] - Properly check for CBM_INIT bit in CreateDIBitmap. - Take into account the fact that we could be passed a BITMAPCOREHEADER CORE-8695 svn path=/trunk/; revision=64969 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ================================================================================================= Revision: 8680a1f13875993cd4396307fb1be014d840b821 Author: Jérôme Gardou Date: 10/25/2014 1:11:36 PM Message: [WIN32K] - Use a palette created from the DIB infos for surface created through CreateDIBitmap(CBM_CREATEDIB) CORE-8695 #comment Booting in 16bpp mode is now OK, but some problems remain when switching mode from 16bpp to 32bpp svn path=/trunk/; revision=64993 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ================================================================================================= Revision: 2577b38332084955748b34653f07747a51bd8530 Author: Timo Kreuzer Date: 11/16/2014 8:22:54 AM Message: [WIN32K] Copy only the actual size of the BITMAPINFO back to usermode in NtGdiGetDIBitsInternal. svn path=/trunk/; revision=65420 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ================================================================================================= Revision: 2bcae18ec670cfb2c32c3193374468fb80731027 Author: Timo Kreuzer Date: 12/29/2014 8:16:16 AM Message: [WIN32K] Simplify and fix calculation of biCompression in GreGetDIBitsInternal svn path=/trunk/; revision=65892 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ================================================================================================= Revision: 1cb80f3aa0dae21dd8dbed615133fdbd801bb35d Author: Timo Kreuzer Date: 12/30/2014 3:03:13 PM Message: [WIN32K] - Fix definition of ROP_TO_ROP4 - Move some macros to intgdi.h - Fix coordinate space mismatch in IntGdiBitBltRgn and IntGdiFillRgn Fixes console window selection svn path=/trunk/; revision=65914 ---- Modified: reactos/win32ss/gdi/ntgdi/bitblt.c Modified: reactos/win32ss/gdi/ntgdi/dibobj.c Modified: reactos/win32ss/gdi/ntgdi/intgdi.h Revision: 981aafb792ef5eedc18b90934a0edf70d3604425 Author: Timo Kreuzer Date: 2/7/2015 11:51:20 AM Message: [WIN32K] Fix the ROP code passed to IntEngStretchBlt from NtGdiStretchDIBitsInternal. Fixes crash of Nimbus Notes installer. CORE-9048 #resolve svn path=/trunk/; revision=66195 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c Changed this code: /* Check if we can use NtGdiSetDIBitsToDeviceInternal */ if (sizel.cx == cxSrc && sizel.cy == cySrc && dwRop == SRCCOPY) To this code: /* Check if we can use NtGdiSetDIBitsToDeviceInternal */ if ((sizel.cx == cxSrc) && (sizel.cy == cySrc) && (dwRop == SRCCOPY)) and Add this code: /* Mask away everything except foreground rop index */ dwRop = dwRop & 0x00FF0000; dwRop |= dwRop << 8; After /* Initialize XLATEOBJ */ EXLATEOBJ_vInitialize(&exlo, ... - We do not use these code paths now. ================================================================================================ Revision: e07232f6736708ed004fa92d83307226f410a922 Author: Timo Kreuzer Date: 2/14/2015 6:05:50 PM Message: [WIN32K] In NtGdiGetDIBitsInternal limit the size of what is being copied back to to usermode to the cjMaxInfo parameter. Fixes crash of Firefox when downloading files. CORE-8895 #resolve svn path=/trunk/; revision=66273 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ==================================================================================================== Revision: ff145663848f0bf4b92c625b70f24a66bbdfcba3 Author: Timo Kreuzer Date: 3/8/2015 12:25:44 PM Message: [WIN32K] - Pass bitmap buffer size to SURFACE_AllocSurface and validate it - Fix arithmetic overflow checks by using RtlULongMult - GreExtTextOutW: do not allocate / blit zero sized bitmaps - NtGdiStretchDIBitsInternal: do not pass negative y size to GreCreateBitmapEx - DIB_CreateDIBSection: use calculated bitmap size, instead of biSizeImage when calculating the section view size and as size parameter to GreCreateBitmapEx CORE-9245 #resolve svn path=/trunk/; revision=66611 ---- Modified: reactos/win32ss/gdi/eng/bitblt.c Modified: reactos/win32ss/gdi/eng/surface.c Modified: reactos/win32ss/gdi/eng/surface.h Modified: reactos/win32ss/gdi/ntgdi/bitblt.c Modified: reactos/win32ss/gdi/ntgdi/bitmaps.c Modified: reactos/win32ss/gdi/ntgdi/dibobj.c Modified: reactos/win32ss/gdi/ntgdi/freetype.c Modified: reactos/win32ss/pch.h Changed this code: hbmTmp = GreCreateBitmapEx(pbmi->bmiHeader.biWidth, pbmi->bmiHeader.biHeight, // <= This changes. 0, BitmapFormat(pbmi->bmiHeader.biBitCount, ... To this code: hbmTmp = GreCreateBitmapEx(pbmi->bmiHeader.biWidth, abs(pbmi->bmiHeader.biHeight), // <= This changes. 0, BitmapFormat(pbmi->bmiHeader.biBitCount, ... - Current code does not use this function. ========================================================================================================== Revision: cdc2efb2415a804de63c2922df7f1ffebfa079ae Author: Timo Kreuzer Date: 3/8/2015 5:44:36 PM Message: [WIN32K] NtGdiSetDIBitsToDeviceInternal: Check for ScanLines == 0 and clean up exit pathes. Fixes assertion failure in gdi32_winetest:bitmap svn path=/trunk/; revision=66612 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ==================================================================================================== Revision: 16c191f8a8d52c628432d934aceef0e15123596c Author: Timo Kreuzer Date: 3/8/2015 6:36:49 PM Message: [WIN32K] Improve the situation with ROP handling, trying to make things clearer. svn path=/trunk/; revision=66617 ---- Modified: reactos/win32ss/gdi/ntgdi/bitblt.c Modified: reactos/win32ss/gdi/ntgdi/dibobj.c Modified: reactos/win32ss/gdi/ntgdi/intgdi.h Remove this code: /* Mask away everything except foreground rop index */ dwRop = dwRop & 0x00FF0000; dwRop |= dwRop << 8; Change this code: /* Perform the stretch operation */ bResult = IntEngStretchBlt(&psurfDst->SurfObj, &psurfTmp->SurfObj, NULL, &pdc->co.ClipObj, &exlo.xlo, &pdc->dclevel.ca, &rcDst, &rcSrc, NULL, &pdc->eboFill.BrushObject, NULL, ROP_TO_ROP4(dwRop)); // <== Changed here. To this code: /* Perform the stretch operation */ bResult = IntEngStretchBlt(&psurfDst->SurfObj, &psurfTmp->SurfObj, NULL, &pdc->co.ClipObj, &exlo.xlo, &pdc->dclevel.ca, &rcDst, &rcSrc, NULL, &pdc->eboFill.BrushObject, NULL, WIN32_ROP3_TO_ENG_ROP4(dwRop)); // <== Changed here. - We no longer use this code path. ========================================================================================================= Revision: fe4dc5d9d5de75543a66db9ebdc53f553ec434b4 Author: Timo Kreuzer Date: 3/9/2015 7:11:29 PM Message: [WIN32K] Annotate a number of GDI functions to match public header declarations. svn path=/trunk/; revision=66644 ---- Modified: reactos/win32ss/gdi/eng/clip.c ... Modified: reactos/win32ss/gdi/ntgdi/dibobj.c ... - No changes to NtGdiStretchDIBitsInternal function. =========================================================================================================== Revision: 5f980c38cea626627f9fc3b550f4e6fcb03f9f68 Author: Timo Kreuzer Date: 3/10/2015 5:01:44 AM Message: [WIN32K] Fix a typo introduced in r66644. Fixes icon corruption / testbot regression. CORE-9351 #resolve svn path=/trunk/; revision=66656 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ========================================================================================================== Revision: e431dd155cb70547321876ac990d40b9e394be57 Author: Timo Kreuzer Date: 3/25/2015 5:26:52 PM Message: [WIN32K] - Handle allocation failures in FixupDIBBrushPalette - In IntCreateDIBitmap make sure to the absolute height to GreCreateBitmap svn path=/trunk/; revision=66883 ---- Modified: reactos/win32ss/gdi/eng/engbrush.c Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ========================================================================================================== Revision: 5528fd245a7f74b4943b90946ea9ac7218496a99 Author: Timo Kreuzer Date: 3/25/2015 5:27:16 PM Message: [WIN32K] Implement GreCreateDIBitmapFromPackedDIB svn path=/trunk/; revision=66885 ---- Modified: reactos/win32ss/gdi/ntgdi/dib.h Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ========================================================================================================== Revision: ec0f3d9ba9023c2c2a7282952f8595a622757ed0 Author: Timo Kreuzer Date: 3/25/2015 5:37:16 PM Message: [WIN32K] Handle DIB_PAL_INDICES in DIB_BitmapInfoSize svn path=/trunk/; revision=66892 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ========================================================================================================== Revision: 1589893f19d9241848af5def7edd0a8d30242599 Author: Thomas Faber Date: 10/22/2015 6:29:55 AM Message: [WIN32K:NTGDI] - Correctly pass 'planes' and 'bpp' arguments to IntCreateDIBitmap in GreCreateDIBitmapInternal. CID 1250302 svn path=/trunk/; revision=69642 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ========================================================================================================== Revision: 9f8c4e262897a57c45289098b3e04f683e59d93a Author: Amine Khaldi Date: 11/10/2015 11:41:55 AM Message: [WIN32SS] Improve the FILE header section. Brought to you by Adam Stachowicz. CORE-10114 svn path=/trunk/; revision=69871 ---- Modified: reactos/win32ss/gdi/dib/alphablend.c ... Modified: reactos/win32ss/gdi/ntgdi/dibobj.c ... - No changes to NtGdiStretchDIBitsInternal function. ========================================================================================================== Revision: 88d5b185b02dc953a6c734153c1a685c1ef3f7e2 Author: Timo Kreuzer Date: 12/23/2015 8:55:34 AM Message: [WIN32K] Pass cjMaxBits parameter from GreCreateDIBitmapInternal to IntCreateDIBitmap and check the image size before creating the bitmap. Should fix crash when hitting about tab in Office2000 WinWord. CORE-10583 #comment please retest svn path=/trunk/; revision=70412 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ========================================================================================================== Revision: 89cb03b072475b363a92d354a7f1b5a989578ba3 Author: Timo Kreuzer Date: 12/29/2015 2:28:23 PM Message: [WIN32K] Properly check the bitmap size in IntSetDIBits, taking into account that it might be set to 0, then we have to calculate it ourselves. Fixes a crash when invalid data is passed to NtGdiCreateDIBitmapInternal. [GDI32] Convert COREINFOHEADER to BITMAPINFOHEADER before passing it to NtGdiCreateDIBitmapInternal, which doesn't support it. CORE-10583 #resolve svn path=/trunk/; revision=70464 ---- Modified: reactos/win32ss/gdi/gdi32/objects/bitmap.c Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ========================================================================================================== Revision: de7d65388d31114772c24a2614bfe26613086ab8 Author: Timo Kreuzer Date: 1/3/2016 10:16:04 AM Message: [WIN32K] NtGdiCreateDIBitmapInternal: clear CBM_INIT flag, if no bits are given. IntSetDIBits: Always calculate the bitmap size for uncompressed bitmaps, do not pass uncompressed bits to GreCreateBitmapEx, since they don't have the required alignment (the width in bytes for DIB is 16 bit aligned, bitmaps 32). Remove a broken ASSERT. svn path=/trunk/; revision=70482 ---- Modified: reactos/win32ss/gdi/ntgdi/bitmaps.c Modified: reactos/win32ss/gdi/ntgdi/bitmaps.h Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ========================================================================================================== Revision: 7ba08f4ebfc4b598b50b2ff6f880898f51c99d5c Author: Timo Kreuzer Date: 1/3/2016 1:46:57 PM Message: [WIN32K] Fix the fix from r70482: Our DIBs are actually 32 bit aligned, so pass even uncompressed bits to GreCreateBitmapEx instead of copying them later with wrong alignment. svn path=/trunk/; revision=70486 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ========================================================================================================== Revision: 7c033fc64b4d1add584024a1ee448d8a6e73ba3b Author: Timo Kreuzer Date: 1/3/2016 1:58:33 PM Message: [WIN32K] This ASSERT was actually supposed to be removed and only accidentally brought back. svn path=/trunk/; revision=70487 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ========================================================================================================== Revision: 10bff42ab65732e18e41fd3b3c84115591dbf7b4 Author: Hermès Bélusca-Maïto Date: 2/4/2016 2:42:07 PM Message: Remove redundant extra terminating ';' in all of our C code. svn path=/trunk/; revision=70690 ---- Modified: reactos/boot/environ/include/bcd.h ... Modified: reactos/win32ss/gdi/ntgdi/dibobj.c ... - No changes to NtGdiStretchDIBitsInternal function. ========================================================================================================== Revision: 2c8607a700dde19e5a1f1ece3b95c3ca92443b65 Author: Kamil Hornicek Date: 10/26/2016 5:21:46 AM Message: [WIN32K] - fix a typo in the default logical palette copy - fix color table computation for 8 bpp in GreGetDIBitsInternal (formula taken from gdi32:bitmap winetest) svn path=/trunk/; revision=73038 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ========================================================================================================== Revision: fcaeb4d6a4f8321a476d5846f3615e9e768d34d3 Author: Colin Finck Date: 10/26/2016 7:37:27 AM Message: [PRINTING] Finally merge my branch "colins-printing-for-freedom", giving us an initial implementation of a Win32-compatible Printing Stack (localmon, localspl, spoolss, spoolsv, winspool) You can now send raw data to parallel port printers using documented Win32 API. An example application is in my "winspool_print" commandline tool merged to rosapps. ReactOS folks, thanks for your support during the development of this, making my bachelor's thesis a reality! :) Documentation/Thesis: https://svn.reactos.org/reactos/trunk/documentation/articles/Printing%20Stack%20Thesis/thesis.pdf Video: https://www.youtube.com/watch?v=cNzePucTOLY CORE-10489 svn path=/trunk/; revision=73039 ---- Modified: reactos/base/services/CMakeLists.txt ... Modified: reactos/win32ss/gdi/ntgdi/dibobj.c ... - No changes to NtGdiStretchDIBitsInternal function. ========================================================================================================== Revision: bb5564609aec44f4cb19521a51a0c4141579c374 Author: James Tabor Date: 12/22/2016 11:34:58 AM Message: [Win32SS] - Implement DC Bounds support. It's close to what wine does and passes thousands of tests. Still WIP. See CORE-11582. svn path=/trunk/; revision=73476 ---- Modified: reactos/win32ss/gdi/gdi32/objects/dc.c Modified: reactos/win32ss/gdi/ntgdi/bitblt.c Modified: reactos/win32ss/gdi/ntgdi/coord.h Modified: reactos/win32ss/gdi/ntgdi/dc.h Modified: reactos/win32ss/gdi/ntgdi/dcutil.c ... This code added: if (pdc->fs & (DC_ACCUM_APP|DC_ACCUM_WMGR)) { IntUpdateBoundsRect(pdc, &rcDst); } Above hbmTmp = GreCreateBitmapEx(pbmi->bmiHeader.biWidth, - No functional change because we do not use this code path now. ========================================================================================================== Revision: a2bf0e202371fb4bd4c5996e015c656b0633e424 Author: Kamil Hornicek Date: 3/4/2017 4:37:00 AM Message: [WIN32K] - GreGetDIBitsInternal: - Prevent an access violation in DIB_FreeConvertedBitmapInfo by initializing the bit count before calling DIB_ConvertBitmapInfo and setting clrUsed. - Validate input parameters and return correct values - only return number of scan lines if bits are not null and bpp is not zero. Otherwise return 1 on success. - We now pass more gdi32:GetDIBits and gdi32:bitmap tests. CORE-9270 svn path=/trunk/; revision=74046 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ========================================================================================================== Revision: 0c9274d5bf6e75d455fe215c1b86e07b5fbb4230 Author: Sebastian Gasiorek Date: 3/18/2017 7:35:48 PM Message: import EGA palette fix from Wine svn path=/trunk/; revision=74191 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ========================================================================================================== Revision: 27951d117bc02abc1ada91ad3a0c09db10c675c2 Author: Mark Jansen Date: 6/11/2017 6:18:57 AM Message: [WIN32K] Remove an unneeded check at GreGetDIBitsInternal. Patch by Victor Martinez Calvo. CORE-13413 CID 1411972 svn path=/trunk/; revision=74999 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ========================================================================================================== Revision: deaa7df8176e5a0c0a20438671ae1a1eb35daa8f Author: James Tabor Date: 7/12/2017 8:59:41 PM Message: [Win32SS] - Remove old GDI structure and use the new one. svn path=/trunk/; revision=75326 ---- Modified: reactos/win32ss/gdi/eng/alphablend.c Modified: reactos/win32ss/gdi/eng/bitblt.c Modified: reactos/win32ss/gdi/eng/clip.c Modified: reactos/win32ss/gdi/eng/engobjects.h Modified: reactos/win32ss/gdi/eng/engwindow.c Modified: reactos/win32ss/gdi/eng/gradient.c Modified: reactos/win32ss/gdi/eng/stretchblt.c Modified: reactos/win32ss/gdi/eng/transblt.c Modified: reactos/win32ss/gdi/ntgdi/arc.c Modified: reactos/win32ss/gdi/ntgdi/bitblt.c Modified: reactos/win32ss/gdi/ntgdi/dibobj.c ... Changed this code: /* Perform the stretch operation */ bResult = IntEngStretchBlt(&psurfDst->SurfObj, &psurfTmp->SurfObj, NULL, &pdc->co.ClipObj, // <== This changed. To this code: /* Perform the stretch operation */ bResult = IntEngStretchBlt(&psurfDst->SurfObj, &psurfTmp->SurfObj, NULL, (CLIPOBJ *)&pdc->co, // <== This changed. - We don not use this code path now. ========================================================================================================== Revision: cdcf2da12e13cffe1ffb782e56f9bb4377c9aacb Author: Timo Kreuzer Date: 8/15/2017 1:13:14 PM Message: [WIN32K] IntEngBitBlt returns BOOL, not NTSTATUS! Fix usage in NtGdiSetDIBitsToDeviceInternal accordingly and get rid of NTSTATUS variable entirely. svn path=/trunk/; revision=75553 ---- Modified: reactos/win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ========================================================================================================== Revision: 2d9c88e0c5f0c8fc24612579659a57690e0560bf Author: Timo Kreuzer Date: 3/18/2018 9:53:52 AM Message: [WIN32K] Fix 64 bit issues (#420) - Fix ULONG/SIZE_T issues - Use LOWORD/HIWORD - Change a struct member to HANDLE - Implement lstrlenW helper function ---- Modified: win32ss/gdi/ntgdi/dibobj.c ... - No changes to NtGdiStretchDIBitsInternal function. ========================================================================================================== Revision: 765280bf5f7ba16f1c9333a5a96e571d45a1d33a Author: Colin Finck Date: 3/29/2018 4:52:22 PM Message: Merge PR #283 "[USBPORT] Transaction Translator (TT) support bringup" ---- Modified: drivers/usb/usbport/debug.c ... Modified: win32ss/gdi/ntgdi/dibobj.c ... - No changes to NtGdiStretchDIBitsInternal function. ========================================================================================================== Revision: 53c9a6deaa61091f5bf681483cd3f36cc388c51b Author: Mark Jansen Date: 1/11/2020 6:15:12 AM Message: [WIN32K] Don't trust the BITMAPINFOHEADER size This is not entirely correct yet, but less wrong than before CORE-16621 ---- Modified: win32ss/gdi/ntgdi/dibobj.c Changed this code: hbmTmp = GreCreateBitmapEx(pbmi->bmiHeader.biWidth, abs(pbmi->bmiHeader.biHeight), 0, BitmapFormat(pbmi->bmiHeader.biBitCount, pbmi->bmiHeader.biCompression), pbmi->bmiHeader.biHeight < 0 ? BMF_TOPDOWN : 0, pbmi->bmiHeader.biSizeImage, // <== This changed. pvBits, 0); To this code: hbmTmp = GreCreateBitmapEx(pbmi->bmiHeader.biWidth, abs(pbmi->bmiHeader.biHeight), 0, BitmapFormat(pbmi->bmiHeader.biBitCount, pbmi->bmiHeader.biCompression), pbmi->bmiHeader.biHeight < 0 ? BMF_TOPDOWN : 0, cjMaxBits, // <== This changed. pvBits, 0); - Code does not call this funciton now. - I checked CORE-16621 - Kompozer 0.7.10 from rapps, exe does not show an icon, but does on 2k3sp2 and the KompoZer icon is shown after the changes. ========================================================================================================== Revision: 232c45fcd71b12a0d726b47f4a72e9a16f87432a Author: Joachim Henze Date: 1/5/2021 1:30:40 PM Message: [WIN32SS][COMCTL32] Commit Flip_Fix_9.patch flip_fix_9.patch fixes: CORE-16984 " 'SPINA Thrulg' / 'SPINA Thyr' / 'Sim Thyr' have images flipped" CORE-17194 "StretchDIBits test" isn't work correctly" "Output of 'Project 3 Test'" CORE-14701 "DVDStyler 3.0.4 transparent toolbars" CORE-14701 "DVDStyler 3.0.4 erroneously black around icons of welcome-dlg" CORE-14671 "'Peazip' shows icons in buttons and menubar vertically flipped" "Double Commander shoes icons flipped in buttons, menubar, listview and the treeview" CORE-13273 "Welcome to Lazarus" icon shows flipped CORE-13026 "'CudaText app' icon shows flipped" Not all of those are duplicates, although they appear to be at first glance. It affects different controls and some of those tickets do have different 'guilty revs' than others. The patch does consist of 3 parts: 1.) win32ss/gdi/ntgdi/dibobj.c This one is the most clean part of it, that addresses most of the flipping issues now. 2.) The hack in comctl32.h redefining the version: We used that in the past to appease some, but not all of the issues listed above. But it does hide additional issues, e.g. in DvDStyler, therefore we seem to still need that appeasement even today. Most likely it would make sense to aim to avoid this part in the future. part 2.) was committed as first appeasement on its own already into 0.4.14-RC-24-g 198b61e 0.4.13-RC-7-g 67211fa 0.4.12-RC-5-g 8449527 0.4.11-RC-16-g b906163 0.4.10-RC-7-g f1e80fe 0.4.9-RC-34-g 9d758ae 3.) toolbar.c change That part fixes at least the toolbar case for DvDStyler without relying on the comctl32.h hack any longer, but it was still not enough to completely get rid of part 2.) yet. Many thanks to all contributors: 'I_kill_Bugs', Doug Lyons and also 'Julenuri' for testing. The patch gave nice testbot results: KVM: https://reactos.org/testman/compare.php?ids=75704,75714 VBox: https://reactos.org/testman/compare.php?ids=75705,75715 and we also created a summary of manual test-results: https://jira.reactos.org/browse/CORE-17415?focusedCommentId=126668&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-126668 If you read this comment via git blame and your goal is to get rid of the hack in comctl32.h, I would highly recommend to redo the tests of that testing table, and if that is asked too much, then please test at least the following cases: CORE-14701 "DVDStyler 3.0.4 transparent toolbars" CORE-14701 "DVDStyler 3.0.4 erroneously black around icons of welcome-dlg" "DVDStyler 3.0.4 erroneously black/transparent within comboboxes of properties of VMGM menu" and try to add what might be needed to fix them, and double-check again: "DoubleCommander optionsDlg the most complex testcase, contains flip-prone icons in treeview, listview, menubar, buttons, statics". Only some of its flipped icons were impacted by the comctl32.h change before. ---- Modified: dll/win32/comctl32/comctl32.h Modified: dll/win32/comctl32/toolbar.c Modified: win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ========================================================================================================== Revision: ce7836c6d3cb755d82c0a5de7e6fad225b949c3f Author: Doug Lyons Date: 2/20/2021 5:28:36 PM Message: [WIN32K] Add StretchBlt function ability to flip images (#3458) Modify dib\dibxxbpp.c programs to understand flipped images. See Videos at CORE-16642 1. Mirroring Horizontally works. 2. Mirroring Vertically works. 3. Rotation 180° works. CORE-16642, CORE-14408, CORE-16634 ---- Modified: win32ss/gdi/dib/dib16bpp.c Modified: win32ss/gdi/dib/dib1bpp.c Modified: win32ss/gdi/dib/dib24bpp.c Modified: win32ss/gdi/dib/dib32bpp.c Modified: win32ss/gdi/dib/dib32bppc.c Modified: win32ss/gdi/dib/dib4bpp.c Modified: win32ss/gdi/dib/dib8bpp.c Modified: win32ss/gdi/dib/stretchblt.c Modified: win32ss/gdi/eng/bitblt.c Modified: win32ss/gdi/eng/copybits.c Modified: win32ss/gdi/eng/stretchblt.c Modified: win32ss/gdi/ntgdi/bitblt.c Modified: win32ss/gdi/ntgdi/dibobj.c - No changes to NtGdiStretchDIBitsInternal function. ==========================================================================================================