ImFusion C++ SDK 4.4.0
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  Blending
 Helper class to configure the OpenGL blending stage. More...
class  Buffer
 Wrapper class for OpenGL Buffer Objects. More...
class  OpenGLNotFoundException
 Specialization of std::runtime_error indicating that OpenGL was not able to initialize correctly. More...
class  Context
 Base class for low-level OpenGL context handling within the ImFusion SDK. 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  InstanceManagerBase
 Base class for context-aware caching of OpenGL object instances. More...
class  InstanceManager
 Concrete CRTP 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...
class  MultiAbstractInclude
 Concrete type for an instance of a Multi-AbstractInclude. More...
class  MultiIncludable
 Multi-AbstractIncludes allow for using multiple instances of the same AbstractInclude type in one shader. More...
class  MultiAbstractIncludeBase
 Non-templated base class of MultiIncludable to implement polymorphic interface. 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  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  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...
struct  PlatformInfo
 Structure storing information on the GPU/driver/OpenGL context configuration. More...
struct  MemoryInfo
 Structure storing information about the available video memory as reported by OpenGL. More...
struct  Viewport
 Structure describing an OpenGL viewport. More...
class  VertexBuffer
 Specialization of Buffer to store vertex array data. More...
class  VertexArrayObject
 Wrapper around an OpenGL Vertex Array Object (VAO) to define the vertex attribute specification for rendering. More...
class  ViewState
 Encapsulates the OpenGL view state defined by the viewport, a projection matrix and a model-view matrix. More...
class  AtomicCounterBuffer
 Specialization of Buffer for OpenGL Atomic Counter Objects. More...
class  ShaderStorageBuffer
 Specialization of Buffer for OpenGL Shader Storage Buffer Object. More...
class  OrderIndependentTransparency
 Helper class to consolidate functionality for implementing order-independent transparency of rendered geometry. More...
class  ContextGLX
 OpenGL context using GLX as backend. More...

Enumerations

