molecular
Namespaces | Classes | Typedefs | Enumerations | Functions
molecular::util Namespace Reference

Molecular utility classes. More...

Namespaces

 CharacterAnimation
 
 FileTypeIdentification
 Functions for identifying file types from files contents.
 
 HashUtils
 
 Math
 Common math functions and constants.
 
 MeshUtils
 Various functions for mesh data processing.
 
 Murmur
 Compile-time MurmurHash3.
 
 Parser
 A recursive-descent parser with backtracking.
 
 Pf
 Functions handling PixelFormat values.
 
 PlaneSet
 
 SphericalHarmonics
 
 StringUtils
 Utility functions for string processing.
 

Classes

struct  AttributeTraits
 Extract scalar type and array size from commonly used vector types. More...
 
struct  AttributeTraits< float >
 Specialization of AttributeTraits for float. More...
 
struct  AttributeTraits< IntVector4 >
 Specialization of AttributeTraits for IntVector4. More...
 
struct  AttributeTraits< Vector2 >
 Specialization of AttributeTraits for Vector2. More...
 
struct  AttributeTraits< Vector3 >
 Specialization of AttributeTraits for Vector3. More...
 
struct  AttributeTraits< Vector4 >
 Specialization of AttributeTraits for Vector4. More...
 
class  AxisAlignedBox
 Axis aligned (bounding) box (AABB) More...
 
class  Blob
 Holds binary data. More...
 
class  BlobFunctionTask
 Task that calls an std::function with a Blob argument. More...
 
class  Box
 Represents an arbitrarily oriented box in 3D space. More...
 
class  CommandLineParser
 Easy processing of argc and argv. More...
 
class  DdsFile
 Interface to DirectDrawSurface files. More...
 
class  DummyFileLoader
 FileLoader that loads a file synchronously. More...
 
class  DynamicScoping
 Implementation of dynamic scoping. More...
 
class  FileReadStorage
 A derived ReadStorage for reading regular files. More...
 
class  FileServer
 
class  FileWriteStorage
 A derived WriteStorage for writing regular files. More...
 
class  FloatToHalf
 Converts 32 bit to 16 bit floating point numbers. More...
 
struct  FontAtlasDescriptionFile
 
class  Frustum
 A frustum contains the space that is seen. More...
 
class  FunctionTaskT
 Task that executes an std::function. More...
 
class  GccAtomicCounter
 Counter with atomic increment/decrement methods. More...
 
class  GcdAsyncFileLoader
 Loads files asynchronously using Grand Central Dispatch. More...
 
class  GcdTaskDispatcher
 
struct  GlConstants
 
class  HostReadStream
 Stream-interface to a ReadStorage that does no endian conversion. More...
 
struct  IndexBufferInfo
 Information about index data in a buffer. More...
 
class  IniFile
 ini file parser More...
 
class  IntVector2
 Integer vector with two components. More...
 
class  IntVector3
 Integer vector with three components. More...
 
class  IntVector4
 Integer vector with four components. More...
 
class  KtxFile
 Interface to Khronos KTX texture files. More...
 
struct  Log
 Automatic newlines for log messages. More...
 
class  ManualTaskQueue
 Task queue that runs tasks on calls to RunOneTask. More...
 
class  Matrix
 Generic matrix template class. More...
 
class  Matrix3
 Rotation matrix. More...
 
class  Matrix4
 A 4x4 matrix. More...
 
class  MemoryReadStorage
 ReadStorage interface to an existing block of memory. More...
 
class  MemoryWriteStorage
 WriteStorage interface to an existing block of memory. More...
 
class  Mesh
 Intermediate representation of mesh data. More...
 
class  MovableOnly
 
class  MtlFile
 Wavefront material file. More...
 
class  NmbFile
 NVidia geometry file. More...
 
class  NonCopyable
 Base class that prevents copying any object of a derived class. More...
 
class  NonNewline
 
struct  PackageFile
 PAK-like file structure. More...
 
