![]() |
ImFusion SDK 4.3
|
Low-level OpenGL Wrappers. More...
Low-level OpenGL Wrappers.
Namespaces | |
namespace | Debug |
The GL::Debug namespace contains functions and class to help with debugging OpenGL calls. | |
Classes | |
class | AbstractInclude |
Base class for abstract GLSL includes. More... | |
class | AtomicCounterBuffer |
Specialization of Buffer for OpenGL Atomic Counter Objects. More... | |
class | Blending |
Helper class to configure the OpenGL blending stage. More... | |
class | Buffer |
Wrapper class for OpenGL Buffer Objects. More... | |
class | Context |
Base class for low-level OpenGL context handling within the ImFusion SDK. More... | |
class | ContextGLX |
OpenGL context using GLX as backend. More... | |
class | ContextManager |
Singleton class to manage access to OpenGL contexts. More... | |
class | ContextWindows |
OpenGL context using WGL as backend. More... | |
class | FixedFunctionPipeline |
Convenience class for a shader implementing a basic fixed function rendering pipeline. More... | |
class | Framebuffer |
Wrapper class for OpenGL Framebuffer Objects (FBO). More... | |
class | FullscreenSquare |
Helper class to easily render a full-screen quad. More... | |
class | ImageProgram |
Convenience class to execute a GLSL fragment shader on an image or volume. More... | |
class | IndexBuffer |
Specialization of Buffer to store vertex index data (GL_ELEMENT_ARRAY_BUFFER ). More... | |
class | InstanceManager |
Concrete CRTP class for context-aware caching of OpenGL object instances. More... | |
class | InstanceManagerBase |
Base class for context-aware caching of OpenGL object instances. More... | |
class | InternalFormat |
Describes an internal texture format that you can request from OpenGL. More... | |
class | LineRenderer |
Convenience class for a shader implementing thick and stippled line rendering. More... | |
struct | MemoryInfo |
Structure storing information about the available video memory as reported by OpenGL. More... | |
class | MultiAbstractInclude |
Concrete type for an instance of a Multi-AbstractInclude. More... | |
class | MultiAbstractIncludeBase |
Non-templated base class of MultiIncludable to implement polymorphic interface. More... | |
class | MultiIncludable |
Multi-AbstractIncludes allow for using multiple instances of the same AbstractInclude type in one shader. More... | |
class | ObjectPicking |
Helper class to consolidate functionality for implementing object picking of rendered geometry. More... | |
class | OffscreenRenderHelper |
Helper class to perform deferred off-screen rendering. More... | |
class | OpenGLNotFoundException |
Specialization of std::runtime_error indicating that OpenGL was not able to initialize correctly. More... | |
class | OrderIndependentTransparency |
Helper class to consolidate functionality for implementing order-independent transparency of rendered geometry. More... | |
struct | PlatformInfo |
Structure storing information on the GPU/driver/OpenGL context configuration. More... | |
class | Program |
OpenGL GLSL program with a fragment and optional vertex and geometry shader. More... | |
class | ProgramCache |
Helper class to manage instances of the same base shader with different abstract includes and/or defines. More... | |
class | ProgramDecorator |
Interface to apply custom arguments to a shader program. More... | |
class | Sampler |
Sets texture sampling parameters for a specific texture unit. More... | |
class | ShaderStorageBuffer |
Specialization of Buffer for OpenGL Shader Storage Buffer Object. More... | |
class | StateGuard |
Guard to easily save and restore critical (modern) OpenGL state. More... | |
class | SyncObject |
Helper class to synchronize between multiple OpenGL contexts or a context and the application. More... | |
class | TextRenderer |
Utility class to perform text rendering with OpenGL. More... | |
class | Texture |
Wrapper of an OpenGL Texture to store image data on the GPU. More... | |
class | VertexArrayObject |
Wrapper around an OpenGL Vertex Array Object (VAO) to define the vertex attribute specification for rendering. More... | |
class | VertexBuffer |
Specialization of Buffer to store vertex array data. More... | |
struct | Viewport |
Structure describing an OpenGL viewport. More... | |
class | ViewState |
Encapsulates the OpenGL view state defined by the viewport, a projection matrix and a model-view matrix. More... | |
Enumerations | |
enum class | ShaderTextReplacement { ExactMatch = 1 << 0 , AllUppercase = 1 << 1 , AllLowercase = 1 << 2 } |
Bitfield enum describing how to perform text replacement in a shader when using the MultiIncludable interface. More... | |
enum class | PixelFormat : uint32_t { Red = 0x1903 , RG = 0x8227 , RGB = 0x1907 , RGBA = 0x1908 , RedInteger = 0x8D94 , RGInteger = 0x8228 , RGBInteger = 0x8D98 , RGBAInteger = 0x8D99 , DepthComponent = 0x1902 , DepthStencil = 0x84F9 , BGRA = 0x80E1 , BGRAInteger = 0x8D9B , StencilIndex = 0x1901 } |
Describes the host pixel format during OpenGL texture upload/download. More... | |
enum class | PixelType : uint32_t { Byte = 0x1400 , UByte = 0x1401 , Short = 0x1402 , UShort = 0x1403 , Int = 0x1404 , UInt = 0x1405 , Float = 0x1406 , HFloat = 0x140B , Double = 0x140A } |
Describes the host pixel type during OpenGL texture upload/download. More... | |
enum class | Primitive : uint32_t { Points = 0x0000 , Lines = 0x0001 , LineLoop = 0x0002 , LineStrip = 0x0003 , Triangles = 0x0004 , TriangleStrip = 0x0005 , TriangleFan = 0x0006 , LinesAdjacency = 0x000A , LineStripAdjacency = 0x000B , TrianglesAdjacency = 0x000C , TriangleStripAdjacency = 0x000D } |
Primitive type to render, to be used with GL::VertexBuffer::draw() More... | |
enum class | Barrier : uint32_t { VertexAttribArray = 0x00000001 , ElementArray = 0x00000002 , Uniform = 0x00000004 , TextureFetch = 0x00000008 , ShaderImageAccess = 0x00000020 , Command = 0x00000040 , PixelBuffer = 0x00000080 , TextureUpdate = 0x00000100 , BufferUpdate = 0x00000200 , Framebuffer = 0x00000400 , TransformFeedback = 0x00000800 , AtomicCounter = 0x00001000 , ShaderStorage = 0x00002000 , ClientMappedBuffer = 0x00004000 , QueryBuffer = 0x00008000 , All = 0xFFFFFFFF } |
Bitflag enum to describe how you intend to use the data after issuing the memoryBarrier() command. More... | |
enum class | GraphicsResetStatus { NoError = 0 , GuiltyContextReset = 0x8253 , InnocentContextReset = 0x8254 , UnknownContextReset = 0x8255 } |
Return value of GL::getGraphicsResetStatus() More... | |
Functions | |
IMFUSION_GL_API void | init (std::unique_ptr< Context >=nullptr) |
Initializes the OpenGL backend. | |
IMFUSION_GL_API void | deinit () |
Properly deinitializes all OpenGL resources. | |
IMFUSION_GL_API bool | getBool (uint32_t param) |
Convenience wrapper for glGetBoolean_v() that directly returns the result. | |
IMFUSION_GL_API int32_t | getInt (uint32_t param) |
Convenience wrapper for glGetInteger_v() that directly returns the result. | |
IMFUSION_GL_API int32_t | getIntIndexed (uint32_t param, uint32_t index) |
Convenience wrapper for indexed glGetIntegeri_v() that directly returns the result. | |
IMFUSION_GL_API float | getFloat (uint32_t param) |
Convenience wrapper for glGetFloat_v() that directly returns the result. | |
IMFUSION_GL_API std::string | getString (uint32_t param) |
Convenience wrapper for glGetString() that directly returns the result. | |
IMFUSION_GL_API GraphicsResetStatus | getGraphicsResetStatus () |
Checks if the current context has been lost due to software or hardware issues. | |
IMFUSION_GL_API void | clearColorBuffer (const vec4f &color) |
Clears all color buffers attached to the current framebuffer by calling glClearColor(color) and glClear(GL_COLOR_BUFFER_BIT); . | |
IMFUSION_GL_API void | clearDepthBuffer (double value) |
Clears the depth buffer attached to the current framebuffer by calling glClearDepth(value) and glClear(GL_DEPTH_BUFFER_BIT); . | |
IMFUSION_GL_API void | memoryBarrier (Flags< Barrier > barriers) |
Inserts a barrier into the OpenGL command stream to order memory transactions. | |
IMFUSION_GL_API void | flush () |
Calls glFlush() to block until all OpenGL commands have been transferred to the GPU. | |
IMFUSION_GL_API void | finish () |
Calls glFinish() to block until all OpenGL execution is complete. | |
IMFUSION_GL_API mat4 | createOrtho (double left, double right, double bottom, double top, double pnear, double pfar) |
Generates an orthographic projection matrix, the same as glOrtho() would do. | |
IMFUSION_GL_API mat4 | createOrtho2d (int width, int height) |
Generates a pixel-perfect 2D orthographic projection matrix for the given viewport size. | |
IMFUSION_GL_API mat4 | createPerspective (double fov, double aspect, double pnear, double pfar) |
Generates an perspective projection matrix, the same as glPerspective() would do. | |
IMFUSION_GL_API PlatformInfo | platformInfo () |
Returns information about the currently active OpenGL platform. | |
IMFUSION_GL_API MemoryInfo | memoryInfo () |
Returns information about the currently available and total GPU memory. | |
IMFUSION_GL_API Utils::Version | versionInfo () |
Returns the available OpenGL version of the current context. | |
IMFUSION_GL_API void | setDpiScale (double dpiScale) |
Sets the global DPI scaling factor that should be used by DPI-sensitive OpenGL renderings. | |
IMFUSION_GL_API double | dpiScale () |
Queries the global DPI scaling factor that should be used by DPI-sensitive OpenGL renderings. | |
Framebuffer::Attachment | operator+ (Framebuffer::Attachment lhs, int rhs) |
bool | operator== (InternalFormat lhs, InternalFormat rhs) |
bool | operator!= (InternalFormat lhs, InternalFormat rhs) |