molecular
Namespaces | Classes | Typedefs | Functions
molecular::gfx Namespace Reference

Molecular graphics classes. More...

Namespaces

 Egl
 Wrapper around EGL functions.
 
 Glx
 Wrapper around GLX functions.
 
 Picking
 
 PixelFormatConversion
 Conversion between PixelFormat and OpenGL type, format and internalFormat.
 
 TextureUtils
 

Classes

class  ApplyTextures
 Set texture uniforms in subfunctions. More...
 
class  AssetManager
 Loads assets when they are needed, and unloads them when they are not needed anymore. More...
 
class  Attribute
 Vertex attribute variable. More...
 
class  CpuParticleSystem
 
class  DefaultProgramData
 Contains default data for ProgramGenerator. More...
 
struct  demo
 
class  DrawDebugMesh
 Draws lines and text. More...
 
class  DrawingFunction
 Base class for functions drawing stuff. More...
 
class  DrawMesh
 Draws a mesh by specifying a mesh filename. More...
 
class  DrawMeshData
 RenderFunction that draws a group of meshes. More...
 
class  DrawSkyDome
 Draw textures sky dome. More...
 
class  DrawTerrain
 Draw heightmap terrain. More...
 
class  DrawTestSkeleton
 
class  FlatScene
 Uses brute-force frustum culling to call a collection of functions. More...
 
class  GlCommandSink
 Interface to OpenGL. More...
 
class  GlFunctions
 
class  GlFunctionsGl10NativeNoGles2
 Functions that are in both OpenGL 1.0 and OpenGL ES 2.0. More...
 
class  GlFunctionsGles2Native
 Native OpenGL calls up to OpenGL ES 2.0. More...
 
class  GlFunctionsGles2ProcAddresses
 Procedure Addresses for functions that are in GLES 2.0, but not in OpenGL 1.0. More...
 
struct  GlFunctionsInitializerEgl
 Acquires procedure pointers through eglGetProcAddress. More...
 
class  GlFunctionsNative
 Native OpenGL calls above ES 2.0. More...
 
class  GlFunctionsProcAddresses
 Procedure addresses for functions above GLES 2.0. More...
 
class  GlfwContext
 Provides viewport dimensions when using the GLFW library. More...
 
class  GlfwOpenGlWindow
 Initializes a GLFWwindow with OpenGL capabilities. More...
 
class  GlfwVulkanWindow
 
class  Group
 The Demultiplexer class is a utility class for cases where more than one output is required. More...
 
class  HumanSkin
 Implementation of subsurface scattering as presented in GPU Gems 3. More...
 
class  Material
 Collection of uniform variables. More...
 
class  MaterialBinding
 Binds alls material variables to the current DynamicScoping scope. More...
 
class  MaterialManager
 Loads materials from ini files and provides them on request. More...
 
struct  MeshBoundsCollectionFile
 File format for collection of bounding boxes. More...
 
class  MeshDataSource
 Interface to a source of mesh data. More...
 
class  MeshLoader
 Loads mesh files. More...
 
struct  MeshLocator
 Specifies a mesh file and optional morph targets. More...
 
class  MultipleCalleeRenderFunction
 RenderFunction that calls multiple other RenderFunctions. More...
 
class  NmbMeshDataSource
 
class  OpenGL10ProcAddresses
 Procedure addresses for OpenGL 1.0. More...
 
class  Output
 Dummy variable for declaring shader outputs. More...
 
struct  ParticleSystemParams
 
class  PortalZoneScene
 Portal-zone visibility determination. More...
 
class  ProgramProvider
 Caches programs from the ProgramGenerator. More...
 
class  RenderContext
 Provides a context for the Renderer to draw to. More...
 
class  RenderFunction
 Function object that issues draw calls and calls other RenderFunctions. More...
 
class  RenderManagerT
 Encloses all objects needed for rendering. More...
 
class  RequestOutput
 Declare an output variable that influences shader program generation. More...
 