class  PackageFileDirectory
 Indexes multiple package files. More...
 
class  PairFirstIterator
 Iterator adapter that dereferences to the first value of a pair iterator. More...
 
class  PairSecondIterator
 Iterator adapter that dereferences to the second value of a pair iterator. More...
 
class  Plane
 Plane in Hesse normal form. More...
 
class  Quaternion
 4D quaternion class for storing rotation values More...
 
class  RandomAccessWriteStorage
 WriteStorage whose cursor can be set randomly. More...
 
class  Range
 Pair of iterators. More...
 
class  ReadStorage
 Base class for data storage to be read from. More...
 
class  ReadStream
 Abstract base class for data storage streams. More...
 
class  SkippingIterator
 Iterator that skips certain positions. More...
 
class  StdMutex
 Locking mechanism for resources accessed by multiple threads. More...
 
class  StdTaskQueue
 Uses std::thread to process background jobs. More...
 
class  StdThread
 Wrapper around std::thread. More...
 
class  StringStore
 Maps hashes to strings. More...
 
struct  StringStoreFile
 Structure for files mapping hashes to strings. More...
 
class  TaskT
 Pre-C++11 interface to TaskDispatcher. More...
 
class  TextReadStream
 Reads a file line by line. More...
 
class  TextReadStreamBase
 Reads a file line by line. More...
 
class  TgaFile2
 Interface to TGA files. More...
 
class  ThreadSafeQueue
 Thread-safe FIFO queue. More...
 
class  UIntVector2
 Unsigned integer vector with two components. More...
 
class  UIntVector3
 Unsigned integer vector with three components. More...
 
class  UIntVector4
 Unsigned integer vector with four components. More...
 
class  Vector
 Vector template with adjustable dimensionality. More...
 
class  Vector2
 Two-dimensional vector. More...
 
class  Vector3T
 Generic vector with 3 elements. More...
 
class  Vector4
 Four-dimensional vector. More...
 
class  VectorTmpl
 Vector base class template. More...
 
struct  VertexAttributeInfo
 Information about vertex attribute data in a buffer. More...
 
class  WriteStorage
 Base class for data storage to be written to. More...
 

Typedefs

template<char a, char b>
using Keyword2 = Concatenation< Char< a >, Char< b >>
 
template<char a, char b, char c, char d, char e>
using Keyword5 = Concatenation< Char< a >, Char< b >, Char< c >, Char< d >, Char< e >>
 
template<char a, char b, char c, char d, char e, char f>
using Keyword6 = Concatenation< Char< a >, Char< b >, Char< c >, Char< d >, Char< e >, Char< f >>
 
using NonWhitespace = Alternation< Alpha, Digit, Char<'_'>, Char<'-'>, Char<'.'>>
 
using String = Concatenation< NonWhitespace, Repetition< NonWhitespace >>
 
typedef GccAtomicCounter AtomicCounter
 
typedef uint32_t Hash
 
template<class Storage >
using LittleEndianReadStream = HostReadStream< Storage >
 
using MeshSet = std::vector< Mesh >
 Collection of meshes. More...
 
using TaskDispatcher = StdTaskQueue
 
using Vector3 = Vector3T< float >
 
using Vector3f = Vector3T< float >
 
using Vector3d = Vector3T< double >
 

Enumerations

