Pioneer
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
Graphics Namespace Reference

Namespaces

 Drawables
 
 Dummy
 
 OGL
 

Classes

class  RendererDummy
 
class  TextureDummy
 
class  Frustum
 
struct  Settings
 
struct  VideoMode
 
struct  Viewport
 
struct  ScreendumpState
 
class  Light
 
class  MaterialDescriptor
 
class  Material
 
struct  GenGasGiantColourMaterialParameters
 
class  GLDebug
 
class  RendererOGL
 
class  Renderer
 
struct  RenderStateDesc
 
class  RenderState
 
struct  RenderTargetDesc
 
class  RenderTarget
 
class  Stats
 
struct  TextureCubeData
 
class  TextureDescriptor
 
class  Texture
 
class  TextureBuilder
 
class  VertexArray
 
struct  VertexAttribDesc
 
struct  VertexBufferDesc
 
class  Mappable
 
class  VertexBuffer
 
class  IndexBuffer
 
class  InstanceBuffer
 

Typedefs

typedef Renderer *(* RendererCreateFunc) (const Settings &vs)
 
typedef std::vector< std::pair< MaterialDescriptor, OGL::Program * > >::const_iterator ProgramIterator
 
typedef Uint32 AttributeSet
 

Enumerations

enum  RendererType { RENDERER_DUMMY , RENDERER_OPENGL_3x , MAX_RENDERER_TYPE }
 
enum  EffectType {
  EFFECT_DEFAULT , EFFECT_VTXCOLOR , EFFECT_UI , EFFECT_STARFIELD ,
  EFFECT_PLANETRING , EFFECT_GEOSPHERE_TERRAIN , EFFECT_GEOSPHERE_TERRAIN_WITH_LAVA , EFFECT_GEOSPHERE_TERRAIN_WITH_WATER ,
  EFFECT_GEOSPHERE_SKY , EFFECT_GEOSPHERE_STAR , EFFECT_GASSPHERE_TERRAIN , EFFECT_FRESNEL_SPHERE ,
  EFFECT_SHIELD , EFFECT_SKYBOX , EFFECT_SPHEREIMPOSTOR , EFFECT_GEN_GASGIANT_TEXTURE ,
  EFFECT_BILLBOARD_ATLAS , EFFECT_BILLBOARD
}
 
enum  MaterialQuality { HAS_ATMOSPHERE = 1 << 0 , HAS_ECLIPSES = 1 << 1 , HAS_HEAT_GRADIENT = 1 << 2 }
 
enum  TextureFormat {
  TEXTURE_NONE , TEXTURE_RGBA_8888 , TEXTURE_RGB_888 , TEXTURE_LUMINANCE_ALPHA_88 ,
  TEXTURE_INTENSITY_8 , TEXTURE_DXT1 , TEXTURE_DXT5 , TEXTURE_DEPTH
}
 
enum  TextureSampleMode { LINEAR_CLAMP , NEAREST_CLAMP , LINEAR_REPEAT , NEAREST_REPEAT }
 
enum  TextureType { TEXTURE_2D , TEXTURE_CUBE_MAP , TEXTURE_2D_ARRAY }
 
enum  VertexAttrib {
  ATTRIB_NONE = 0 , ATTRIB_POSITION = (1u << 0) , ATTRIB_NORMAL = (1u << 1) , ATTRIB_DIFFUSE = (1u << 2) ,
  ATTRIB_UV0 = (1u << 3) , ATTRIB_TANGENT = (1u << 5)
}
 
enum  VertexAttribFormat {
  ATTRIB_FORMAT_NONE = 0 , ATTRIB_FORMAT_FLOAT2 , ATTRIB_FORMAT_FLOAT3 , ATTRIB_FORMAT_FLOAT4 ,
  ATTRIB_FORMAT_UBYTE4
}
 
enum  BufferUsage { BUFFER_USAGE_STATIC , BUFFER_USAGE_DYNAMIC }
 
enum  BufferMapMode { BUFFER_MAP_NONE , BUFFER_MAP_WRITE , BUFFER_MAP_READ }
 
enum  PrimitiveType {
  POINTS = 0 , LINE_SINGLE , LINE_LOOP , LINE_STRIP ,
  TRIANGLES , TRIANGLE_STRIP , TRIANGLE_FAN
}
 
enum  BlendMode : uint32_t {
  BLEND_SOLID , BLEND_ADDITIVE , BLEND_ALPHA , BLEND_ALPHA_ONE ,
  BLEND_ALPHA_PREMULT , BLEND_SET_ALPHA , BLEND_DEST_ALPHA
}
 
enum  FaceCullMode : uint32_t { CULL_BACK , CULL_FRONT , CULL_NONE }
 

Functions

const char * RendererNameFromType (const RendererType rType)
 
void RegisterRenderer (RendererType type, RendererCreateFunc fn)
 
int GetScreenWidth ()
 
int GetScreenHeight ()
 
float GetFov ()
 
void SetFov (float fov)
 
float GetFovFactor ()
 
vector3f ProjectToScreen (const Renderer *r, const vector3f &in)
 
vector3d ProjectToScreen (const Renderer *r, const vector3d &in)
 
RendererInit (Settings vs)
 
void Uninit ()
 
std::vector< VideoModeGetAvailableVideoModes ()
 
bool operator== (const MaterialDescriptor &a, const MaterialDescriptor &b)
 
const char * gl_framebuffer_error_to_string (GLuint st)
 

Variables

MaterialvtxColorMaterial
 
const Uint32 MAX_ATTRIBS = 8
 

Detailed Description

