summaryrefslogtreecommitdiff
path: root/utils/particle_test/particle_test.cpp
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /utils/particle_test/particle_test.cpp
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'utils/particle_test/particle_test.cpp')
-rw-r--r--utils/particle_test/particle_test.cpp62
1 files changed, 62 insertions, 0 deletions
diff --git a/utils/particle_test/particle_test.cpp b/utils/particle_test/particle_test.cpp
new file mode 100644
index 0000000..ce1f236
--- /dev/null
+++ b/utils/particle_test/particle_test.cpp
@@ -0,0 +1,62 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//===========================================================================//
+
+#include "tier0/platform.h"
+#include "mathlib/mathlib.h"
+#include "mathlib/ssemath.h"
+#include "particles.h"
+#include "tier2/tier2.h"
+#include "tier0/memdbgon.h"
+
+void main(int argc,char **argv)
+{
+ InitCommandLineProgram( argc, argv );
+
+
+ // test sse noise
+ FourVectors start;
+ start.LoadAndSwizzle(Vector(-1,4,3),Vector(0,7,8),Vector(8,1,2),Vector(0,0,0));
+ FourVectors delta;
+ delta.LoadAndSwizzle(Vector(.1,-.1,.05),Vector(.1,.1,.1),Vector(0,-.1,0),Vector(.1,0,0));
+#ifdef TIME_IT
+ float start_time=Plat_FloatTime();
+ for(int sim=0;sim<1000*1000*10;sim++)
+ {
+ __m128 n=SSENoise( start );
+ start+=delta;
+ }
+ printf("n/s=%f\n",(4*1000*1000*10.0)/(Plat_FloatTime()-start_time));
+#endif
+ for(int i=0;i<130;i++)
+ {
+ __m128 noise=SSENoise( start );
+// printf(" noise(x=%f)=%f\t%f\t%f\t%f\n",
+ printf(" %f,%f,%f,%f,%f\n",
+ start.X(0),noise.m128_f32[0],
+ noise.m128_f32[1],
+ noise.m128_f32[2],
+ noise.m128_f32[3]);
+ start+=delta;
+ }
+
+#if 0
+ ReadParticleConfigFile("particles.cfg");
+ ParticleCollection lots_o_particles( "fireball" );
+ lots_o_particles.SetNActiveParticles( 1000000 );
+ // kick the particles up into the air
+ lots_o_particles.FillAttributeWithConstant( PARTICLE_ATTRIBUTE_XCOORD, 0.0 );
+ lots_o_particles.FillAttributeWithConstant( PARTICLE_ATTRIBUTE_YCOORD, 0.0 );
+ lots_o_particles.FillAttributeWithConstant( PARTICLE_ATTRIBUTE_ZCOORD, 10.0 );
+ lots_o_particles.FillAttributeWithConstant( PARTICLE_ATTRIBUTE_PREV_XCOORD, 0.0 );
+ lots_o_particles.FillAttributeWithConstant( PARTICLE_ATTRIBUTE_PREV_YCOORD, 0.0 );
+ lots_o_particles.FillAttributeWithConstant( PARTICLE_ATTRIBUTE_PREV_ZCOORD, 0.0 );
+ float start=Plat_FloatTime();
+ for(int sim=0;sim<1000;sim++)
+ lots_o_particles.Simulate( 0.01 );
+ printf("p/s=%f\n",(100.0*1000000)/(Plat_FloatTime()-start));
+#endif
+
+}