projects
/
synfig.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use a switch statement in the operator() like the other valuenode types do.
[synfig.git]
/
synfig-core
/
trunk
/
src
/
synfig
/
color.cpp
diff --git
a/synfig-core/trunk/src/synfig/color.cpp
b/synfig-core/trunk/src/synfig/color.cpp
index
9ef2c03
..
3305eb4
100644
(file)
--- a/
synfig-core/trunk/src/synfig/color.cpp
+++ b/
synfig-core/trunk/src/synfig/color.cpp
@@
-53,7
+53,7
@@
using namespace std;
-
static
ColorReal
+ColorReal
Color::hex2real(String s)
{
std::istringstream i(s);
Color::hex2real(String s)
{
std::istringstream i(s);
@@
-64,7
+64,7
@@
Color::hex2real(String s)
return n / 255.0f;
}
return n / 255.0f;
}
-
static
const String
+const String
Color::real2hex(ColorReal c)
{
std::ostringstream o;
Color::real2hex(ColorReal c)
{
std::ostringstream o;
@@
-82,7
+82,12
@@
Color::set_hex(String& hex)
value_type r, g, b;
try
{
value_type r, g, b;
try
{
- if (hex.size() == 3)
+ if (hex.size() == 1)
+ {
+ r = hex2real(hex.substr(0,1)+hex.substr(0,1));
+ r_ = g_ = b_ = r;
+ }
+ else if (hex.size() == 3)
{
r = hex2real(hex.substr(0,1)+hex.substr(0,1));
g = hex2real(hex.substr(1,1)+hex.substr(1,1));
{
r = hex2real(hex.substr(0,1)+hex.substr(0,1));
g = hex2real(hex.substr(1,1)+hex.substr(1,1));
@@
-369,7
+374,7
@@
blendfunc_DIVIDE(Color &a,Color &b,float amount)
// We add COLOR_EPSILON in order to avoid a divide-by-zero condition.
// This causes DIVIDE to bias toward positive values, but the effect is
// We add COLOR_EPSILON in order to avoid a divide-by-zero condition.
// This causes DIVIDE to bias toward positive values, but the effect is
- // really negl
ega
ble. There is a reason why we use COLOR_EPSILON--we
+ // really negl
igi
ble. There is a reason why we use COLOR_EPSILON--we
// want the change to be imperceptable.
b.set_r(((b.get_r()/(a.get_r()+COLOR_EPSILON))-b.get_r())*(amount)+b.get_r());
// want the change to be imperceptable.
b.set_r(((b.get_r()/(a.get_r()+COLOR_EPSILON))-b.get_r())*(amount)+b.get_r());