I am happy to announce that TextureMind Framework has recently been completed and reached version 1.0. The framework can now be used to create advanced professional applications and continues to be actively used for TMD (TextureMind Desktop), the development of which further contributes to the growth of the framework itself. The framework is now capable of creating graphical contexts with Vulkan devices or software rendering, it has a resources management system, a complete 2D and 3D engine, an engine for audio, a custom GUI system and cross-platform architecture. At this stage, the framework is mature enough to be considered as completed and I flagged the current version to 1.0. Finally, a project I've been developing in my spare time for a few decades has been completed. The framework will continue to be actively developed from now on, to implement new features and improve the applications that make use of it.
Since the last update in February, a lot of work has been done. The system window has been improved, system clipboard management has been implemented, and several bugs have been fixed. A module for managing Direct3D 11 has been introduced for the first time: although a complete implementation of the rendering device has not yet been completed, advanced features for screen capture with desktop duplication are now available. It is now possible to share textures between different devices, such as between Direct3D 11 and Vulkan, with the ability to update a texture's dirty regions (useful for very large textures) and copy the contents of one texture to another via the GPU, without passing through system memory.
Two plugins have been written to support advanced features on NVIDIA and AMD graphics cards. Specifically, video encoders and decoders have been implemented with support for the h.264 and av1 formats, where accessible, with the possibility of encoding from system memory or directly from the GPU's shared memory, to achieve high performance. Several improvements have been implemented in the graphical user interface, in event management, window position, display scaling and mouse control, and several bugs on Linux side have been fixed. It is now possible to manage windows on the same thread or on different threads simultaneously, maintaining full cross-platform compatibility with the same programming interface. Finally, the ability to manage single and multiple monitors on Windows and Linux is now available, with plugins for managing physical and virtual monitors on NVIDIA and AMD cards.