All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
Luminous Namespace Reference

Luminous is a library of C++ classes for computer graphics, using OpenGL. More...

Classes

struct  BasicUniformBlock
 Uniform block to use with most of the shaders included in Luminous. More...
 
struct  BasicVertex
 The most basic type of vertex to use with shader programs. More...
 
struct  BasicVertexUV
 Vertex to use with shader programs that use texturing. More...
 
class  BlendMode
 This class defines a blending mode used during rendering. More...
 
class  Buffer
 This class represents a general unformatted linear memory stored on the graphics card. More...
 
class  BufferGL
 This class represents the Buffer class in GPU memory. More...
 
class  ClipGuard
 This class provides a simple guard for setting the active clipping area for widgets. More...
 
class  ClipStackGuard
 
class  CocoaWindow
 This class represents an OpenGL window using Cocoa on OS X. More...
 
class  CodecRegistry
 CodecRegistry keeps track of different registered ImageCodecs that can be used to load images. More...
 
class  ColorCorrection
 
class  ColorCorrectionFilter
 This class implements the built-in color-correction in Cornerstone. More...
 
class  CompressedImage
 A compressed image. Currently supports DXT format. More...
 
class  ContextArray
 This class is a utility class that provides easier handling of OpenGL context-specific variables. More...
 
class  ContextArrayT
 This class is a utility for handling variables specific to rendering threads. More...
 
class  CullMode
 This class defines the culling-mode for rendered primitives. More...
 
class  CustomOpenGL
 Guard for executing plain OpenGL commands. More...
 
class  DepthMode
 This class defines the depth comparison mode used during rendering. More...
 
class  Fill
 Defines the fill parameters for drawn objects. More...
 
class  FrameBuffer
 This class is an abstraction of a generic render target. More...
 
class  FrameBufferGL
 FrameBufferGL is the FrameBuffer representation in GPU memory. More...
 
class  FrameBufferGuard
 This class provides a simple guard for setting the active render target. More...
 
class  GLKeyStone
 Class for doing key-stone correction when rendering 2D OpenGL graphics. More...
 
class  GPUAssociation
 
class  Image
 Simple image handling class. More...
 
class  ImageCodec
 The base class for different image codecs. More...
 
class  ImageCodecDDS
 Image codec to handle DDS files. More...
 
struct  ImageInfo
 Simple struct containing basic image information that can be quickly queried (with Image::ping) without loading the full image. More...
 
class  MaskGuard
 This class provides a simple guard for setting the active masking area for rendering. More...
 
class  Mipmap
 This class provides a custom mipmap management for images loaded from disk. More...
 
class  MipMapGenerator
 Task that generates mipmaps to global imagecache for source image. More...
 
class  MultiHead
 Class for managing information on multiple OpenGL vindows/viewports. More...
 
class  OpacityGuard
 This class provides a simple guard for setting opacity. More...
 
class  OpenGLContextHandle
 
struct  OpenGLVersion
 
class  PixelFormat
 Describes the pixel format of an image. More...
 
class  PostProcessContext
 PostProcessContext is the render-thread specific context that is used for post processing to work in a multi-context environment. More...
 
class  PostProcessFilter
 Post-processing filters are tools that can be used to process the final output image of a rendered scene. More...
 
class  Program
 A shader program, combining multiple Shader objects into one runnable program. More...
 
class  ProgramGL
 This class represents the Program object in GPU memory. More...
 
class  QtWindow
 A window class built on top of Qt. More...
 
class  RenderBuffer
 This class represents an off-screen render target that is optimized for use as a render target. More...
 
class  RenderBufferGL
 RenderBufferGL is the RenderBuffer representation in GPU memory. More...
 
class  RenderContext
 RenderContext contains the current rendering state. More...
 
class  RenderResource
 This class provides common interface for different resources needed during rendering. More...
 
class  ResourceHandleGL
 Base class for all OpenGL resources that reside in GPU memory. More...
 
class  RGBCube
 This class is used to perform RGB color correction using 3D color lookup grid. More...
 
class  RichTextLayout
 Rich text document layout. More...
 
class  ScissorGuard
 This class provides a simple guard for setting the active scissor area. More...
 
class  Shader
 A single shader (vertex, fragment, etc) written GLSL. More...
 
class  ShaderGL
 This class represents the Shader object in GPU memory. More...
 
struct  ShaderUniform
 A shader uniform. More...
 
class  SimpleTextLayout
 Plain text, usually one font, inside rectangle (0,0) -> size. More...
 
class  SpriteRenderer
 This class implements a simple particle system. More...
 
class  StateGL
 Keeps track of current OpenGL state, one instance is shared between all *GL -classes in the same rendering context. More...
 
class  StencilMode
 This class defines the stencil buffer operation mode. More...
 
class  Stroke
 Defines the stroke parameters for drawn objects. More...
 
class  Style
 Style object for giving rendering parameters to the RenderContext Style objects acts as a collection of fill and stroke parameters and shader uniforms. More...
 
class  TextLayout
 TextLayout is the base class for different implementations of text layouting. More...
 
