diff --git a/README.md b/README.md index d53e67f..607fb84 100644 --- a/README.md +++ b/README.md @@ -9,3 +9,11 @@ cmake assumes icpx and the [Intel OneAPI](https://www.intel.com/content/www/us/e You'll need these even if you don't compile with cmake until SYCL gets native LLVM support. polypartiCL is licensed with the 3-clause BSD license. + +## Todo +- Rewrite & optimize simulation code, store all points/velocites in one array and submit once + - Consider modelling each particle and all its relevant data points individually + - Submit each relevant data point by pointer offset, size of struct is irrelevant as long as it is constant, only necessary data will be submitted to kernel +- Add linear beams +- Add environment objects / multiple rooms per screen +- Add timed events diff --git a/particles/load.prtc b/particles/load.prtc index 3af719f..d664314 100644 --- a/particles/load.prtc +++ b/particles/load.prtc @@ -2,6 +2,6 @@ Center Delay count velocity x y theta_i theta_f color start end decayrate =================================================== s -18000 79 0.5 0.5 0 360 cyan 1 0 0 -18000 79 0.5 0.5 0 360 magenta 2.075 0 0 -18000 79 0.5 0.5 0 360 yellow 4.931 0 0 +16000 79 0.5 0.5 0 360 cyan 1 0 0 +16000 79 0.5 0.5 0 360 magenta 2.075 0 0 +16000 79 0.5 0.5 0 360 yellow 4.931 0 0 diff --git a/src/main.cpp b/src/main.cpp index a5a2dbd..bb229f5 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -19,13 +19,14 @@ int main(int argc, char* argv[]) { float rotSpeed = -0.11f; float rotAngle = 0.0f; float d_interval_pct = 0.00001f; + float stopAngle = 0.0f; bool rotate = false; bool drawLines = true; bool drawFPS = false; bool useShader = true; bool paused = false; - bool gentleTurn = false; - bool turning = false; + //bool gentleTurn = false; + //bool turning = false; // bool counterclockwise = false; // @@ -51,6 +52,7 @@ int main(int argc, char* argv[]) { for (const auto& item : sim.getCorners()) { lines.push_back({item[0], item[1]}); } + raylib::Window window(screenWidth, screenHeight, "polypartiCL"); //raylib::Button::key R(KEY_R); diff --git a/src/polypartiCL.cpp b/src/polypartiCL.cpp index ec00a2c..7e0ea95 100644 --- a/src/polypartiCL.cpp +++ b/src/polypartiCL.cpp @@ -179,7 +179,6 @@ struct Polyparti::ParticleField::ColCode { }); q.wait(); q.submit([&](handler& h) { h.memcpy(v_ptr, &velocities[0], len * 2 * sizeof(float)); } ); - q.wait(); q.submit([&](handler& h) { h.memcpy(t_ptr, &t, sizeof(float)); } ); q.wait(); @@ -190,7 +189,6 @@ struct Polyparti::ParticleField::ColCode { q.wait(); q.submit([&](handler& h) { h.memcpy(&positions[0], p_ptr, len * 2 * sizeof(float)); }); - q.wait(); q.submit([&](handler& h) { h.memcpy(&velocities[0], v_ptr, len * 2 * sizeof(float)); }); q.wait();