enum  PixelFormat {
  PF_NONE, PF_UNSUPPORTED, PF_ANY, PF_ANY_RGB,
  PF_ANY_RGBA, PF_R8G8B8, PF_R8G8B8A8, PF_B8G8R8,
  PF_B8G8R8A8, PF_R4G4B4A4, PF_R5G5B5A1, PF_L8,
  PF_L32_UNSIGNED, PF_L8A8, PF_A8, PF_R8G8B8_SIGNED,
  PF_R8G8B8_SIGNED_NORM, PF_R8G8B8A8_UNSIGNED, PF_L_FLOAT32, PF_RGB_FLOAT16,
  PF_RGB_FLOAT32, PF_RGBA_FLOAT16, PF_RGBA_FLOAT32, PF_DEPTH_16,
  PF_DEPTH_24, PF_DEPTH_32, PF_DEPTH_FLOAT32, PF_STENCIL_8,
  PF_RGB_DXT1, PF_RGBA_DXT1, PF_RGBA_DXT3, PF_RGBA_DXT5,
  PF_RGB_ETC1, PF_RGB_ETC2, PF_RGBA_ETC2, PF_RGB_DXT1_LINEAR,
  PF_RGBA_DXT1_LINEAR, PF_RGBA_DXT3_LINEAR, PF_RGBA_DXT5_LINEAR, PF_RGB_ETC1_LINEAR,
  PF_RGB_ETC2_LINEAR, PF_RGBA_ETC2_LINEAR, PF_NONE, PF_UNSUPPORTED,
  PF_ANY, PF_ANY_RGB, PF_ANY_RGBA, PF_R8G8B8,
  PF_R8G8B8A8, PF_B8G8R8, PF_B8G8R8A8, PF_R4G4B4A4,
  PF_R5G5B5A1, PF_L8, PF_L32_UNSIGNED, PF_L8A8,
  PF_A8, PF_R8G8B8_SIGNED, PF_R8G8B8_SIGNED_NORM, PF_R8G8B8A8_UNSIGNED,
  PF_L_FLOAT32, PF_RGB_FLOAT16, PF_RGB_FLOAT32, PF_RGBA_FLOAT16,
  PF_RGBA_FLOAT32, PF_DEPTH_16, PF_DEPTH_24, PF_DEPTH_32,
  PF_DEPTH_FLOAT32, PF_STENCIL_8, PF_RGB_DXT1, PF_RGBA_DXT1,
  PF_RGBA_DXT3, PF_RGBA_DXT5, PF_RGB_ETC1, PF_RGB_ETC2,
  PF_RGBA_ETC2, PF_RGB_DXT1_LINEAR, PF_RGBA_DXT1_LINEAR, PF_RGBA_DXT3_LINEAR,
  PF_RGBA_DXT5_LINEAR, PF_RGB_ETC1_LINEAR, PF_RGB_ETC2_LINEAR, PF_RGBA_ETC2_LINEAR
}
 Pixel formats for textures etc. More...
 
enum  PixelFormat {
  PF_NONE, PF_UNSUPPORTED, PF_ANY, PF_ANY_RGB,
  PF_ANY_RGBA, PF_R8G8B8, PF_R8G8B8A8, PF_B8G8R8,
  PF_B8G8R8A8, PF_R4G4B4A4, PF_R5G5B5A1, PF_L8,
  PF_L32_UNSIGNED, PF_L8A8, PF_A8, PF_R8G8B8_SIGNED,
  PF_R8G8B8_SIGNED_NORM, PF_R8G8B8A8_UNSIGNED, PF_L_FLOAT32, PF_RGB_FLOAT16,
  PF_RGB_FLOAT32, PF_RGBA_FLOAT16, PF_RGBA_FLOAT32, PF_DEPTH_16,
  PF_DEPTH_24, PF_DEPTH_32, PF_DEPTH_FLOAT32, PF_STENCIL_8,
  PF_RGB_DXT1, PF_RGBA_DXT1, PF_RGBA_DXT3, PF_RGBA_DXT5,
  PF_RGB_ETC1, PF_RGB_ETC2, PF_RGBA_ETC2, PF_RGB_DXT1_LINEAR,
  PF_RGBA_DXT1_LINEAR, PF_RGBA_DXT3_LINEAR, PF_RGBA_DXT5_LINEAR, PF_RGB_ETC1_LINEAR,
  PF_RGB_ETC2_LINEAR, PF_RGBA_ETC2_LINEAR, PF_NONE, PF_UNSUPPORTED,
  PF_ANY, PF_ANY_RGB, PF_ANY_RGBA, PF_R8G8B8,
  PF_R8G8B8A8, PF_B8G8R8, PF_B8G8R8A8, PF_R4G4B4A4,
  PF_R5G5B5A1, PF_L8, PF_L32_UNSIGNED, PF_L8A8,
  PF_A8, PF_R8G8B8_SIGNED, PF_R8G8B8_SIGNED_NORM, PF_R8G8B8A8_UNSIGNED,
  PF_L_FLOAT32, PF_RGB_FLOAT16, PF_RGB_FLOAT32, PF_RGBA_FLOAT16,
  PF_RGBA_FLOAT32, PF_DEPTH_16, PF_DEPTH_24, PF_DEPTH_32,
  PF_DEPTH_FLOAT32, PF_STENCIL_8, PF_RGB_DXT1, PF_RGBA_DXT1,
  PF_RGBA_DXT3, PF_RGBA_DXT5, PF_RGB_ETC1, PF_RGB_ETC2,
  PF_RGBA_ETC2, PF_RGB_DXT1_LINEAR, PF_RGBA_DXT1_LINEAR, PF_RGBA_DXT3_LINEAR,
  PF_RGBA_DXT5_LINEAR, PF_RGB_ETC1_LINEAR, PF_RGB_ETC2_LINEAR, PF_RGBA_ETC2_LINEAR
}
 Pixel formats for textures etc. More...
 

