neo::render Namespace Reference


Detailed Description

The render engine sub-namespace provides classes and methods for rendering 3D primitives through an API-independent device interface. Implementations of the device for Direct3D and OpenGL in sub-namespaces.


Classes

class  Adapter
 Adapter data. More...
class  BufferLockException
 Exception thrown when lock errors occur. More...
class  BufferReadLock
 Automated buffer read lock. More...
class  Buffer
 Buffer storage. More...
class  BufferManager
 Buffer manager. More...
class  BufferRegion
 Region in buffer. More...
class  Color
 RGBA color. More...
class  Color32
 RGBA color in 32bit unsigned integer. More...
class  DeviceCaps
 Render device capabilities. More...
class  DeviceStateParameterParser
 Device state parameter parser. More...
class  DeviceStatistics
 Render device statistics. More...
class  Device
 Render device. More...
class  Edge
 Edge representation. More...
class  Effect
 Post-process effect. More...
class  IndexBuffer
 Index buffer. More...
class  OcclusionQuery
 Occlusion query interface. More...
class  OpArray
 Render primitive array. More...
class  OpQueue
 Render primitive queue. More...
class  ParameterStateData
 Pipeline parameter state data. More...
class  ParameterData
 Pipeline parameter data. More...
class  Parameter
 Pipeline parameter. More...
class  ParameterBindCallback
 Notification of parameter bindings. More...
class  ParameterBinder
 Pipeline parameter bindings manager. More...
class  ParameterBinderNode
 Hierarchial pipeline parameter bindings. More...
class  ParameterBindPathParser
 Pipeline parameter bind path parser for single major path. More...
class  ParameterBindPathManager
 Pipeline parameter bind path parser. More...
class  ParameterStateBinder
 Parameter binder for varying states. More...
class  PostProcess
 Postprocess effect chain. More...
class  Primitive
 Render primitive. More...
class  ProgramTarget
 Definition of a program for specific targets. More...
class  Program
 Programmable pipeline object. More...
class  PerspectiveProjection
 Perspective projection matrix. More...
class  OrthographicProjection
 Orthographic projection matrix. More...
class  RenderTarget
 Render target. More...
class  RenderTexture
 Renderable texture. More...
class  Resolution
 Resolution data. More...
class  Resource
 Resource allocated by render device. More...
class  Sampler
 Sampler. More...
class  ShaderTarget
 Definition of a shader for specific targets. More...
class  Shader
 Programmable pipeline shader. More...
class  ShaderFixedVertex
 Fixed-function vertex shader. More...
class  ShaderFixedPixel
 Fixed-function pixel shader. More...
class  BlendMode
 Blend mode. More...
class  TestFunction
 Test function identifier. More...
class  WriteMode
 Write mode. More...
class  CullMode
 Culling mode. More...
class  StencilOp
 Stencil operators. More...
class  TechniqueTarget
 Render technique definition. More...
class  Technique
 Render technique. More...
class  Texture
 Texture More...
class  Triangle
 Triangle representation. More...
class  Triangle32
 Triangle representation. More...
class  Vertex
 Vertex with position. More...
class  VertexDiffuse
 Vertex with position and diffuse color. More...
class  VertexTexture
 Vertex with position and 2-dim texture coordinate. More...
class  VertexDiffuseTexture
 Vertex with diffuse color and texture. More...
class  VertexTextureSkin
 Skin vertex with position and 2-dim texture coordinate. More...
class  VertexBuffer
 Vertex buffer. More...
class  VertexElement
 Vertex element. More...
class  VertexDecl
 Vertex declaration. More...
class  Viewport
 Viewport definition. More...
class  WindowBase
 Render window data. More...
class  WindowEvent
 Render window event. More...
class  WindowEventListener
 Window event listener. More...

Namespaces

namespace  effect
 Namespace for pre-defined postprocess rendering effects.

Typedefs

typedef core::HashTable< core::HashString,
ParameterData * > 
ParameterBindings
 Parameter bindings.
typedef core::Array< ParameterData * > ParameterCompiledBindings
 Compiled parameter bindings.

Functions

void compileEdges (const VertexBufferPtr &p_vertices, const IndexBufferPtr &p_indices, unsigned int type, core::Array< Edge > *p_edges)
 Build an edge database.
IndexBufferPtr stripify (const IndexBufferPtr &p_polygons, unsigned int type=Buffer::STATIC|Buffer::NOREADWRITE)
 Stripify polygon buffer.
void compileNormals (const VertexBufferPtr &p_vertices, const IndexBufferPtr &p_polygons, unsigned int type, bool normalize, core::Array< math::Vector3 > *p_normals)
 Compile polygon normal list.
