[2/2] gdiplus: Implement GdipBeginContainer2 and GdipEndContainer
Nikolay Sivov
bunglehead at gmail.com
Fri Jul 3 03:30:49 CDT 2009
Andrew Eikum wrote:
> ---
> dlls/gdiplus/gdiplus_private.h | 3 +
> dlls/gdiplus/graphics.c | 154 ++++++++++++++++++++++++++++++++++++++--
> include/gdiplusflat.h | 1 +
> 3 files changed, 152 insertions(+), 6 deletions(-)
>
This looks wrong for me cause I don't think you could pass container id
created with one Graphics to
Graphics.EndContainer() of another. I've just checked it and it doesn't
return any error code,
but generated container ids aren't the same when you call
BeginContainer() for e.g. two objects
as sequent steps. It looks like on native these value are module unique,
some kind of handle table needed.
This kills the first problem I described - passing strange value to
another Graphics.
Also note that Save()/Restore() functionality uses the same stack with
container calls (at least msdn tells us that),
for that Save/Restore we already have a test:
---
static void test_save_restore(void)
....
/* The same state value should never be returned twice. */
todo_wine
check_no_duplicates(state_log);
....
---
It clearly says that no duplicates allowed, even after multiple object
deletion - it checks for values returned
during the whole test.
More information about the wine-devel
mailing list