class  SetShCoefficients
 Sets spherical harmonics coefficients based on tetrahedron interpolation. More...
 
class  SetUniforms
 Sets arbitrary uniform variables before calling the callee. More...
 
class  SetupLight
 Sets up a single, directional light. More...
 
class  ShadowMapping
 Example shadow mapping function. More...
 
class  SingleCalleeRenderFunction
 RenderFunction that calls a single other RenderFunction only. More...
 
class  Skeleton
 Set character animation uniforms. More...
 
class  SkinProgramData
 Shader generator functions for subsurface scattering. More...
 
struct  SwapchainBuffers
 
class  TetrahedronInterpolation
 
struct  TetrahedronSpaceFile
 
struct  texture_object
 
class  TextureLoader
 Loads textures. More...
 
class  TextureSplatting
 Texture splatting. Mostly useful for terrain. More...
 
class  TextureSplattingData
 
class  Transform
 
class  Uniform
 Uniform variable that can be fed to a Renderer::Program More...
 
class  Variable
 Variable that can be fed to Renderer::Program More...
 
class  ViewSetup
 
class  Visibility
 
class  VulkanInfrastructure
 
class  VulkanRenderCmdSink
 Interface to Vulkan. More...
 

Typedefs

using GlfwFileLoader = util::DummyFileLoader
 Selects file loader, depending on OS. More...
 
typedef RenderManagerT< FileServer< GlfwFileLoader >, TaskDispatcherGlfwRenderManager
 
using GlfwWindow = GlfwOpenGlWindow
 Selects Vulkan or OpenGL window, depending on configuration. More...
 
typedef AssetManager< DrawMeshData *, 1, false, MeshLocatorMeshManager
 
using RenderCmdSink = GlCommandSink
 
typedef DynamicScoping< Hash, VariableScoping
 Dynamic scoping to associate hashes to Variable. More...
 
typedef AssetManager< RenderCmdSink::Texture *, 10, true, HashTextureManager
 

Functions

Hash MakeHash (const std::string &string)
 Make hash out of std::string. More...
 
constexpr Hash MakeHash (Hash hash)
 Make hash out of hash. More...
 
template<class TString >
void DrawText (const TString &text, const Vector3 &start, float textHeight, const FontAtlasDescriptionFile &fontDescription, std::vector< Vector3 > &outVertexPositions, std::vector< Vector2 > &outVertexTexCoords)
 Create vertex positions and texture coordinates for atlassed text. More...
 
template void DrawText (const std::string &text, const Vector3 &start, float textHeight, const util::FontAtlasDescriptionFile &fontDescription, std::vector< Vector3 > &outVertexPositions, std::vector< Vector2 > &outVertexTexCoords)
 
template void DrawText (const std::wstring &text, const Vector3 &start, float textHeight, const util::FontAtlasDescriptionFile &fontDescription, std::vector< Vector3 > &outVertexPositions, std::vector< Vector2 > &outVertexTexCoords)
 
bool PortalFacingToViewer (const Vector3 portalPoints[3], const Vector3 &viewPos)
 
Vector3 Unproject (const Matrix4 &proj, const Matrix4 &view, const Vector3 &point)
 Convert screen coordinates to world coordinates. More...
 
VKAPI_ATTR VkBool32 VKAPI_CALL BreakCallback (VkFlags msgFlags, VkDebugReportObjectTypeEXT objType, uint64_t srcObject, size_t location, int32_t msgCode, const char *pLayerPrefix, const char *pMsg, void *pUserData)
 
VKAPI_ATTR VkBool32 VKAPI_CALL dbgFunc (VkFlags msgFlags, VkDebugReportObjectTypeEXT objType, uint64_t srcObject, size_t location, int32_t msgCode, const char *pLayerPrefix, const char *pMsg, void *pUserData)
 
Hash MakeHash (const MeshLocator &locator)
 Modified hashing function that hashes MeshLocator. More...
 
const char * GlConstantString (GLenum e)
 Returns string for the given OpenGL constant. More...
 
