Uranium
Application Framework
|
Convenience methods for dealing with OpenGL. More...
Classes | |
class | Vendor |
Different OpenGL chipset vendors. More... | |
Public Member Functions | |
def | __init__ (self) |
bool | hasFrameBufferObjects (self) |
Check if the current OpenGL implementation supports FrameBuffer Objects. More... | |
def | getOpenGLVersion (self) |
Get the current OpenGL version. More... | |
def | getGPUVendorName (self) |
Get the current GPU vendor name. More... | |
def | getGPUVendor (self) |
Get the current GPU vendor. More... | |
def | getGPUType (self) |
Get a string describing the current GPU type. More... | |
def | getBindingsObject (self) |
Get the OpenGL bindings object. More... | |
def | createFrameBufferObject (self, width, height) |
Create a FrameBuffer Object. More... | |
def | createTexture (self) |
Create a Texture Object. More... | |
ShaderProgram | createShaderProgram (self, str file_name) |
Create a ShaderProgram Object. More... | |
QOpenGLBuffer | createVertexBuffer (self, "MeshData" mesh, **kwargs) |
Create a Vertex buffer for a mesh. More... | |
def | createIndexBuffer (self, mesh, **kwargs) |
Create an index buffer for a mesh. More... | |
"OpenGL" | getInstance (cls) |
Get the singleton instance. More... | |
def | setInstance (cls, instance) |
Set the singleton instance. More... | |
Static Public Attributes | |
string | VertexBufferProperty = "__vertex_buffer" |
string | IndexBufferProperty = "__index_buffer" |
Convenience methods for dealing with OpenGL.
This class simplifies dealing with OpenGL and different Python OpenGL bindings. It mostly describes an interface that should be implemented for dealing with basic OpenGL functionality using these different OpenGL bindings. Additionally, it provides singleton handling. The implementation-defined subclass must be set as singleton instance as soon as possible so that any calls to getInstance() return a proper object.
def UM.View.GL.OpenGL.OpenGL.createFrameBufferObject | ( | self, | |
width, | |||
height | |||
) |
Create a FrameBuffer Object.
This should return an implementation-specifc FrameBufferObject subclass.
def UM.View.GL.OpenGL.OpenGL.createIndexBuffer | ( | self, | |
mesh, | |||
** | kwargs | ||
) |
Create an index buffer for a mesh.
This will create an index buffer object that is filled with the index data of the mesh.
By default, the associated index buffer should be cached using a custom property on the mesh. This should use the IndexBufferProperty property name.
mesh | The mesh to create an index buffer for. |
kwargs | Keyword arguments. Possible values:
|
ShaderProgram UM.View.GL.OpenGL.OpenGL.createShaderProgram | ( | self, | |
str | file_name | ||
) |
Create a ShaderProgram Object.
This should return an implementation-specifc ShaderProgram subclass.
def UM.View.GL.OpenGL.OpenGL.createTexture | ( | self | ) |
Create a Texture Object.
This should return an implementation-specifc Texture subclass.
QOpenGLBuffer UM.View.GL.OpenGL.OpenGL.createVertexBuffer | ( | self, | |
"MeshData" | mesh, | ||
** | kwargs | ||
) |
Create a Vertex buffer for a mesh.
This will create a vertex buffer object that is filled with the vertex data of the mesh.
By default, the associated vertex buffer should be cached using a custom property on the mesh. This should use the VertexBufferProperty property name.
mesh | The mesh to create a vertex buffer for. |
kwargs | Keyword arguments. Possible values:
|
def UM.View.GL.OpenGL.OpenGL.getBindingsObject | ( | self | ) |
def UM.View.GL.OpenGL.OpenGL.getGPUType | ( | self | ) |
Get a string describing the current GPU type.
This effectively should return the OpenGL renderer string.
def UM.View.GL.OpenGL.OpenGL.getGPUVendor | ( | self | ) |
Get the current GPU vendor.
def UM.View.GL.OpenGL.OpenGL.getGPUVendorName | ( | self | ) |
Get the current GPU vendor name.
"OpenGL" UM.View.GL.OpenGL.OpenGL.getInstance | ( | cls | ) |
Get the singleton instance.
def UM.View.GL.OpenGL.OpenGL.getOpenGLVersion | ( | self | ) |
bool UM.View.GL.OpenGL.OpenGL.hasFrameBufferObjects | ( | self | ) |
Check if the current OpenGL implementation supports FrameBuffer Objects.
def UM.View.GL.OpenGL.OpenGL.setInstance | ( | cls, | |
instance | |||
) |
Set the singleton instance.
This is mostly meant to simplify the singleton logic and should be called by the OpenGL implementation as soon as possible.