Overview of the PowerVR Framework

The PowerVR Framework, also referred to as the Framework, is a collection of libraries that are intended to serve as the basis for a graphics application. It is made up of code files, header files, and several platforms’ project files that group those into modules, also referred to as libraries.

The PowerVR Framework aims to:

  • Allow development using low-level graphics APIs such as OpenGL ES and Vulkan.

  • Promote best practices using these APIs.

  • Show and encourage optimal API use-patterns, tips and tricks for writing multi-platform code, while also ensuring optimal behaviour for the PowerVR platforms.

  • Demonstrate variations of rendering techniques that function optimally on PowerVR platforms.

The purpose of the PowerVR Framework is to find the perfect balance between raw code and engine code. In other words:

  • It is fast and easy to get going with - for example, default parameters on all Vulkan objects.

  • For Vulkan, it thinly wraps the raw objects to make things easier and more convenient. Whilst the raw Vulkan must provide a C interface, the Framework through PVRVk provides a C++ interface. This allows reference counting and STL objects, and makes coding much easier and shorter.

  • It is obvious what the code does to someone used to the raw APIs from looking at any example.

  • Any differences from the raw APIs such as Vulkan lifecycle management are documented.

Note: This document has been written assuming the reader has a general familiarity with the 3D graphics programming pipeline, and some knowledge of OpenGL ES (version 2 onwards) and/or Vulkan.