From a4995b8ea2f3e163c24ed3c9f96007f411e8feaf Mon Sep 17 00:00:00 2001 From: georges <> Date: Thu, 8 Feb 2001 22:59:04 +0000 Subject: [PATCH] fix bug --- .../particlesystem/pointParticleRenderer.cxx | 30 ++++++++----------- 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/panda/src/particlesystem/pointParticleRenderer.cxx b/panda/src/particlesystem/pointParticleRenderer.cxx index 712d5bf8d5..a104e68423 100644 --- a/panda/src/particlesystem/pointParticleRenderer.cxx +++ b/panda/src/particlesystem/pointParticleRenderer.cxx @@ -135,7 +135,7 @@ kill_particle(int) { Colorf PointParticleRenderer:: create_color(const BaseParticle *p) { Colorf color; - float life_t, vel_t, alpha_linear_t; + float life_t, vel_t, parameterized_age; bool have_alpha_t = false; switch (_blend_type) { @@ -149,8 +149,8 @@ create_color(const BaseParticle *p) { //// Blending colors based on life case PP_BLEND_LIFE: - life_t = p->get_parameterized_age(); - alpha_linear_t = life_t; + parameterized_age = p->get_parameterized_age(); + life_t = parameterized_age; have_alpha_t = true; if (_blend_method == PP_BLEND_CUBIC) @@ -176,23 +176,17 @@ create_color(const BaseParticle *p) { // handle alpha channel if(_alpha_mode != PR_ALPHA_NONE) { + if(_alpha_mode == PR_ALPHA_USER) { + parameterized_age = get_user_alpha(); + } else { + if(!have_alpha_t) + parameterized_age = p->get_parameterized_age(); - if (have_alpha_t == false) - alpha_linear_t = p->get_parameterized_age(); - - switch(_alpha_mode) { - case PR_ALPHA_OUT: - color[3] = 1.0f - alpha_linear_t; - break; - - case PR_ALPHA_IN: - color[3] = alpha_linear_t; - break; - - case PR_ALPHA_USER: - color[3] = get_user_alpha(); - break; + if(_alpha_mode==PR_ALPHA_OUT) { + parameterized_age=1.0f-parameterized_age; + } } + color[3] = parameterized_age; } return color;