Two things:
- The overhead is not generally significant for large datasets because large arrays require a single call; the cost of the indirection is amortized over a lot of array values.
- With trame, you can use remote (server-side) rendering which is all C++; the resulting rendered image is transferred to the client (which in the case of a desktop app is really just a memory reference). Transferring images at interactive rates – even across the internet – is generally not a problem these days as there are multiple capabilities to deal with it (image compression, image scaling). The only caveat is for situations requiring extremely low latency like videogames or real-time simulations.