From 90078071c9c4c239d680e18c4018bc982b75c626 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Thu, 8 Apr 2004 18:12:10 +0000
Subject: [PATCH] disabled PostScript Level 3 shading operator by default (and
 added a new option to change it: Print.EpsPS3Shading)

---
 Common/Context.h        | 2 +-
 Common/DefaultOptions.h | 2 ++
 Common/Options.cpp      | 9 ++++++++-
 Common/Options.h        | 1 +
 Graphics/CreateFile.cpp | 3 ++-
 5 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/Common/Context.h b/Common/Context.h
index 94f25b58cd..114223458e 100644
--- a/Common/Context.h
+++ b/Common/Context.h
@@ -197,7 +197,7 @@ public :
   // print options 
   struct{
     int format;
-    int eps_quality, eps_background, eps_font_size, eps_compress;
+    int eps_quality, eps_background, eps_font_size, eps_compress, eps_ps3shading;
     int eps_occlusion_culling, eps_best_root;
     char *eps_font;
     double eps_line_width_factor, eps_point_size_factor;
diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h
index 3efac05c4e..52fe606a89 100644
--- a/Common/DefaultOptions.h
+++ b/Common/DefaultOptions.h
@@ -1053,6 +1053,8 @@ StringXNumber PrintOptions_Number[] = {
     "Cull occluded primitives (to reduce PostScript/PDF file size)" },
   { F|O, "EpsPointSizeFactor" , opt_print_eps_point_size_factor , 1.0 ,
     "Size factor for points in PostScript/PDF output" },
+  { F|O, "EpsPS3Shading" , opt_print_eps_ps3shading , 0. ,
+    "Enable PostScript Level 3 shading" },
   { F|O, "EpsQuality" , opt_print_eps_quality , 1. ,
     "PostScript/PDF quality (1=simple sort, 2=BSP tree sort)" },
 
diff --git a/Common/Options.cpp b/Common/Options.cpp
index 296436ef52..e3a6a1d256 100644
--- a/Common/Options.cpp
+++ b/Common/Options.cpp
@@ -1,4 +1,4 @@
-// $Id: Options.cpp,v 1.139 2004-03-30 18:17:06 geuzaine Exp $
+// $Id: Options.cpp,v 1.140 2004-04-08 18:12:10 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -4754,6 +4754,13 @@ double opt_print_eps_compress(OPT_ARGS_NUM)
   return CTX.print.eps_compress;
 }
 
+double opt_print_eps_ps3shading(OPT_ARGS_NUM)
+{
+  if(action & GMSH_SET)
+    CTX.print.eps_ps3shading = (int)val;
+  return CTX.print.eps_ps3shading;
+}
+
 double opt_print_eps_quality(OPT_ARGS_NUM)
 {
   if(action & GMSH_SET)
diff --git a/Common/Options.h b/Common/Options.h
index 4b730fd307..0726d3d6f5 100644
--- a/Common/Options.h
+++ b/Common/Options.h
@@ -480,6 +480,7 @@ double opt_view_point_type(OPT_ARGS_NUM);
 double opt_view_line_type(OPT_ARGS_NUM);
 double opt_print_format(OPT_ARGS_NUM);
 double opt_print_eps_compress(OPT_ARGS_NUM);
+double opt_print_eps_ps3shading(OPT_ARGS_NUM);
 double opt_print_eps_quality(OPT_ARGS_NUM);
 double opt_print_eps_occlusion_culling(OPT_ARGS_NUM);
 double opt_print_eps_best_root(OPT_ARGS_NUM);
diff --git a/Graphics/CreateFile.cpp b/Graphics/CreateFile.cpp
index 0c688e1f2d..29b0b32160 100644
--- a/Graphics/CreateFile.cpp
+++ b/Graphics/CreateFile.cpp
@@ -1,4 +1,4 @@
-// $Id: CreateFile.cpp,v 1.54 2004-03-06 00:19:19 geuzaine Exp $
+// $Id: CreateFile.cpp,v 1.55 2004-04-08 18:12:10 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -247,6 +247,7 @@ void CreateOutputFile(char *name, int format)
 	(CTX.print.eps_best_root ? GL2PS_BEST_ROOT : 0) |
 	(CTX.print.eps_background ? GL2PS_DRAW_BACKGROUND : 0) |
 	(CTX.print.eps_compress ? GL2PS_COMPRESS : 0) |
+	(CTX.print.eps_ps3shading ? 0 : GL2PS_NO_PS3_SHADING) |
 	(format == FORMAT_EPSTEX ? GL2PS_NO_TEXT : 0) |
 	(format == FORMAT_PDFTEX ? GL2PS_NO_TEXT : 0) |
 	(format == FORMAT_EPSTEX_RASTER ? GL2PS_NO_TEXT : 0) |
-- 
GitLab