Universal Mac version now available

Universal Mac version now available

So I got an ARM based Mac this weekend and got it compiling to create a universal app for ARM and Intel base Macs. I still have my old Intel based Macbook to test with and it seems to work fine on that too. Doing the ARM version meant that I had to map all of the Intel intrinsics to the ARM equivalents which was reasonably straight forward. A few work arounds were needed here and there and in other situations it was actually easier to do with the ARM intrinsics. Having the library also build for ARM processors is Read more


Alpha version for Intel based Macs released

I’ve just uploaded a new version for Intel based Apple Macs. Unfortunately I have a MacBook Pro from 2015 which is intel based, and whilst I can cross compile to ARM from there there’s no way for me to properly test without a newer ARM based Mac. I would need to test as the code uses a lot of Intel intrinsics for SIMD instructions that don’t all map 1 to 1 to the ARM equivalents. I have already made a start on this but will wait until I get my hands on an ARM based Mac before continuing. I’ll probably Read more


about popup window timelinefx

Improved usability update 2 – In Editor Documentation

I just uploaded the latest alpha which builds on the last version with a brand new help section! This help is entirely in the editor and searchable by key word. It even works like a simple browser where you can go back and forward to previous sections you were looking at and it also has links that link either to other help files in the editor or externally too. I also added an About pop up that opens up on start up. It’s pretty basic for now but I can improve it at a later date. Both the about and Read more


Improved usability update 1

This is the first update where I’m trying to improve the usability of the editor. In this update I’ve completely reworked effect and emitter properties and attributes. Before there were 2 separate lists with properties where you adjust things like the draw order, the emission type, spawn options etc. And attributes where you would change how the particles behave overtime. I’ve combined these all into the same tab and made them all searchable by keyword. I have also rearranged the attributes so that they’re grouped together more logically. As you can see in the screen shot, instead of all the Read more


Compute shader prerecorded particle playback

Bounding boxes, more stability and even compiling on Mac now.

Happy New Year! Alpha version 24 has now been released. It has been a very busy period for me over the holiday, and a real time of learning new things.   Bounding Boxes for Sprite Data Something I wanted to accomplish was calculating the bounding boxes for each frame of a sprite data animation. This is where you can pre-record your effects and simply use a compute shader to interpolate the compressed data to playback the effects. It is a very fast way to use effects, as almost everything happens on the GPU. All the CPU has to do is Read more


Some Bug Fixes and Library Refactor

I just completed a refactor of the TimelineFX library so it’s further along in terms of stability of code, ie., less chance of me making a lot of breaking changes. I mentioned in the last post what I’d be working on but here’s what I did: Implemented my memory allocator for much cleaner memory management. A large memory pool is now allocated on initialisation and then sub allocated from. If the pool runs out of space then a new pool is automatically added. This of course can be overridden if anyone wants to use their own allocator instead. I did Read more


Renderer Rewrite Done and Alpha 22 released!

New alpha version released powered by a new renderer! So last blog post I mentioned that I wanted to refactor the renderer I use and also write a memory allocator and both those things are now done! It was a lot of work the last 3 months but I’m really pleased with the way things are going.   Zest Pocket Render So I did a complete rewrite of the renderer (based on the previous one) and also re-wrote it in c which I really enjoy using. Zest is a very minimal but flexible renderer which currently focuses on rendering sprites Read more


New Sprite Data export and more optimisations

Wow, 2 months went by already! Loads of work has been since then though, as mentioned in the last update I wanted to add sprite data exporting so that you could playback effects buy just uploading the sprite data to the GPU and interpolating between frames for smooth playback. And this is exactly what I’ve managed to do and it works extremely well! This is just an initial proof of concept but now the basics are done and now I know it will work well I can continue to improve and add features to it. Here’s how it works: Sprite Read more


More Optimising – SIMD Particle Updates. Alpha 20

Just uploaded a new Alpha version of the editor, which doesn’t have too many new features but does have a huge amount of new stuff going on under the hood. Fully implemented SIMD for updating particles I’ve spent a long time thinking about how I would go about doing this ever since taking on the rewrite of TimelineFX from the beginning. Being relatively new to C/C++ and SIMD in general, it has been a step-by-step process to get to this point. In the last blog post I made, I talked about how I made things multithreaded, and now I’ve added Read more


Optimisations and stability

A long overdue post, but rest assured, lots of work has been done over the last couple of months! Optimizations of the TimelineFX Library Firstly, for most of December, I did a big refactor of the TimelineFX Library, not just to optimize it but also to open the door for a lot more optimizations in the future. This had two main steps: I transitioned all the data for updating effects, emitters, and particles to “structs of arrays”. Without going into too much technical detail, this makes it a lot easier to parallelize updating the particles. The problem with storing all Read more