molecular
|
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 >, TaskDispatcher > | GlfwRenderManager |
using | GlfwWindow = GlfwOpenGlWindow |
Selects Vulkan or OpenGL window, depending on configuration. More... | |
typedef AssetManager< DrawMeshData *, 1, false, MeshLocator > | MeshManager |
using | RenderCmdSink = GlCommandSink |
typedef DynamicScoping< Hash, Variable > | Scoping |
Dynamic scoping to associate hashes to Variable. More... | |
typedef AssetManager< RenderCmdSink::Texture *, 10, true, Hash > | TextureManager |
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) |
Molecular graphics classes.
using molecular::gfx::GlfwFileLoader = typedef util::DummyFileLoader |
Selects file loader, depending on OS.
typedef RenderManagerT<FileServer<GlfwFileLoader>, TaskDispatcher> molecular::gfx::GlfwRenderManager |
using molecular::gfx::GlfwWindow = typedef GlfwOpenGlWindow |
Selects Vulkan or OpenGL window, depending on configuration.
typedef AssetManager<DrawMeshData*, 1, false, MeshLocator> molecular::gfx::MeshManager |
using molecular::gfx::RenderCmdSink = typedef GlCommandSink |
typedef DynamicScoping<Hash, Variable> molecular::gfx::Scoping |
Dynamic scoping to associate hashes to Variable.
typedef AssetManager<RenderCmdSink::Texture*, 10, true, Hash> molecular::gfx::TextureManager |
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 | ||
) |
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.
|
inline |
Make hash out of std::string.
Make hash out of hash.
Just returns the hash itself.
|
inline |
Vector3 molecular::gfx::Unproject | ( | const Matrix4 & | proj, |
const Matrix4 & | view, | ||
const Vector3 & | point | ||
) |
Convert screen coordinates to world coordinates.
Similar to gluUnProject().
proj | Projection matrix. |
view | View matrix. |
point | Point to unproject in normalised device coordinates (from -1 to 1 in all axes). |
void molecular::gfx::WriteTetrahedronSpaceFile | ( | TetrahedronIterator | tetBegin, |
TetrahedronIterator | tetEnd, | ||
PositionIterator | posBegin, | ||
PositionIterator | posEnd, | ||
CoeffsIterator | coeffsBegin, | ||
CoeffsIterator | coeffsEnd, | ||
NormalsIterator | normalsBegin, | ||
NormalsIterator | normalsEnd, | ||
Storage & | outStorage | ||
) |