X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=hacks%2Fglx%2Fflurry-smoke.c;h=245e9f1b1c1867dfa056818277963c25bc215654;hp=4b8745103be8634396e21fb94658e3e76dfe4f1e;hb=4361b69d3178d7fc98d0388f9a223af6c2651aba;hpb=4cecfc89e5e889c7232693897c06168fb378bd5c diff --git a/hacks/glx/flurry-smoke.c b/hacks/glx/flurry-smoke.c index 4b874510..245e9f1b 100644 --- a/hacks/glx/flurry-smoke.c +++ b/hacks/glx/flurry-smoke.c @@ -32,6 +32,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. /* Smoke.cpp: implementation of the Smoke class. */ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + #include "flurry.h" #define MAXANGLES 16384 @@ -164,7 +168,6 @@ void UpdateSmoke_ScalarBase(global_info_t *global, flurry_info_t *flurry, SmokeV if ((((i*4)+k) % flurry->numStreams) == j) { f *= 1.0f + streamBias; } - mag = f / (float) sqrt(rsquared); deltax -= (dx * mag); @@ -194,6 +197,7 @@ void UpdateSmoke_ScalarBase(global_info_t *global, flurry_info_t *flurry, SmokeV } } +#if 0 #ifdef __ppc__ void UpdateSmoke_ScalarFrsqrte(global_info_t *global, flurry_info_t *flurry, SmokeV *s) @@ -242,11 +246,13 @@ void UpdateSmoke_ScalarFrsqrte(global_info_t *global, flurry_info_t *flurry, Smo rsquared = (dx*dx+dy*dy+dz*dz); f = streamSpeed * streamSpeedCoherenceFactor; - /* mag = f / (float) sqrt(rsquared); */ - - /* reciprocal square-root estimate replaced above divide and call to system sqrt() */ - asm("frsqrte %0, %1" : "=f" (mag) : "f" (rsquared)); - mag *= f; + mag = f / (float) sqrt(rsquared); + /* + reciprocal square-root estimate replaced above divide and call to system sqrt() + + asm("frsqrte %0, %1" : "=f" (mag) : "f" (rsquared)); + mag *= f; + */ s->p[s->nextParticle].delta[0].f[s->nextSubParticle] -= (dx * mag); s->p[s->nextParticle].delta[1].f[s->nextSubParticle] -= (dy * mag); @@ -307,18 +313,19 @@ void UpdateSmoke_ScalarFrsqrte(global_info_t *global, flurry_info_t *flurry, Smo dz = s->p[i].position[2].f[k] - flurry->spark[j]->position[2]; rsquared = (dx*dx+dy*dy+dz*dz); - asm("fres %0, %1" : "=f" (f) : "f" (rsquared)); - f *= gravity*frameRateModifier; - + /* + asm("fres %0, %1" : "=f" (f) : "f" (rsquared)); + f *= gravity*frameRateModifier; + */ + f = ( gravity * frameRateModifier ) / rsquared; + if((((i*4)+k) % flurry->numStreams) == j) { f *= 1.0f + streamBias; } - /* mag = f / (float) sqrt(rsquared); */ + mag = f / (float) sqrt(rsquared); /* reciprocal square-root estimate replaced above divide and call to system sqrt() */ - asm("frsqrte %0, %1" : "=f" (mag) : "f" (rsquared)); - mag *= f; deltax -= (dx * mag); deltay -= (dy * mag); @@ -411,8 +418,11 @@ void UpdateSmoke_VectorBase(global_info_t *global, flurry_info_t *flurry, SmokeV rsquared = (dx*dx+dy*dy+dz*dz); f = streamSpeed * streamSpeedCoherenceFactor; - asm("frsqrte %0, %1" : "=f" (mag) : "f" (rsquared)); - mag *= f; + mag = f / (float) sqrt(rsquared); + /* + asm("frsqrte %0, %1" : "=f" (mag) : "f" (rsquared)); + mag *= f; + */ s->p[s->nextParticle].delta[0].f[s->nextSubParticle] -= (dx * mag); s->p[s->nextParticle].delta[1].f[s->nextSubParticle] -= (dy * mag); @@ -623,8 +633,11 @@ void UpdateSmoke_VectorUnrolled(global_info_t *info, SmokeV *s) rsquared = (dx*dx+dy*dy+dz*dz); f = streamSpeed * streamSpeedCoherenceFactor; - asm("frsqrte %0, %1" : "=f" (mag) : "f" (rsquared)); - mag *= f; + mag = f / (float) sqrt(rsquared); + /* + asm("frsqrte %0, %1" : "=f" (mag) : "f" (rsquared)); + mag *= f; + */ s->p[s->nextParticle].delta[0].f[s->nextSubParticle] -= (dx * mag); s->p[s->nextParticle].delta[1].f[s->nextSubParticle] -= (dy * mag); @@ -918,6 +931,7 @@ void UpdateSmoke_VectorUnrolled(global_info_t *info, SmokeV *s) } #endif +#endif /* 0 */ void DrawSmoke_Scalar(global_info_t *global, flurry_info_t *flurry, SmokeV *s, float brightness) { @@ -1008,12 +1022,10 @@ void DrawSmoke_Scalar(global_info_t *global, flurry_info_t *flurry, SmokeV *s, f s->p[i].animFrame.i[k] = 0; } - u0 = (s->p[i].animFrame.i[k]&&7) * 0.125f; + u0 = (s->p[i].animFrame.i[k]& 7) * 0.125f; v0 = (s->p[i].animFrame.i[k]>>3) * 0.125f; u1 = u0 + 0.125f; v1 = v0 + 0.125f; - u1 = u0 + 0.125f; - v1 = v0 + 0.125f; cm = (1.375f - thisWidth/width); if (s->p[i].dead.i[k] == 3) { @@ -1076,6 +1088,7 @@ void DrawSmoke_Scalar(global_info_t *global, flurry_info_t *flurry, SmokeV *s, f glDrawArrays(GL_QUADS,0,si*4); } +#if 0 #ifdef __VEC__ void DrawSmoke_Vector(global_info_t *global, flurry_info_t *flurry, SmokeV *s, float brightness) @@ -1425,3 +1438,4 @@ void DrawSmoke_Vector(global_info_t *global, flurry_info_t *flurry, SmokeV *s, f } #endif +#endif /* 0 */