void compileVertexNormals (const VertexBufferPtr &p_vertices, const IndexBufferPtr &p_polygons, unsigned int type, bool normalize, core::Array< math::Vector3 > *p_normals)
 Compile vertex normal list.
void compileTangentsAndBinormals (const VertexBufferPtr &p_vertices, const IndexBufferPtr &p_polygons, unsigned int type, unsigned int layer, bool normalize, core::Array< math::Vector3 > *p_tangents, core::Array< math::Vector3 > *p_binormals, const core::Array< math::Vector3 > &normals=core::Array< math::Vector3 >())
 Compile tangent and binormal list.
void swap (ParameterData &lval, ParameterData &rval)
 Swap parameter data.


Typedef Documentation

typedef core::HashTable< core::HashString, ParameterData* > neo::render::ParameterBindings

Parameter bindings stored as an associative hash table mapping parameter names to parameter data

typedef core::Array< ParameterData* > neo::render::ParameterCompiledBindings

Compiled parameter bindings are an array of parameter data ordered to match the parameters of a given pipeline program

See also:
ParameterBinding::compileParameterBindings


Function Documentation

void neo::render::compileEdges ( const VertexBufferPtr &  p_vertices,
const IndexBufferPtr &  p_indices,
unsigned int  type,
core::Array< Edge > *  p_edges 
)

Build an edge database given vertex and triangle data

Parameters:
p_vertices Vertex buffer
p_indices Index buffer with triangle list
type Primitive type (Primitive::TRIANGLES, Primitive::TRIANGLESTRIP or Primitive::TRIANGLEFAN)
p_edges Edge buffer

IndexBufferPtr neo::render::stripify ( const IndexBufferPtr &  p_polygons,
unsigned int  type = Buffer::STATIC|Buffer::NOREADWRITE 
)

Stripify a polygon buffer into a triangle strip buffer, using degenerate polygons to stich unrelated sub-strips

Parameters:
p_polygons Index buffer with data interpreted as polygons (triangles)
type Target buffer type
Returns:
New index buffer with data interpreted as a single triangle strip

void neo::render::compileNormals ( const VertexBufferPtr &  p_vertices,
const IndexBufferPtr &  p_polygons,
unsigned int  type,
bool  normalize,
core::Array< math::Vector3 > *  p_normals 
)

Compile a polygon normal list from an index buffer, a vertex buffer and primitive type

Parameters:
p_vertices Vertex buffer
p_polygons Index buffer with primitives of given type
type Primitive type (Primitive::TRIANGLES, Primitive::TRIANGLESTRIP or Primitive::TRIANGLEFAN)
normalize Normalize flag (if false normals will not be normalized)
p_normals Array receiving normals

void neo::render::compileVertexNormals ( const VertexBufferPtr &  p_vertices,
const IndexBufferPtr &  p_polygons,
unsigned int  type,
bool  normalize,
core::Array< math::Vector3 > *  p_normals 
)

Compile a vertex normal list from an index buffer, a vertex buffer and primitive type

Parameters:
p_vertices Vertex buffer
p_polygons Index buffer with primitives of given type
type Primitive type (Primitive::TRIANGLES, Primitive::TRIANGLESTRIP or Primitive::TRIANGLEFAN)
normalize Normalize flag (if false normals will not be normalized)
p_normals Array receiving normals

void neo::render::compileTangentsAndBinormals ( const VertexBufferPtr &  p_vertices,
const IndexBufferPtr &  p_polygons,
unsigned int  type,
unsigned int  layer,
bool  normalize,
core::Array< math::Vector3 > *  p_tangents,
core::Array< math::Vector3 > *  p_binormals,
const core::Array< math::Vector3 > &  normals = core::Array< math::Vector3 >() 
)

Compile a tangent and binormal list from an index buffer, a vertex buffer and primitive type. The vertex buffer must have at least one texture coordinate layer from which the tangents and binormals are calculated.

Parameters:
p_vertices Vertex buffer
p_polygons Index buffer with primitives of given type
type Primitive type (Primitive::TRIANGLES, Primitive::TRIANGLESTRIP or Primitive::TRIANGLEFAN)
layer Texture coordinate layer to use
normalize Normalize flag (if false tangents/binormals will not be normalized)
p_tangents Array receiving tangents
p_binormals Array receiving binormals
normals Optional array of vertex normals if not in vertex data

void neo::render::swap ( ParameterData &  lval,
ParameterData &  rval 
) [inline]

Swap contents of two any parameter data

Parameters:
lval First container
rval Second container


Generated on Sat Feb 17 20:51:06 2007 for NeoEngine 2 - Evolution by  doxygen 1.5.1