Vincent Povirk : gdiplus/tests: Test mixing Begin/EndContainer and Save/ Restore.
Alexandre Julliard
julliard at winehq.org
Mon Aug 15 10:37:29 CDT 2016
Module: wine
Branch: master
Commit: 8fbdd670cab2abff8d01d3b3110a58075cfc5bf8
URL: http://source.winehq.org/git/wine.git/?a=commit;h=8fbdd670cab2abff8d01d3b3110a58075cfc5bf8
Author: Vincent Povirk <vincent at codeweavers.com>
Date: Fri Aug 12 15:47:15 2016 -0500
gdiplus/tests: Test mixing Begin/EndContainer and Save/Restore.
Signed-off-by: Vincent Povirk <vincent at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/gdiplus/tests/graphics.c | 58 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 58 insertions(+)
diff --git a/dlls/gdiplus/tests/graphics.c b/dlls/gdiplus/tests/graphics.c
index 56be8eb..4a762cc 100644
--- a/dlls/gdiplus/tests/graphics.c
+++ b/dlls/gdiplus/tests/graphics.c
@@ -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);
More information about the wine-cvs
mailing list