filmov
tv
C++Now 2018: Tony Wasserka “Generative Programming in Action: Emulating the 3DS”
Показать описание
—
—
Console emulation needs to stem the difficult balance between optimizing code for stable frame rates and maintaining the complex logic required to emulate the given hardware - any subtle bug in this system easily manifests in a user-visible glitch. How can modern C++ help?
Using the toolbox of generative programming, we take a look at the interprocess communication subsystem of the 3DS and see how far variadic templates, function reflection, and some metaprogramming will get us in terms of bridging the gap between performance, maintainability, and correctness.
Based on this example I will introduce the general idea of generators and declarative interfaces, and how we can use them in serialization-like problems to provide reusable and customizable functionality with a uniform API that minimizes boilerplate code.
—
Tony Wasserka
Freelance Software Developer
Berlin, Germany
Low-level anything: Tony is a long-term C++ enthusiast who has worked on the console emulator projects Dolphin (GameCube/Wii), PPSSPP (PSP), and Citra (3DS) since 2010. More recently, he has worked on Vulkan graphics drivers for PowerVR graphics processors. His main interest is exploring C++'s zero-cost abstraction capabilities and applying them to create better software for resource-constrained environments.
Currently, Tony is available for software development contracts in Berlin, Germany.
—
---
*--*
---
—
Console emulation needs to stem the difficult balance between optimizing code for stable frame rates and maintaining the complex logic required to emulate the given hardware - any subtle bug in this system easily manifests in a user-visible glitch. How can modern C++ help?
Using the toolbox of generative programming, we take a look at the interprocess communication subsystem of the 3DS and see how far variadic templates, function reflection, and some metaprogramming will get us in terms of bridging the gap between performance, maintainability, and correctness.
Based on this example I will introduce the general idea of generators and declarative interfaces, and how we can use them in serialization-like problems to provide reusable and customizable functionality with a uniform API that minimizes boilerplate code.
—
Tony Wasserka
Freelance Software Developer
Berlin, Germany
Low-level anything: Tony is a long-term C++ enthusiast who has worked on the console emulator projects Dolphin (GameCube/Wii), PPSSPP (PSP), and Citra (3DS) since 2010. More recently, he has worked on Vulkan graphics drivers for PowerVR graphics processors. His main interest is exploring C++'s zero-cost abstraction capabilities and applying them to create better software for resource-constrained environments.
Currently, Tony is available for software development contracts in Berlin, Germany.
—
---
*--*
---
Комментарии