Functions

std::ostream & operator<< (std::ostream &o, const Frustum &f)
 
template<class Iterator , class Predicate >
SkippingIterator< Iterator, Predicate > MakeSkippingIterator (Iterator it, Iterator end, Predicate pred)
 Simple wrapper around SkippingIterator::SkippingIterator for using template parameter deduction. More...
 
template<typename T >
Log && operator<< (Log &&wrap, T const &whatever)
 
std::ostream & operator<< (std::ostream &o, const Plane &p)
 
std::ostream & operator<< (std::ostream &o, const Plane::IntersectStatus &i)
 
template<class Iterator >
void IncrementAndWrap (Iterator &it, Iterator begin, Iterator end)
 
template<class Iterator >
void DecrementAndWrap (Iterator &it, Iterator begin, Iterator end)
 
template<class TFileLoader , class TTaskQueue >
Blob SyncFileLoad (const char *filename, TFileLoader &fileLoader, TTaskQueue &queue, size_t offset=0, size_t length=0)
 
std::ostream & operator<< (std::ostream &o, const AxisAlignedBox &box)
 
std::ostream & operator<< (std::ostream &o, IndexBufferInfo::Mode mode)
 
std::ostream & operator<< (std::ostream &o, IndexBufferInfo::Type type)
 
std::ostream & operator<< (std::ostream &o, VertexAttributeInfo::Type type)
 
constexpr uint32_t operator""_4CC (const char *str, size_t)
 Four character code string literal. More...
 
constexpr uint32_t operator""_H (const char *str, size_t length)
 
template<int rows, int cols, typename T >
Matrix< rows, cols, T > operator* (T f, Matrix< rows, cols, T > m)
 Scalar multiplication. More...
 
template<int rows, int cols, typename T >
std::ostream & operator<< (std::ostream &o, const Matrix< rows, cols, T > &m)
 
Quaternion operator* (const Quaternion::Real r, const Quaternion &q)
 
template<class T >
Range< T > MakeRange (T begin, T end)
 
template<class T >
Range< typename T::iterator > MakeRange (T container)
 
template<int dim, class T >
std::ostream & operator<< (std::ostream &stream, const Vector< dim, T > &vec)
 
std::ostream & operator<< (std::ostream &stream, const Vector2 &vec)
 Stream operator for Vector2. More...
 
std::ostream & operator<< (std::ostream &stream, const IntVector4 &vec)
 
template<typename T >
std::ostream & operator<< (std::ostream &stream, const Vector3T< T > &vec)
 
std::ostream & operator<< (std::ostream &stream, const Vector4 &vec)
 

Detailed Description

Molecular utility classes.

Typedef Documentation

