In the end I refrained from applying most of the changes I had intended. I am aware that `BufferProvider` is still quite a massive structure, yet with the implementation refactorings done thus far, it seems to be reasonably clear and self-contained now. It would be possible to totally overthrow the grown structure and expose only the two handles (BuffDescr and BuffHandle), together with a factory function, but I cannot see how this would help to make the code clearer and more approachable. Maybe it would make the usage more obvious from the client's perspective — yet, to be honest, there are not ''that much clients'' to justify such a move. Furthermore, the implementation is far from finished: for both of the back-end lines, a fully production-strength implementation must be created, that is able to operate in a highly concurrent environment; very likely some lock-free messaging and hand-over between threads will become necessary, adding to the complexity. Thus it seems better to note the ''design critique'', but to postpone any further refactorings to a point where we can watch a fully developed Render Engine under production load.
11 MiB
11 MiB
| The file is too large to be shown. |