| 709 | } |
| 710 | |
| 711 | void PSDReader::ReadEffectSection(ImageEffects* imageEffects, PSDDescriptor* desc) |
| 712 | { |
| 713 | ImageEffects* anImageEffects = imageEffects; |
| 714 | |
| 715 | if (desc->Get("masterFXSwitch")->mInteger == 0) |
| 716 | return; |
| 717 | |
| 718 | // Drop shadow |
| 719 | PSDDescriptor* effectDesc = desc->GetDescriptor("DrSh"); |
| 720 | if (effectDesc->Get("enab")->mInteger != 0) |
| 721 | { |
| 722 | ImageDropShadowEffect* effect = new ImageDropShadowEffect(); |
| 723 | effect->mBlendMode = ReadBlendMode(effectDesc->Get("Md ")); |
| 724 | effect->mOpacity = effectDesc->Get("Opct")->mDouble; |
| 725 | ReadEffectColor(effectDesc->GetDescriptor("Clr "), &effect->mColor); |
| 726 | |
| 727 | effect->mLocalAngle = effectDesc->Get("lagl")->mDouble; |
| 728 | effect->mUseGlobalLight = effectDesc->Get("uglg")->mInteger != 0; |
| 729 | effect->mDistance = effectDesc->Get("Dstn")->mDouble; |
| 730 | effect->mSpread = effectDesc->Get("Ckmt")->mDouble; |
| 731 | effect->mSize = effectDesc->Get("blur")->mDouble; |
| 732 | |
| 733 | ReadEffectContour(effectDesc->GetDescriptor("TrnS"), &effect->mContour); |
| 734 | effect->mNoise = effectDesc->Get("Nose")->mDouble; |
| 735 | |
| 736 | effect->mAntiAliased = effectDesc->Get("AntA")->mInteger != 0; |
| 737 | effect->mLayerKnocksOut = effectDesc->Get("layerConceals")->mInteger != 0; |
| 738 | |
| 739 | anImageEffects->AddEffect(effect); |
| 740 | } |
| 741 | |
| 742 | // Outer glow |
| 743 | effectDesc = desc->GetDescriptor("OrGl"); |
| 744 | if (effectDesc->Get("enab")->mInteger != 0) |
| 745 | { |
| 746 | ImageOuterGlowEffect* effect = new ImageOuterGlowEffect(); |
| 747 | effect->mBlendMode = ReadBlendMode(effectDesc->Get("Md ")); |
| 748 | effect->mOpacity = effectDesc->Get("Opct")->mDouble; |
| 749 | effect->mNoise = effectDesc->Get("Nose")->mDouble; |
| 750 | |
| 751 | effect->mHasGradient = ReadEffectGradient(effectDesc, effect->mColorGradient); |
| 752 | |
| 753 | effect->mTechnique = effectDesc->Get("GlwT")->GetMulticharInt(); |
| 754 | effect->mSpread = effectDesc->Get("Ckmt")->mDouble; |
| 755 | effect->mSize = effectDesc->Get("blur")->mDouble; |
| 756 | |
| 757 | ReadEffectContour(effectDesc->GetDescriptor("TrnS"), &effect->mContour); |
| 758 | |
| 759 | effect->mAntiAliased = effectDesc->Get("AntA")->mInteger != 0; |
| 760 | effect->mRange = effectDesc->Get("Inpr")->mDouble; |
| 761 | effect->mJitter = effectDesc->Get("ShdN")->mDouble; |
| 762 | |
| 763 | anImageEffects->AddEffect(effect); |
| 764 | } |
| 765 | |
| 766 | // Pattern Overlay |
| 767 | effectDesc = desc->GetDescriptor("patternFill"); |
| 768 | if (effectDesc->Get("enab")->mInteger != 0) |
nothing calls this directly
no test coverage detected