Regal for OpenGLdevelopment Nigel T. StewartNVIDIA Corporation August 4th, 2012
Regal GoalsOpen SourceThere is nothing behind the curtain.You can see what Regal is doing and change it if needed.PortabilityConsistent OpenGL API that runs on all major platforms:Windows, Linux, Mac, iOS, and AndroidCompatibleImmediate mode, fixed function, GL_QUADSwork everywhere, emulated as necessary.Modern OpenGL APIDirect State Access (DSA) and Vertex Array Object (VAO),emulated as necessary.
Ease of UseSet breakpoints on OpenGL functions.Step into the code.Inspect state.EfficiencyIf it cannot be implemented efficiently in Regal, it is not universallysupported.For example, tessellation support requires tessellation hardware.
Regal is a Work-In-ProgressEmulation for OpenGL ES and Desktop GL Core contexts. Fixed-function lighting using GLSL shaders. Direct-state-access emulation. Immediate mode emulationLogging See all the application calls into Regal See all the driver calls from Regal into OpenGL GL_EXT_debug_marker emulation
DebuggingOptional error checking layer. (glGetError)Access configuration, logs and GL state via HTTP.Other ideas (unimplemented as of now) Debugging checks Performance problems Statistics gathering – API coverage, time spent. Frame capture GL state capture and comparison.
Imagined Uses for Regal Using Regal as a portability layer for developing games for Windows, Linux, Android, Mac and/or iOS. As a way of running OpenGL 1.x or 2.x code in a core OpenGL context. (Apple Mac or AMD GPU) As a way of porting Linux OpenGL games to mobile devices. As a common infrastructure for OpenGL development tools.
More InformationSource Code on github:https://github.com/p3/regalopengl.org forum thread:http://www.opengl.org/discussion_boards/showthread.php/178678-Introducing-Regal?p=1240974Email:firstname.lastname@example.org
A particular slide catching your eye?
Clipping is a handy way to collect important slides you want to go back to later.