class  TextStyle
 This class stores the style information needed to render text. More...
 
class  Texture
 A GPU texture. More...
 
class  TextureGL
 This class represents a Texture object in GPU memory. More...
 
class  Transformer
 Geometrical 3D transformation stack. More...
 
class  TransformGuard
 This class provides a simple guard for setting transformations. More...
 
struct  TrilinearFilteringUniformBlock
 Uniform block to be used with trilinear texture filtering. More...
 
class  VertexArray
 This class abstracts OpenGL VertexArrayObjects. More...
 
class  VertexArrayGL
 This class represents the VertexArray in GPU memory. More...
 
struct  VertexAttribute
 This class represents a single vertex attribute in vertex description. More...
 
class  VertexDescription
 This class provides a description of vertex data format used during rendering. More...
 
class  ViewportGuard
 This class provides a simple guard for setting the active viewport. More...
 
class  ViewTransformGuard
 This class provides a simple guard for setting the active view transform. More...
 
class  Window
 Virtual base classes for OpenGL windows. More...
 
class  WindowEventHook
 Class for getting window events. More...
 

Typedefs

typedef std::shared_ptr< MipmapMipmapPtr
 Shared pointer to Mipmap.
 
typedef std::shared_ptr
< PostProcessContext
PostProcessContextPtr
 A shared pointer to PostProcessContext.
 
typedef std::shared_ptr
< PostProcessFilter
PostProcessFilterPtr
 A shared pointer to PostProcessFilter.
 
typedef std::vector
< PostProcessFilterPtr
PostProcessFilters
 A collection of PostProcessFilter pointers.
 

Enumerations

enum  ClearMask {
  CLEARMASK_COLOR = (1 << 0), CLEARMASK_DEPTH = (1 << 1), CLEARMASK_STENCIL = (1 << 2), CLEARMASK_COLOR_DEPTH = CLEARMASK_COLOR | CLEARMASK_DEPTH,
  CLEARMASK_COLOR_STENCIL = CLEARMASK_COLOR | CLEARMASK_STENCIL, CLEARMASK_DEPTH_STENCIL = CLEARMASK_DEPTH | CLEARMASK_STENCIL, CLEARMASK_COLOR_DEPTH_STENCIL = CLEARMASK_COLOR | CLEARMASK_DEPTH | CLEARMASK_STENCIL
}
 Mask to define which rendering buffers are cleared. More...
 
enum  Face { FRONT = GL_FRONT, BACK = GL_BACK, FRONT_AND_BACK = GL_FRONT_AND_BACK }
 Defines which primitives are matched based on their facing. More...
 
enum  FaceWinding { CCW = GL_CCW, CW = GL_CW }
 Defines the ordering of a rendering primitive. More...
 
enum  Overflow { OverflowVisible, OverflowHidden, OverflowScroll, OverflowAuto }
 Control how text content overflow is handled. More...
 
enum  PrimitiveType {
  PRIMITIVE_TRIANGLE = GL_TRIANGLES, PRIMITIVE_TRIANGLE_STRIP = GL_TRIANGLE_STRIP, PRIMITIVE_TRIANGLE_FAN = GL_TRIANGLE_FAN, PRIMITIVE_LINE = GL_LINES,
  PRIMITIVE_LINE_STRIP = GL_LINE_STRIP, PRIMITIVE_POINT = GL_POINTS
}
 Primitive type used for rendering. More...
 

Functions

LUMINOUS_API void glErrorToString (const QString &msg=__FILE__, int line=__LINE__)
 Converts OpenGL error into a human-readable string. More...
 
LUMINOUS_API OpenGLVersion glVersion ()
 Returns OpenGL version of the first OpenGL context that was initialized in initLuminous. More...
 
LUMINOUS_API void initDefaultImageCodecs ()
 Initializes the default image codecs. More...
 
LUMINOUS_API bool initLuminous (bool initOpenGL=true)
 Initializes the Luminous library. More...
 
LUMINOUS_API bool isLuminousInitialized ()
 Checks if the initLuminous function has been called successfully. More...
 
LUMINOUS_API bool isSampleShadingSupported ()
 Check if GL_ARB_sample_shading OpenGL extension is supported. More...
 
bool operator!= (const DepthMode &lhs, const DepthMode &rhs)
 Inequality comparison of DepthMode objects. More...
 
bool operator!= (const BlendMode &lhs, const BlendMode &rhs)
 Inequality comparison of two BlendMode objects lhs Blending mode on the left rhs Blending mode on the right.
 
bool operator!= (const StencilMode &lhs, const StencilMode &rhs)
 Inequality comparison between two StencilMode operators. More...
 
std::ostream & operator<< (std::ostream &os, const Luminous::PixelFormat &pf)
 
bool operator== (const DepthMode &lhs, const DepthMode &rhs)
 Equality comparison of DepthMode objects. More...
 
bool operator== (const BlendMode &lhs, const BlendMode &rhs)
 Equality comparison of two BlendMode objects lhs Blending mode on the left rhs Blending mode on the right.
 
