diff options
author | Marius Kintel <marius@kintel.net> | 2011-07-30 23:09:16 (GMT) |
---|---|---|
committer | Marius Kintel <marius@kintel.net> | 2011-07-30 23:09:16 (GMT) |
commit | dd9dfcb4ece4dcd1ae7f3374ef03a4babdb91dd8 (patch) | |
tree | f59388b353b77390d0927e06b1d83e4309fc7bd4 /src/transform.cc | |
parent | c03f3a59b5b5f3c0f720482199f4cb5d674b92ea (diff) | |
parent | 639c55c07a10d4cf6be352cdcb2c36ac3e784d59 (diff) |
fixed merge conflicts
Diffstat (limited to 'src/transform.cc')
-rw-r--r-- | src/transform.cc | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/transform.cc b/src/transform.cc index d75c6a7..b22b766 100644 --- a/src/transform.cc +++ b/src/transform.cc @@ -109,7 +109,7 @@ AbstractNode *TransformModule::evaluate(const Context *ctx, const ModuleInstanti argnames = QVector<QString>() << "m"; break; case COLOR: - argnames = QVector<QString>() << "c"; + argnames = QVector<QString>() << "c" << "alpha"; break; default: assert(false); @@ -251,23 +251,25 @@ AbstractNode *TransformModule::evaluate(const Context *ctx, const ModuleInstanti // FIXME: Port to non-Qt #if 0 } else if (v.type == Value::STRING) { - double alpha = 1.0; - vector<string> chunks = split(v.text, ","); - string colorname = chunks[0]; - if (chunks.size() < 2 || !from_string(alpha, chunks[1])) alpha = 1.0; + QString colorname = v.text; QColor color; color.setNamedColor(colorname); if (color.isValid()) { - node->m[16+0] = color.redF(); - node->m[16+1] = color.greenF(); - node->m[16+2] = color.blueF(); - node->m[16+3] = alpha; + node->matrix[16+0] = color.redF(); + node->matrix[16+1] = color.greenF(); + node->matrix[16+2] = color.blueF(); } else { PRINTF_NOCACHE("WARNING: Color name \"%s\" unknown. Please see",v.text.toUtf8().data()); PRINTF_NOCACHE("WARNING: http://en.wikipedia.org/wiki/Web_colors"); } #endif } + Value alpha = c.lookup_variable("alpha"); + if (alpha.type == Value::NUMBER) { + node->matrix[16+3] = alpha.num; + } else { + node->matrix[16+3] = 1.0; + } } foreach (ModuleInstantiation *v, inst->children) { |