typedef uint32_t molecular::util::Hash
template<char a, char b>
using molecular::util::Keyword2 = typedef Concatenation<Char<a>, Char<b>>
template<char a, char b, char c, char d, char e>
using molecular::util::Keyword5 = typedef Concatenation<Char<a>, Char<b>, Char<c>, Char<d>, Char<e>>
template<char a, char b, char c, char d, char e, char f>
using molecular::util::Keyword6 = typedef Concatenation<Char<a>, Char<b>, Char<c>, Char<d>, Char<e>, Char<f>>
template<class Storage >
using molecular::util::LittleEndianReadStream = typedef HostReadStream<Storage>
Deprecated:
Most subsystems around molecular now cast file contents to a struct.
using molecular::util::MeshSet = typedef std::vector<Mesh>

Collection of meshes.

using molecular::util::NonWhitespace = typedef Alternation<Alpha, Digit, Char<'_'>, Char<'-'>, Char<'.'>>
using molecular::util::Vector3 = typedef Vector3T<float>
using molecular::util::Vector3d = typedef Vector3T<double>
using molecular::util::Vector3f = typedef Vector3T<float>

Enumeration Type Documentation

Pixel formats for textures etc.

Enumerator
PF_NONE 
PF_UNSUPPORTED 
PF_ANY 

Choose default format.

PF_ANY_RGB 
PF_ANY_RGBA 
PF_R8G8B8 

24 bit RGB

PF_R8G8B8A8 

32 bit RGBA

PF_B8G8R8 

24 bit BGR

PF_B8G8R8A8 

24 bit BGRA

PF_R4G4B4A4 

16 bit RGBA, 4 bit per component

PF_R5G5B5A1 

15 bit RGB and 1 bit alpha

PF_L8 

8 bits luminance

PF_L32_UNSIGNED 

32 bit unsigned integer luminance

PF_L8A8 

8 bits luminance, 8 bits alpha

PF_A8 

8 bits alpha

PF_R8G8B8_SIGNED 

Signed integer.

PF_R8G8B8_SIGNED_NORM 

Signed normalized.

PF_R8G8B8A8_UNSIGNED 

Unsigned integer.

PF_L_FLOAT32 

32 bit float luminance

PF_RGB_FLOAT16 

16 bit float RGB

PF_RGB_FLOAT32 

32 bit float RGB

PF_RGBA_FLOAT16 

16 bit float RGBA

PF_RGBA_FLOAT32 

32 bit float RGBA

PF_DEPTH_16 

16 bit integer depth buffer

PF_DEPTH_24 

24 bit integer depth buffer

PF_DEPTH_32 

32 bit integer depth buffer

PF_DEPTH_FLOAT32 

32 bit float depth buffer

PF_STENCIL_8 

8 bit stencil buffer

PF_RGB_DXT1 

S3 Texture Compression DXT1, SRGB.

PF_RGBA_DXT1 

S3TC DXT1 with alpha, SRGB.

PF_RGBA_DXT3 

S3TC DXT3, SRGB.

PF_RGBA_DXT5 

S3TC DXT5, SRGB.

PF_RGB_ETC1 

Ericsson Texture Compression v1, SRGB.

PF_RGB_ETC2 

Ericsson Texture Compression v2, SRGB.

PF_RGBA_ETC2 

Ericsson Texture Compression v2 with Alpha, SRGB.

PF_RGB_DXT1_LINEAR 

S3 Texture Compression DXT1, linear color space.

PF_RGBA_DXT1_LINEAR 

S3 Texture Compression DXT1 with alpha, linear color space.

PF_RGBA_DXT3_LINEAR 

S3 Texture Compression DXT3, linear color space.

PF_RGBA_DXT5_LINEAR 

S3 Texture Compression DXT5, linear color space.

PF_RGB_ETC1_LINEAR 

Ericsson Texture Compression v1, linear color space.

PF_RGB_ETC2_LINEAR 

Ericsson Texture Compression v2, linear color space.

PF_RGBA_ETC2_LINEAR 