template<class TetrahedronIterator , class PositionIterator , class CoeffsIterator , class NormalsIterator , class Storage >
void WriteTetrahedronSpaceFile (TetrahedronIterator tetBegin, TetrahedronIterator tetEnd, PositionIterator posBegin, PositionIterator posEnd, CoeffsIterator coeffsBegin, CoeffsIterator coeffsEnd, NormalsIterator normalsBegin, NormalsIterator normalsEnd, Storage &outStorage)
 

Detailed Description

Molecular graphics classes.

Typedef Documentation

Selects file loader, depending on OS.

Selects Vulkan or OpenGL window, depending on configuration.

Dynamic scoping to associate hashes to Variable.

Function Documentation

VKAPI_ATTR VkBool32 VKAPI_CALL molecular::gfx::BreakCallback ( VkFlags  msgFlags,
VkDebugReportObjectTypeEXT  objType,
uint64_t  srcObject,
size_t  location,
int32_t  msgCode,
const char *  pLayerPrefix,
const char *  pMsg,
void *  pUserData 
)
VKAPI_ATTR VkBool32 VKAPI_CALL molecular::gfx::dbgFunc ( VkFlags  msgFlags,
VkDebugReportObjectTypeEXT  objType,
uint64_t  srcObject,
size_t  location,
int32_t  msgCode,
const char *  pLayerPrefix,
const char *  pMsg,
void *  pUserData 
)
template<class TString >
void molecular::gfx::DrawText ( const TString &  text,
const Vector3 start,
float  textHeight,
const FontAtlasDescriptionFile fontDescription,
std::vector< Vector3 > &  outVertexPositions,
std::vector< Vector2 > &  outVertexTexCoords 
)

Create vertex positions and texture coordinates for atlassed text.

TString can be std::string or std::wstring.

template void molecular::gfx::DrawText ( const std::string &  text,
const Vector3 start,
float  textHeight,
const util::FontAtlasDescriptionFile fontDescription,
std::vector< Vector3 > &  outVertexPositions,
std::vector< Vector2 > &  outVertexTexCoords 
)
template void molecular::gfx::DrawText ( const std::wstring &  text,
const Vector3 start,
float  textHeight,
const util::FontAtlasDescriptionFile fontDescription,
std::vector< Vector3 > &  outVertexPositions,
std::vector< Vector2 > &  outVertexTexCoords 
)
const char * molecular::gfx::GlConstantString ( GLenum  e)

Returns string for the given OpenGL constant.

If the constant is unknown, it returns the enum value as a string that is only valid until the next call to GlConstantString.

Hash molecular::gfx::MakeHash ( const MeshLocator locator)

Modified hashing function that hashes MeshLocator.

Includes the file name and morph targets with their respective weights.

Hash molecular::gfx::MakeHash ( const std::string &  string)
inline

Make hash out of std::string.

constexpr Hash molecular::gfx::MakeHash ( Hash  hash)

Make hash out of hash.

Just returns the hash itself.

bool molecular::gfx::PortalFacingToViewer ( const Vector3  portalPoints[3],
const Vector3 viewPos 
)
inline
Vector3 molecular::gfx::Unproject ( const Matrix4 proj,
const Matrix4 view,
const Vector3 point 
)

Convert screen coordinates to world coordinates.

Similar to gluUnProject().

Parameters
projProjection matrix.
viewView matrix.
pointPoint to unproject in normalised device coordinates (from -1 to 1 in all axes).
Returns
Point in world coordinates.
template<class TetrahedronIterator , class PositionIterator , class CoeffsIterator , class NormalsIterator , class Storage >
void molecular::gfx::WriteTetrahedronSpaceFile ( TetrahedronIterator  tetBegin,
TetrahedronIterator  tetEnd,
PositionIterator  posBegin,
PositionIterator  posEnd,
CoeffsIterator  coeffsBegin,
CoeffsIterator  coeffsEnd,
NormalsIterator  normalsBegin,
NormalsIterator  normalsEnd,
Storage &  outStorage 
)