An overview of the new PowerVR Framework

Share on linkedin
Share on twitter
Share on facebook
Share on reddit
Share on digg
Share on email

It is 2016, and a new year brings new developments in the field of APIs! In preparation for these, we have created the PowerVR Framework. But what exactly is it?

Simply put, the Framework is a cross-platform and cross-API framework which is fully optimised for PowerVR. It supports PowerVR assets and shows you how to use a variety of PowerVR techniques such as Pixel Local Storage, and also can work as scaffolding around which to build your own render engine. It comes with the MIT industry-standard open source license, which lets you use not only our Framework but also our latest PowerVR Graphics SDK freely for commercial and non-commercial purposes.

The premise behind our Framework is that explicit APIs (such as Vulkan) are becoming more and more widespread – and whilst they are very powerful tools, they are also very verbose and difficult to get to grips with. As a result, intermediate layers have become more important, since the APIs themselves offer less guidance to developers.

Therefore, the PowerVR Framework was designed with the goal of making the developer’s job easier, by offering better support for explicit APIs through the addition of a facilitation layer enabling cross-API development.

The PowerVR Framework modules

The Framework consists of several modules compiled as static libraries and divided by functionality. These modules are:

  • PVRCore
  • PVRAssets
  • PVRShell
  • PVRAPI
  • PVRUIRenderer
PVRCore

PVRCore is the supporting code that is used by the rest of the Framework. It features not only interfaces that bind other modules together (e.g. GraphicsContext.h, OSManager.h), but also utility classes and specialized data structures used by the Framework (RingBuffer.h, ListOfInterfaces.h).

This module also provides the main Smart Pointer class used by the Framework (RefCounted.h), the data streams (e.g. FileStream.h, MemoryStream.h), as well as logging and error reporting (Log.h). It also deals with any required special math (bounding boxes, shadow volumes).

PVRAssets

PVRAssets is one of the most important modules within the PowerVR Framework. It contains classes and functions to work with objects like Model, Mesh, Texture, Effect, Animation, Camera and others. It provides built-in support for handling all PowerVR deployment formats (PVR textures, POD models and PFX effects), usually with a single line of code. PVRAssets also works to provide you with flexible classes that you can dynamically adapt for your own use.

PVRShell

PVRShell is the foundation on top of which the SDK applications are written. This module abstracts the display system and contains, among others, the application’s entry point, command line arguments, events, main loop, etc., abstracting the native platform. PVRShell effectively makes it easier to develop your application on Windows, Linux and OS X desktop OS’s with emulation and deploy to iOS, Android and Linux devices.

PVRAPI

PVRAPI leverages PVRAssets and PVRShell in order to abstract the graphics API. PVRAPI is very ambitious in that it provides a graphics API abstraction layer inspired by modern APIs such as Vulkan and Mantle, while also supporting existing APIs such as OpenGL ES. The 4.0 SDK includes an OpenGL ES back-end that utilises OpenGL ES 2.0, 3.0 & 3.1 features. Future SDK releases will include new back-ends. Combined with PVRShell (which provides a common codebase across platforms), PVRAPI supports the cross-platform, cross-API nature of the Framework.

PVRAPI - PowerVR frameworkGnomes!

PVRUIRenderer

PVRUIRenderer makes use of PVRAPI to provide a simple, platform- and API-agnostic library for rendering 2D elements in a 3D environment. Specifically, PVRUIRenderer was written with text and sprites in mind.

PVRCamera

PVRCamera provides an easy-to-use interface between the platform’s hardware camera system and the rest of the Framework.

PVRCamera - texture streaming

The latest PowerVR Tools and SDK installers (Windows, OS X and Linux) can be downloaded from here. For a full list of the latest features and fixes, please check out our comprehensive release notes page.

Remember to also follow us on Twitter (@ImaginationTech, @PowerVRInsider) for  the latest news and announcements from the PowerVR Insider team.

Benjamin Anuworakarn

Benjamin Anuworakarn

Ben Anuworakarn is a technical author in the PowerVR Developer Technology team and has a computer science engineering background. Primarily responsible for producing and maintaining both internal and external documentation, he has a knack for coming up with solutions to problems that don't exist yet. You can find him either clacking away at his keyboard or shuffling trading cards every few hours.

Please leave a comment below

Comment policy: We love comments and appreciate the time that readers spend to share ideas and give feedback. However, all comments are manually moderated and those deemed to be spam or solely promotional will be deleted. We respect your privacy and will not publish your personal details.

Blog Contact

If you have any enquiries regarding any of our blog posts, please contact:

United Kingdom

[email protected]
Tel: +44 (0)1923 260 511

Search by Tag

Search by Author

Related blog articles

Beaglebone Black

Fun with PowerVR and the BeagleBone Black: Low-Cost Development Made Easy

Development boards are cool and the BeagleBone® Black (BBB) is one of the more interesting ones around. This widely available tiny board costs around £35 and will boot Linux is only 10 seconds so anyone interested in development can get stuck in quickly. The Introduction to Mobile Graphics course has been recently revamped for 2020 for the Imagination’s University Programme and the widely available, low-cost BBB is an ideal platform for student teaching and exercises based on OpenGL® ES2.0, instead of an expensive standard PC.

Read More »
android background

The Android Invasion: Imagination GPU IP buddies up with Google-powered devices

Google Android continues to have the lion share of the mobile market, powering around 75% of all smartphones and tablets, making it the most used operating system in the world. Imagination’s PowerVR architecture-based IP and the Android OS are bedfellows, with a host of devices based on Android coming to market all the time. Here we list a few that have appeared in Q4 2020.

Read More »
pvrtextoolgui sunrise 2

PowerVR SDK and Tools 2020 Release 2 now available

We all know that 2020 has been quite a challenging year, but we hope you’re doing well. Over the last few months, here in DevTec, we’ve been working hard to get this new release out for you and the time has now come for our second release of the PowerVR SDK and Tools of 2020. So, what’s new with this latest release? Let’s take a quick look at a few of the major changes.

Read More »

Connect

Sign up to receive the latest news and product updates from Imagination straight to your inbox.