diff options
Diffstat (limited to 'Build/source/utils/asymptote/psfile.cc')
-rw-r--r-- | Build/source/utils/asymptote/psfile.cc | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/Build/source/utils/asymptote/psfile.cc b/Build/source/utils/asymptote/psfile.cc index 73fe53eb743..6d882f4bed7 100644 --- a/Build/source/utils/asymptote/psfile.cc +++ b/Build/source/utils/asymptote/psfile.cc @@ -58,8 +58,7 @@ static const char *rectangular="matrix is not rectangular"; void psfile::writefromRGB(unsigned char r, unsigned char g, unsigned char b, ColorSpace colorspace, size_t ncomponents) { - static const double factor=1.0/255.0; - pen p(r*factor,g*factor,b*factor); + pen p(byteinv(r),byteinv(g),byteinv(b)); p.convert(); if(!p.promote(colorspace)) reportError(inconsistent); @@ -203,6 +202,14 @@ void psfile::setcolor(const pen& p, const string& begin="", } } +bool psfile::transparentFormat(string outputformat) +{ + return + outputformat == "pdf" || outputformat == "html" || + outputformat == "svg" || outputformat == "png" || + outputformat == "v3d"; +} + void psfile::setopacity(const pen& p) { if(p.blend() != lastpen.blend()) { @@ -211,8 +218,7 @@ void psfile::setopacity(const pen& p) string outputformat=settings::getSetting<string>("outformat"); if(p.opacity() != lastpen.opacity() && - (pdf || outputformat == "pdf" || outputformat == "html" || - outputformat == "svg")) { + ((pdftex() && outputformat == "") || transparentFormat(outputformat))) { *out << p.opacity() << " .setfillconstantalpha" << newl << p.opacity() << " .setstrokeconstantalpha" << newl; } |