Ericsson Texture Compression v2 with Alpha, linear color space.

PF_NONE 
PF_UNSUPPORTED 
PF_ANY 

Choose default format.

PF_ANY_RGB 
PF_ANY_RGBA 
PF_R8G8B8 

24 bit RGB

PF_R8G8B8A8 

32 bit RGBA

PF_B8G8R8 

24 bit BGR

PF_B8G8R8A8 

24 bit BGRA

PF_R4G4B4A4 

16 bit RGBA, 4 bit per component

PF_R5G5B5A1 

15 bit RGB and 1 bit alpha

PF_L8 

8 bits luminance

PF_L32_UNSIGNED 

32 bit unsigned integer luminance

PF_L8A8 

8 bits luminance, 8 bits alpha

PF_A8 

8 bits alpha

PF_R8G8B8_SIGNED 

Signed integer.

PF_R8G8B8_SIGNED_NORM 

Signed normalized.

PF_R8G8B8A8_UNSIGNED 

Unsigned integer.

PF_L_FLOAT32 

32 bit float luminance

PF_RGB_FLOAT16 

16 bit float RGB

PF_RGB_FLOAT32 

32 bit float RGB

PF_RGBA_FLOAT16 

16 bit float RGBA

PF_RGBA_FLOAT32 

32 bit float RGBA

PF_DEPTH_16 

16 bit integer depth buffer

PF_DEPTH_24 

24 bit integer depth buffer

PF_DEPTH_32 

32 bit integer depth buffer

PF_DEPTH_FLOAT32 

32 bit float depth buffer

PF_STENCIL_8 

8 bit stencil buffer

PF_RGB_DXT1 

S3 Texture Compression DXT1, SRGB.

PF_RGBA_DXT1 

S3TC DXT1 with alpha, SRGB.

PF_RGBA_DXT3 

S3TC DXT3, SRGB.

PF_RGBA_DXT5 

S3TC DXT5, SRGB.

PF_RGB_ETC1 

Ericsson Texture Compression v1, SRGB.

PF_RGB_ETC2 

Ericsson Texture Compression v2, SRGB.

PF_RGBA_ETC2 

Ericsson Texture Compression v2 with Alpha, SRGB.

PF_RGB_DXT1_LINEAR 

S3 Texture Compression DXT1, linear color space.

PF_RGBA_DXT1_LINEAR 

S3 Texture Compression DXT1 with alpha, linear color space.

PF_RGBA_DXT3_LINEAR 

S3 Texture Compression DXT3, linear color space.

PF_RGBA_DXT5_LINEAR 

S3 Texture Compression DXT5, linear color space.

PF_RGB_ETC1_LINEAR 

Ericsson Texture Compression v1, linear color space.

PF_RGB_ETC2_LINEAR 

Ericsson Texture Compression v2, linear color space.

PF_RGBA_ETC2_LINEAR 

Ericsson Texture Compression v2 with Alpha, linear color space.

Pixel formats for textures etc.

Enumerator
PF_NONE 
PF_UNSUPPORTED 
PF_ANY 

Choose default format.

PF_ANY_RGB 
PF_ANY_RGBA 
PF_R8G8B8 

24 bit RGB

PF_R8G8B8A8 

32 bit RGBA

PF_B8G8R8 

24 bit BGR

PF_B8G8R8A8 

24 bit BGRA

PF_R4G4B4A4 

16 bit RGBA, 4 bit per component

PF_R5G5B5A1 

15 bit RGB and 1 bit alpha

PF_L8 

8 bits luminance

PF_L32_UNSIGNED 

32 bit unsigned integer luminance

PF_L8A8 

8 bits luminance, 8 bits alpha

PF_A8 

8 bits alpha

PF_R8G8B8_SIGNED 

Signed integer.

PF_R8G8B8_SIGNED_NORM 

Signed normalized.

PF_R8G8B8A8_UNSIGNED 

Unsigned integer.

PF_L_FLOAT32 

32 bit float luminance

PF_RGB_FLOAT16 

