Rendering without PVRUtils#

The Framework is modular, and libraries are often used separately from the others.

There are many combinations which can be used, but here are a few of the most common choices:

  • Make use of everything – that’s the official recommendation. Derive the application from pvr::Shell, use PVRUtils and PVRVk for rendering, load and use the assets with PVRAssets, and use PVRUtils for rendering 2D elements and multithreading. Most PowerVR SDK examples use this approach, making the best use from all the power of the PowerVR Framework.

  • Forgo using top-level libraries such as PVRUtils or PVRCamera, because a different solution is needed, or the functionality is not required. Be warned that the boilerplate may become unbearable while the overhead is minimal.

  • Use raw Vulkan, without PVRVk. This is not recommended. It is better to use PVRVk or another Vulkan library to help. Check out the Vulkan IntroducingPVRShell or HelloAPI examples to get a taste of how much code is needed to get even a triangle on screen. Then check out any other example to see how much lifetime management, sensible defaults, and modern language bindings can help. These gains are practically for free.

  • Forgo using even PVRAssets. In this case, the only thing that is being used from the framework is PVRShell. In this scenario, another scene graph library will need to be used or written, and the only thing used will be the platform abstraction of PVRShell. Support classes will need to be written for everything. This is done in IntroducingPVRShell.