summaryrefslogtreecommitdiff
path: root/Build/source/utils/asymptote/psfile.cc
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/utils/asymptote/psfile.cc')
-rw-r--r--Build/source/utils/asymptote/psfile.cc14
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;
}