16 bit float RGB

PF_RGB_FLOAT32 

32 bit float RGB

PF_RGBA_FLOAT16 

16 bit float RGBA

PF_RGBA_FLOAT32 

32 bit float RGBA

PF_DEPTH_16 

16 bit integer depth buffer

PF_DEPTH_24 

24 bit integer depth buffer

PF_DEPTH_32 

32 bit integer depth buffer

PF_DEPTH_FLOAT32 

32 bit float depth buffer

PF_STENCIL_8 

8 bit stencil buffer

PF_RGB_DXT1 

S3 Texture Compression DXT1, SRGB.

PF_RGBA_DXT1 

S3TC DXT1 with alpha, SRGB.

PF_RGBA_DXT3 

S3TC DXT3, SRGB.

PF_RGBA_DXT5 

S3TC DXT5, SRGB.

PF_RGB_ETC1 

Ericsson Texture Compression v1, SRGB.

PF_RGB_ETC2 

Ericsson Texture Compression v2, SRGB.

PF_RGBA_ETC2 

Ericsson Texture Compression v2 with Alpha, SRGB.

PF_RGB_DXT1_LINEAR 

S3 Texture Compression DXT1, linear color space.

PF_RGBA_DXT1_LINEAR 

S3 Texture Compression DXT1 with alpha, linear color space.

PF_RGBA_DXT3_LINEAR 

S3 Texture Compression DXT3, linear color space.

PF_RGBA_DXT5_LINEAR 

S3 Texture Compression DXT5, linear color space.

PF_RGB_ETC1_LINEAR 

Ericsson Texture Compression v1, linear color space.

PF_RGB_ETC2_LINEAR 

Ericsson Texture Compression v2, linear color space.

PF_RGBA_ETC2_LINEAR 

Ericsson Texture Compression v2 with Alpha, linear color space.

PF_NONE 
PF_UNSUPPORTED 
PF_ANY 

Choose default format.

PF_ANY_RGB 
PF_ANY_RGBA 
PF_R8G8B8 

24 bit RGB

PF_R8G8B8A8 

32 bit RGBA

PF_B8G8R8 

24 bit BGR

PF_B8G8R8A8 

24 bit BGRA

PF_R4G4B4A4 

16 bit RGBA, 4 bit per component

PF_R5G5B5A1 

15 bit RGB and 1 bit alpha

PF_L8 

8 bits luminance

PF_L32_UNSIGNED 

32 bit unsigned integer luminance

PF_L8A8 

8 bits luminance, 8 bits alpha

PF_A8 

8 bits alpha

PF_R8G8B8_SIGNED 

Signed integer.

PF_R8G8B8_SIGNED_NORM 

Signed normalized.

PF_R8G8B8A8_UNSIGNED 

Unsigned integer.

PF_L_FLOAT32 

32 bit float luminance

PF_RGB_FLOAT16 

16 bit float RGB

PF_RGB_FLOAT32 

32 bit float RGB

PF_RGBA_FLOAT16 

16 bit float RGBA

PF_RGBA_FLOAT32 

32 bit float RGBA

PF_DEPTH_16 

16 bit integer depth buffer

PF_DEPTH_24 

24 bit integer depth buffer

PF_DEPTH_32 

32 bit integer depth buffer

PF_DEPTH_FLOAT32 

32 bit float depth buffer

PF_STENCIL_8 

8 bit stencil buffer

PF_RGB_DXT1 

S3 Texture Compression DXT1, SRGB.

PF_RGBA_DXT1 

S3TC DXT1 with alpha, SRGB.

PF_RGBA_DXT3 

S3TC DXT3, SRGB.

PF_RGBA_DXT5 

S3TC DXT5, SRGB.

PF_RGB_ETC1 

Ericsson Texture Compression v1, SRGB.

PF_RGB_ETC2 

Ericsson Texture Compression v2, SRGB.

PF_RGBA_ETC2 

Ericsson Texture Compression v2 with Alpha, SRGB.