A Vertex Buffer is created by filling out a description struct with desired vertex attributes and calling renderer->CreateVertexBuffer. Can be used in combination with IndexBuffer, for optimal rendering of complex geometry. Call Map to write/read from the buffer, and Unmap to commit the changes. Buffers come in two usage flavors, static and dynamic. Use Static buffer, when the geometry never changes. Avoid mapping a buffer for reading, as it may be slow, especially with static buffers.

Expansion possibilities: range-based Map

Typedef Documentation

◆ AttributeSet

typedef Uint32 Graphics::AttributeSet

◆ ProgramIterator

typedef std::vector<std::pair<MaterialDescriptor, OGL::Program *> >::const_iterator Graphics::ProgramIterator

◆ RendererCreateFunc

typedef Renderer*(* Graphics::RendererCreateFunc) (const Settings &vs)

Enumeration Type Documentation

◆ BlendMode

enum Graphics::BlendMode : uint32_t
Enumerator
BLEND_SOLID 
BLEND_ADDITIVE 
BLEND_ALPHA 
BLEND_ALPHA_ONE 
BLEND_ALPHA_PREMULT 
BLEND_SET_ALPHA 
BLEND_DEST_ALPHA 

◆ BufferMapMode

Enumerator
BUFFER_MAP_NONE 
BUFFER_MAP_WRITE 
BUFFER_MAP_READ 

◆ BufferUsage

Enumerator
BUFFER_USAGE_STATIC 
BUFFER_USAGE_DYNAMIC 

◆ EffectType

Enumerator
EFFECT_DEFAULT 
EFFECT_VTXCOLOR 
EFFECT_UI 
EFFECT_STARFIELD 
EFFECT_PLANETRING 
EFFECT_GEOSPHERE_TERRAIN 
EFFECT_GEOSPHERE_TERRAIN_WITH_LAVA 
EFFECT_GEOSPHERE_TERRAIN_WITH_WATER 
EFFECT_GEOSPHERE_SKY 
EFFECT_GEOSPHERE_STAR 
EFFECT_GASSPHERE_TERRAIN 
EFFECT_FRESNEL_SPHERE 
EFFECT_SHIELD 
EFFECT_SKYBOX 
EFFECT_SPHEREIMPOSTOR 
EFFECT_GEN_GASGIANT_TEXTURE 
EFFECT_BILLBOARD_ATLAS 
EFFECT_BILLBOARD 

◆ FaceCullMode

enum Graphics::FaceCullMode : uint32_t
Enumerator
CULL_BACK 
CULL_FRONT 
CULL_NONE 

◆ MaterialQuality

Enumerator
HAS_ATMOSPHERE 
HAS_ECLIPSES 
HAS_HEAT_GRADIENT 

◆ PrimitiveType

Enumerator
POINTS 
LINE_SINGLE 
LINE_LOOP 
LINE_STRIP 
TRIANGLES 
TRIANGLE_STRIP 
TRIANGLE_FAN 

◆ RendererType

Enumerator
RENDERER_DUMMY 
RENDERER_OPENGL_3x 
MAX_RENDERER_TYPE 

◆ TextureFormat

Enumerator
TEXTURE_NONE 
TEXTURE_RGBA_8888 
TEXTURE_RGB_888 
TEXTURE_LUMINANCE_ALPHA_88 
TEXTURE_INTENSITY_8 
TEXTURE_DXT1 
TEXTURE_DXT5 
TEXTURE_DEPTH 

◆ TextureSampleMode

Enumerator
LINEAR_CLAMP 
NEAREST_CLAMP 
LINEAR_REPEAT 
NEAREST_REPEAT 

◆ TextureType

Enumerator
TEXTURE_2D 
TEXTURE_CUBE_MAP 
TEXTURE_2D_ARRAY 

◆ VertexAttrib

Enumerator
ATTRIB_NONE 
ATTRIB_POSITION 
ATTRIB_NORMAL 
ATTRIB_DIFFUSE 
ATTRIB_UV0 
ATTRIB_TANGENT 

◆ VertexAttribFormat

Enumerator
ATTRIB_FORMAT_NONE 
ATTRIB_FORMAT_FLOAT2 
ATTRIB_FORMAT_FLOAT3 
ATTRIB_FORMAT_FLOAT4 
ATTRIB_FORMAT_UBYTE4 

Function Documentation

◆ GetAvailableVideoModes()

std::vector< VideoMode > Graphics::GetAvailableVideoModes ( )

◆ GetFov()

float Graphics::GetFov ( )

◆ GetFovFactor()

float Graphics::GetFovFactor ( )

◆ GetScreenHeight()

int Graphics::GetScreenHeight ( )

◆ GetScreenWidth()

int Graphics::GetScreenWidth ( )

◆ gl_framebuffer_error_to_string()

const char * Graphics::gl_framebuffer_error_to_string ( GLuint  st)

◆ Init()

Renderer * Graphics::Init ( Settings  vs)
Here is the call graph for this function:

◆ operator==()

bool Graphics::operator== ( const MaterialDescriptor a,
const MaterialDescriptor b 
)

◆ ProjectToScreen() [1/2]

vector3d Graphics::ProjectToScreen ( const Renderer r,
const vector3d in 
)
Here is the call graph for this function:

◆ ProjectToScreen() [2/2]

vector3f Graphics::ProjectToScreen ( const Renderer r,
const vector3f in 
)

◆ RegisterRenderer()

void Graphics::RegisterRenderer ( RendererType  type,
RendererCreateFunc  fn 
)

◆ RendererNameFromType()

const char * Graphics::RendererNameFromType ( const RendererType  rType)

◆ SetFov()

void Graphics::SetFov ( float  fov)
Here is the call graph for this function:

◆ Uninit()

void Graphics::Uninit ( )

Variable Documentation

◆ MAX_ATTRIBS

const Uint32 Graphics::MAX_ATTRIBS = 8

◆ vtxColorMaterial

Material * Graphics::vtxColorMaterial