summaryrefslogtreecommitdiff
path: root/indra/llmessage/llpartdata.h
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2013-03-08 18:12:19 -0600
committerDave Parks <davep@lindenlab.com>2013-03-08 18:12:19 -0600
commit7a71c094b95bbc6b821b93e2be7e18d19c3cff11 (patch)
treece0f4cd364e37e550239931a43a6155d12486b1e /indra/llmessage/llpartdata.h
parentb628518fd7c2ee6432dd2f49ecf192bd26455dba (diff)
MAINT-2410 Extra Particle Parameters -- port of Kelly's simulator changeset
Diffstat (limited to 'indra/llmessage/llpartdata.h')
-rw-r--r--indra/llmessage/llpartdata.h36
1 files changed, 35 insertions, 1 deletions
diff --git a/indra/llmessage/llpartdata.h b/indra/llmessage/llpartdata.h
index a4ef058b30..19207d994d 100644
--- a/indra/llmessage/llpartdata.h
+++ b/indra/llmessage/llpartdata.h
@@ -70,7 +70,12 @@ enum LLPSScriptFlags
LLPS_SRC_TARGET_UUID,
LLPS_SRC_OMEGA,
LLPS_SRC_ANGLE_BEGIN,
- LLPS_SRC_ANGLE_END
+ LLPS_SRC_ANGLE_END,
+
+ LLPS_PART_BLEND_FUNC_SOURCE,
+ LLPS_PART_BLEND_FUNC_DEST,
+ LLPS_PART_START_GLOW,
+ LLPS_PART_END_GLOW
};
@@ -89,6 +94,9 @@ public:
operator LLSD() const {return asLLSD(); }
bool fromLLSD(LLSD& sd);
+ bool hasGlow() const;
+ bool hasBlendFunc() const;
+
// Masks for the different particle flags
enum
{
@@ -102,6 +110,7 @@ public:
LL_PART_TARGET_LINEAR_MASK = 0x80, // Particle uses a direct linear interpolation
LL_PART_EMISSIVE_MASK = 0x100, // Particle is "emissive", instead of being lit
LL_PART_BEAM_MASK = 0x200, // Particle is a "beam" connecting source and target
+ LL_PART_RIBBON_MASK = 0x400, // Particles are joined together into one continuous triangle strip
// Not implemented yet!
//LL_PART_RANDOM_ACCEL_MASK = 0x100, // Particles have random acceleration
@@ -113,6 +122,23 @@ public:
LL_PART_DEAD_MASK = 0x80000000,
};
+ enum
+ {
+ LL_PART_BF_ONE = 0,
+ LL_PART_BF_ZERO = 1,
+ LL_PART_BF_DEST_COLOR = 2,
+ LL_PART_BF_SOURCE_COLOR = 3,
+ LL_PART_BF_ONE_MINUS_DEST_COLOR = 4,
+ LL_PART_BF_ONE_MINUS_SOURCE_COLOR = 5,
+ UNSUPPORTED_DEST_ALPHA = 6,
+ LL_PART_BF_SOURCE_ALPHA = 7,
+ UNSUPPORTED_ONE_MINUS_DEST_ALPHA = 8,
+ LL_PART_BF_ONE_MINUS_SOURCE_ALPHA = 9,
+ LL_PART_BF_COUNT = 10
+ };
+
+ static bool validBlendFunc(S32 func);
+
void setFlags(const U32 flags);
void setMaxAge(const F32 max_age);
void setStartScale(const F32 xs, F32 ys);
@@ -137,6 +163,12 @@ public:
LLVector3 mPosOffset; // Offset from source if using FOLLOW_SOURCE
F32 mParameter; // A single floating point parameter
+
+ F32 mStartGlow;
+ F32 mEndGlow;
+
+ U8 mBlendFuncSource;
+ U8 mBlendFuncDest;
};
@@ -187,6 +219,8 @@ public:
void clampSourceParticleRate();
friend std::ostream& operator<<(std::ostream& s, const LLPartSysData &data); // Stream a
+
+ S32 getdataBlockSize() const;
public:
// Public because I'm lazy....