enum class  ShaderTextReplacement { ShaderTextReplacement::ExactMatch = 1 << 0 , ShaderTextReplacement::AllUppercase = 1 << 1 , ShaderTextReplacement::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 {
  PixelFormat::Red = 0x1903 , PixelFormat::RG = 0x8227 , PixelFormat::RGB = 0x1907 , PixelFormat::RGBA = 0x1908 ,
  PixelFormat::RedInteger = 0x8D94 , PixelFormat::RGInteger = 0x8228 , PixelFormat::RGBInteger = 0x8D98 , PixelFormat::RGBAInteger = 0x8D99 ,
  PixelFormat::DepthComponent = 0x1902 , PixelFormat::DepthStencil = 0x84F9 , PixelFormat::BGRA = 0x80E1 , PixelFormat::BGRAInteger = 0x8D9B ,
  PixelFormat::StencilIndex = 0x1901
}
 Describes the host pixel format during OpenGL texture upload/download. More...
enum class  PixelType : uint32_t {
  PixelType::Byte = 0x1400 , PixelType::UByte = 0x1401 , PixelType::Short = 0x1402 , PixelType::UShort = 0x1403 ,
  PixelType::Int = 0x1404 , PixelType::UInt = 0x1405 , PixelType::Float = 0x1406 , PixelType::HFloat = 0x140B ,
  PixelType::Double = 0x140A
}
 Describes the host pixel type during OpenGL texture upload/download. More...
enum class  Primitive : uint32_t {
  Primitive::Points = 0x0000 , Primitive::Lines = 0x0001 , Primitive::LineLoop = 0x0002 , Primitive::LineStrip = 0x0003 ,
  Primitive::Triangles = 0x0004 , Primitive::TriangleStrip = 0x0005 , Primitive::TriangleFan = 0x0006 , Primitive::LinesAdjacency = 0x000A ,
  Primitive::LineStripAdjacency = 0x000B , Primitive::TrianglesAdjacency = 0x000C , Primitive::TriangleStripAdjacency = 0x000D
}
 Primitive type to render, to be used with GL::VertexBuffer::draw(). More...
enum class  Barrier : uint32_t {
  Barrier::VertexAttribArray = 0x00000001 , Barrier::ElementArray = 0x00000002 , Barrier::Uniform = 0x00000004 , Barrier::TextureFetch = 0x00000008 ,
  Barrier::ShaderImageAccess = 0x00000020 , Barrier::Command = 0x00000040 , Barrier::PixelBuffer = 0x00000080 , Barrier::TextureUpdate = 0x00000100 ,
  Barrier::BufferUpdate = 0x00000200 , Barrier::Framebuffer = 0x00000400 , Barrier::TransformFeedback = 0x00000800 , Barrier::AtomicCounter = 0x00001000 ,
  Barrier::ShaderStorage = 0x00002000 , Barrier::ClientMappedBuffer = 0x00004000 , Barrier::QueryBuffer = 0x00008000 , Barrier::All = 0xFFFFFFFF
}
 Bitflag enum to describe how you intend to use the data after issuing the memoryBarrier() command. More...
enum class  GraphicsResetStatus { GraphicsResetStatus::NoError = 0 , GraphicsResetStatus::GuiltyContextReset = 0x8253 , GraphicsResetStatus::InnocentContextReset = 0x8254 , GraphicsResetStatus::UnknownContextReset = 0x8255 }
 Return value of GL::getGraphicsResetStatus(). More...

Functions

void init (std::unique_ptr< Context >=nullptr)
 Initializes the OpenGL backend.
void deinit ()
 Properly deinitializes all OpenGL resources.
bool getBool (uint32_t param)
 Convenience wrapper for glGetBoolean_v() that directly returns the result.
int32_t getInt (uint32_t param)
 Convenience wrapper for glGetInteger_v() that directly returns the result.
int32_t getIntIndexed (uint32_t param, uint32_t index)
 Convenience wrapper for indexed glGetIntegeri_v() that directly returns the result.
float getFloat (uint32_t param)
 Convenience wrapper for glGetFloat_v() that directly returns the result.
std::string getString (uint32_t param)
 Convenience wrapper for glGetString() that directly returns the result.
GraphicsResetStatus getGraphicsResetStatus ()
 Checks if the current context has been lost due to software or hardware issues.
void clearColorBuffer (const vec4f &color)
 Clears all color buffers attached to the current framebuffer by calling glClearColor(color) and glClear(GL_COLOR_BUFFER_BIT);.
void clearDepthBuffer (double value)
 Clears the depth buffer attached to the current framebuffer by calling glClearDepth(value) and glClear(GL_DEPTH_BUFFER_BIT);.
void memoryBarrier (Flags< Barrier > barriers)
 Inserts a barrier into the OpenGL command stream to order memory transactions.
void flush ()
 Calls glFlush() to block until all OpenGL commands have been transferred to the GPU.
void finish ()
 Calls glFinish() to block until all OpenGL execution is complete.
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.
mat4 createOrtho2d (int width, int height)
 Generates a pixel-perfect 2D orthographic projection matrix for the given viewport size.
mat4 createPerspective (double fov, double aspect, double pnear, double pfar)
 Generates an perspective projection matrix, the same as glPerspective() would do.
PlatformInfo platformInfo ()
 Returns information about the currently active OpenGL platform.
MemoryInfo memoryInfo ()
 Returns information about the currently available and total GPU memory.
Utils::Version versionInfo ()
 Returns the available OpenGL version of the current context.
void setDpiScale (double dpiScale)
 Sets the global DPI scaling factor that should be used by DPI-sensitive OpenGL renderings.
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)
std::ostreamoperator<< (std::ostream &os, const PixelFormat &format)
std::ostreamoperator<< (std::ostream &os, const PixelType &type)
Search Tab / S to search, Esc to close