gdiplus/tests: Test mixing Begin/EndContainer and Save/Restore.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
af500612f2
commit
8fbdd670ca
|
@ -326,6 +326,64 @@ static void test_save_restore(void)
|
|||
|
||||
log_state(state_a, &state_log);
|
||||
|
||||
/* A state created by SaveGraphics cannot be restored with EndContainer. */
|
||||
GdipCreateFromHDC(hdc, &graphics1);
|
||||
GdipSetInterpolationMode(graphics1, InterpolationModeBilinear);
|
||||
stat = GdipSaveGraphics(graphics1, &state_a);
|
||||
expect(Ok, stat);
|
||||
GdipSetInterpolationMode(graphics1, InterpolationModeBicubic);
|
||||
stat = GdipEndContainer(graphics1, state_a);
|
||||
expect(Ok, stat);
|
||||
GdipGetInterpolationMode(graphics1, &mode);
|
||||
todo_wine expect(InterpolationModeBicubic, mode);
|
||||
stat = GdipRestoreGraphics(graphics1, state_a);
|
||||
expect(Ok, stat);
|
||||
GdipGetInterpolationMode(graphics1, &mode);
|
||||
expect(InterpolationModeBilinear, mode);
|
||||
GdipDeleteGraphics(graphics1);
|
||||
|
||||
log_state(state_a, &state_log);
|
||||
|
||||
/* A state created by BeginContainer cannot be restored with RestoreGraphics. */
|
||||
GdipCreateFromHDC(hdc, &graphics1);
|
||||
GdipSetInterpolationMode(graphics1, InterpolationModeBilinear);
|
||||
stat = GdipBeginContainer2(graphics1, &state_a);
|
||||
expect(Ok, stat);
|
||||
GdipSetInterpolationMode(graphics1, InterpolationModeBicubic);
|
||||
stat = GdipRestoreGraphics(graphics1, state_a);
|
||||
expect(Ok, stat);
|
||||
GdipGetInterpolationMode(graphics1, &mode);
|
||||
todo_wine expect(InterpolationModeBicubic, mode);
|
||||
stat = GdipEndContainer(graphics1, state_a);
|
||||
expect(Ok, stat);
|
||||
GdipGetInterpolationMode(graphics1, &mode);
|
||||
expect(InterpolationModeBilinear, mode);
|
||||
GdipDeleteGraphics(graphics1);
|
||||
|
||||
log_state(state_a, &state_log);
|
||||
|
||||
/* BeginContainer and SaveGraphics use the same stack. */
|
||||
GdipCreateFromHDC(hdc, &graphics1);
|
||||
GdipSetInterpolationMode(graphics1, InterpolationModeBilinear);
|
||||
stat = GdipBeginContainer2(graphics1, &state_a);
|
||||
expect(Ok, stat);
|
||||
GdipSetInterpolationMode(graphics1, InterpolationModeBicubic);
|
||||
stat = GdipSaveGraphics(graphics1, &state_b);
|
||||
expect(Ok, stat);
|
||||
GdipSetInterpolationMode(graphics1, InterpolationModeNearestNeighbor);
|
||||
stat = GdipEndContainer(graphics1, state_a);
|
||||
expect(Ok, stat);
|
||||
GdipGetInterpolationMode(graphics1, &mode);
|
||||
expect(InterpolationModeBilinear, mode);
|
||||
stat = GdipRestoreGraphics(graphics1, state_b);
|
||||
expect(Ok, stat);
|
||||
GdipGetInterpolationMode(graphics1, &mode);
|
||||
expect(InterpolationModeBilinear, mode);
|
||||
GdipDeleteGraphics(graphics1);
|
||||
|
||||
log_state(state_a, &state_log);
|
||||
log_state(state_b, &state_log);
|
||||
|
||||
/* The same state value should never be returned twice. */
|
||||
todo_wine
|
||||
check_no_duplicates(state_log);
|
||||
|
|
Loading…
Reference in New Issue