bool operator== (const StencilMode &lhs, const StencilMode &rhs)
 Equality comparison between two StencilMode operators. More...
 

Detailed Description

Luminous is a library of C++ classes for computer graphics, using OpenGL.

Copyright: The Luminous library has been developed in Helsinki Institute for Information Technology (HIIT, 2006-2008) and MultiTouch Oy (2007-2008).

Luminous is released under the GNU Lesser General Public License (LGPL), version 2.1.

Enumeration Type Documentation

Mask to define which rendering buffers are cleared.

Enumerator
CLEARMASK_COLOR 

Indicates color buffer.

CLEARMASK_DEPTH 

Indicates depth buffer.

CLEARMASK_STENCIL 

Indicates stencil buffer.

CLEARMASK_COLOR_DEPTH 

Shorthand for color and depth buffer.

CLEARMASK_COLOR_STENCIL 

Shorthand for color and stencil buffer.

CLEARMASK_DEPTH_STENCIL 

Shorthand for depth and stencil buffer.

CLEARMASK_COLOR_DEPTH_STENCIL 

Shorthand for color, depth, and stencil buffer.

Defines which primitives are matched based on their facing.

See Also
FaceWinding
Enumerator
FRONT 

Front-facing primitives.

BACK 

Back-facing primitives.

FRONT_AND_BACK 

Front and back facing primitives.

Defines the ordering of a rendering primitive.

Enumerator
CCW 

Counter clock-wise ordering of vertices.

CW 

Clock-wise ordering of vertices.

Control how text content overflow is handled.

Enumerator
OverflowVisible 

"visible", content is not clipped, i.e., it may be rendered outside the content box (default value)

OverflowHidden 

"hidden", content is clipped, no scrolling mechanism should be provided

OverflowScroll 

"scroll", content is clipped, scrolling mechanism is always visible

OverflowAuto 

"auto", content is clipped, scrolling mechanism is visible when needed

Primitive type used for rendering.

Enumerator
PRIMITIVE_TRIANGLE 

Primitive corresponding to separate triangles.

PRIMITIVE_TRIANGLE_STRIP 

Primitive corresponding to triangle strips.

PRIMITIVE_TRIANGLE_FAN 

Primitive corresponding to triangle fan.

PRIMITIVE_LINE 

Primitive corresponding to line.

PRIMITIVE_LINE_STRIP 

Primitive corresponding to line strip.

PRIMITIVE_POINT 

Primitive corresponding to points.

Function Documentation

LUMINOUS_API void Luminous::glErrorToString ( const QString &  msg = __FILE__,
int  line = __LINE__ 
)

Converts OpenGL error into a human-readable string.

This function gets the current error code from OpenGL and displays it using Radiant::error.

Parameters
msgmessage prefix
lineline number
LUMINOUS_API OpenGLVersion Luminous::glVersion ( )

Returns OpenGL version of the first OpenGL context that was initialized in initLuminous.

This is thread-safe function.

LUMINOUS_API void Luminous::initDefaultImageCodecs ( )

Initializes the default image codecs.

The image codecs are loaded as plugins that need to be loaded before they can be used. This functions does just that.

LUMINOUS_API bool Luminous::initLuminous ( bool  initOpenGL = true)

Initializes the Luminous library.

In practice this function only initializes the GLEW and checks the capabilities of the underlying OpenGL implementation. If the OpenGL version is below 2.0, then a warning message is issued.

Parameters
initOpenGLif set to false, glew will not be initialized
Returns
true if all relevant resources were successfully initialized, false if something was left missing (for example too low OpenGL version).
LUMINOUS_API bool Luminous::isLuminousInitialized ( )

Checks if the initLuminous function has been called successfully.

LUMINOUS_API bool Luminous::isSampleShadingSupported ( )

Check if GL_ARB_sample_shading OpenGL extension is supported.

This function should only be called after Luminous::initLuminous had been called.

Returns
true if the extension is supported; otherwise false
bool Luminous::operator!= ( const DepthMode &  lhs,
const DepthMode &  rhs 
)
inline

Inequality comparison of DepthMode objects.

Parameters
lhsLeft side operand
rhsRight side operand
Returns
true if the modes are not equal; otherwise false
bool Luminous::operator!= ( const StencilMode &  lhs,
const StencilMode &  rhs 
)
inline

Inequality comparison between two StencilMode operators.

Parameters
lhsLeft hand operand
rhsRight hand operand
Returns
Were the objects inequal
bool Luminous::operator== ( const DepthMode &  lhs,
const DepthMode &  rhs 
)
inline

Equality comparison of DepthMode objects.

For depth modes to be equal, both the function and range must be the same.

Parameters
lhsLeft side operand
rhsRight side operand
Returns
true if the modes are equal; otherwise false
bool Luminous::operator== ( const StencilMode &  lhs,
const StencilMode &  rhs 
)
inline

Equality comparison between two StencilMode operators.

Parameters
lhsLeft hand operand
rhsRight hand operand
Returns
Were the objects equal