ImFusion SDK 4.3
ImFusion::GL Namespace Reference

Low-level OpenGL Wrappers. More...

Detailed Description

Low-level OpenGL Wrappers.

See also
ImFusionGL

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)
 
Search Tab / S to search, Esc to close