PF_RGB_DXT1_LINEAR 

S3 Texture Compression DXT1, linear color space.

PF_RGBA_DXT1_LINEAR 

S3 Texture Compression DXT1 with alpha, linear color space.

PF_RGBA_DXT3_LINEAR 

S3 Texture Compression DXT3, linear color space.

PF_RGBA_DXT5_LINEAR 

S3 Texture Compression DXT5, linear color space.

PF_RGB_ETC1_LINEAR 

Ericsson Texture Compression v1, linear color space.

PF_RGB_ETC2_LINEAR 

Ericsson Texture Compression v2, linear color space.

PF_RGBA_ETC2_LINEAR 

Ericsson Texture Compression v2 with Alpha, linear color space.

Function Documentation

template<class Iterator >
void molecular::util::DecrementAndWrap ( Iterator &  it,
Iterator  begin,
Iterator  end 
)
template<class Iterator >
void molecular::util::IncrementAndWrap ( Iterator &  it,
Iterator  begin,
Iterator  end 
)
template<class T >
Range<T> molecular::util::MakeRange ( begin,
end 
)
template<class T >
Range<typename T::iterator> molecular::util::MakeRange ( container)
template<class Iterator , class Predicate >
SkippingIterator<Iterator, Predicate> molecular::util::MakeSkippingIterator ( Iterator  it,
Iterator  end,
Predicate  pred 
)

Simple wrapper around SkippingIterator::SkippingIterator for using template parameter deduction.

constexpr uint32_t molecular::util::operator""_4CC ( const char *  str,
size_t   
)

Four character code string literal.

Little Endian.

constexpr uint32_t molecular::util::operator""_H ( const char *  str,
size_t  length 
)
Quaternion molecular::util::operator* ( const Quaternion::Real  r,
const Quaternion q 
)
inline
template<int rows, int cols, typename T >
Matrix<rows, cols, T> molecular::util::operator* ( f,
Matrix< rows, cols, T >  m 
)

Scalar multiplication.

std::ostream& molecular::util::operator<< ( std::ostream &  stream,
const Vector4 vec 
)
inline
template<typename T >
Log&& molecular::util::operator<< ( Log &&  wrap,
T const &  whatever 
)
std::ostream& molecular::util::operator<< ( std::ostream &  o,
const AxisAlignedBox box 
)
std::ostream& molecular::util::operator<< ( std::ostream &  o,
const Frustum f 
)
std::ostream& molecular::util::operator<< ( std::ostream &  o,
IndexBufferInfo::Mode  mode 
)
inline
template<typename T >
std::ostream& molecular::util::operator<< ( std::ostream &  stream,
const Vector3T< T > &  vec 
)
std::ostream& molecular::util::operator<< ( std::ostream &  o,
const Plane p 
)
inline
std::ostream& molecular::util::operator<< ( std::ostream &  o,
const Plane::IntersectStatus i 
)
inline
std::ostream& molecular::util::operator<< ( std::ostream &  o,
IndexBufferInfo::Type  type 
)
inline
std::ostream& molecular::util::operator<< ( std::ostream &  o,
VertexAttributeInfo::Type  type 
)
inline
template<int dim, class T >
std::ostream& molecular::util::operator<< ( std::ostream &  stream,
const Vector< dim, T > &  vec 
)
inline

Does not work for Vector2, Vector3 etc.

std::ostream& molecular::util::operator<< ( std::ostream &  stream,
const Vector2 vec 
)
inline

Stream operator for Vector2.

std::ostream& molecular::util::operator<< ( std::ostream &  stream,
const IntVector4 vec 
)
inline
template<int rows, int cols, typename T >
std::ostream& molecular::util::operator<< ( std::ostream &  o,
const Matrix< rows, cols, T > &  m 
)
template<class TFileLoader , class TTaskQueue >
Blob molecular::util::SyncFileLoad ( const char *  filename,
TFileLoader &  fileLoader,
TTaskQueue &  queue,
size_t  offset = 0,
size_t  length = 0 
)