Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members |
#include <RenderDriver.h>
Public Member Functions | |
virtual void | beginFrame (Viewport *vp)=0 |
virtual void | beginGeometryCount () |
virtual void | bindShader (Shader *shader) |
Binds a given Shader (but not the parameters). | |
virtual void | convertProjectionMatrix (const core::matrix4 &matrix, core::matrix4 &dest) |
Converts a uniform projection matrix to suitable for this render system. | |
virtual IndexBuffer * | createIndexBuffer (IndexType idxType, u32 numIndexes, resource::BufferUsage usage, bool useShadowBuffer=false)=0 |
Create an index buffer. | |
virtual PixelBuffer * | createPixelBuffer (u32 width, u32 height, u32 depth, resource::PixelFormat format, resource::BufferUsage usage, bool useShadowBuffer=false)=0 |
Create a pixel buffer. | |
virtual RenderWindow * | createRenderWindow (s32 width, s32 height, s32 colorDepth, bool fullScreen, s32 left=0, s32 top=0, bool depthBuffer=true, void *windowId=NULL)=0 |
Creates a new rendering window. | |
virtual VertexBuffer * | createVertexBuffer (u32 vertexSize, u32 numVertices, resource::BufferUsage usage, bool useShadowBuffer=false)=0 |
Create a vertex buffer. | |
virtual void | disableTextureUnit (u32 texUnit) |
Turns off a texture unit. | |
virtual void | disableTextureUnitsFrom (u32 texUnit) |
Turns off all the texture units starting from a given texture unit. | |
virtual void | endFrame ()=0 |
Ends rendering of a frame to the current viewport. | |
virtual void | endGeometryCount () |
virtual u32 | getFaceCount () |
virtual f32 | getHorizontalTexelOffset ()=0 |
Returns the horizontal texel offset value required for mapping texel origins to pixel origins. | |
virtual f32 | getMaximumDepthInputValue ()=0 |
Gets the maximum (farthest) depth value to be used when rendering using identity transforms. | |
virtual f32 | getMinimumDepthInputValue ()=0 |
Gets the minimum (closest) depth value to be used when rendering using identity transforms. | |
virtual u32 | getNumTextureUnits ()=0 |
Return the number of texture units available. | |
core::matrix4 & | getProjectionMatrix () |
virtual u32 | getVertexCount () |
virtual f32 | getVerticalTexelOffset ()=0 |
Returns the vertical texel offset value required for mapping texel origins to pixel origins. | |
core::matrix4 & | getViewMatrix () |
core::matrix4 & | getWorldMatrix () |
virtual void | initialize () |
virtual bool | isShaderBound (ShaderType type) |
Returns whether or not a Shader of the given type is currently bound. | |
virtual void | removeIndexBuffer (IndexBuffer *buf)=0 |
Removes an index buffer. | |
virtual void | removePixelBuffer (PixelBuffer *buf)=0 |
Removes a pixel buffer. | |
virtual void | removeVertexBuffer (VertexBuffer *buf)=0 |
Removes a vertex buffer. | |
virtual void | render (RenderOperation &op) |
virtual void | renderAxes (const core::vector3d &position, const core::vector3d &right, const core::vector3d &target, const core::vector3d &up)=0 |
virtual void | renderBoundingBox (const core::aabox3d &box)=0 |
virtual void | renderBoundingSphere (const core::sphere3d &sphere)=0 |
RenderDriver () | |
virtual void | renderFrustumVolume (const core::vector3d *corners)=0 |
virtual void | renderGrid (u32 lineSpacing, u32 lineNumber)=0 |
virtual void | renderTestPlane (u32 lineSpacing, u32 lineNumber)=0 |
virtual void | renderWorldAxes ()=0 |
virtual void | setAmbientLight (f32 red, f32 green, f32 blue, f32 alpha)=0 |
virtual void | setDepthBufferCheckEnabled (bool enabled=true)=0 |
Sets whether or not the depth buffer check is performed before a pixel write. | |
virtual void | setDepthBufferWriteEnabled (bool enabled=true)=0 |
Sets whether or not the depth buffer is updated after a pixel write. | |
virtual void | setFog (FogMode mode=FM_NONE, const Color &color=Color::White, f32 expDensity=1.0f, f32 linearStart=0.0f, f32 linearEnd=1.0f)=0 |
Sets the fogging mode for future geometry. | |
virtual void | setLightingEnabled (bool enabled)=0 |
virtual void | setLights (const std::vector< Light * > &lights)=0 |
! Sets a list of lights to the renderer. | |
virtual void | setProjectionMatrix (const core::matrix4 &m)=0 |
virtual void | setSceneBlending (SceneBlendFactor sourceFactor, SceneBlendFactor destFactor)=0 |
Sets the global blending factors for combining subsequent renders with the existing frame contents. | |
virtual void | setShadingType (ShadeOptions so)=0 |
virtual void | setSurfaceParams (const Color &ambient, const Color &diffuse, const Color &specular, const Color &emissive, f32 shininess)=0 |
virtual void | setTexture (bool enabled, u32 unit, Texture *tex)=0 |
virtual void | setTextureBlendMode (u32 unit, const LayerBlendMode &bm)=0 |
virtual void | setTextureCoordSet (u32 unit, u32 index) |
Sets the texture coordinate set to use for a texture unit. | |
virtual void | setTextureUnitSettings (u32 texUnit, TextureUnit *tu) |
Utility function for setting all the properties of a texture unit at once. | |
virtual void | setViewMatrix (const core::matrix4 &m)=0 |
virtual void | setViewport (Viewport *vp)=0 |
virtual void | setWorldMatrix (const core::matrix4 &m)=0 |
virtual void | start () |
virtual void | stop () |
virtual void | unbindShader (ShaderType type) |
Unbinds a given Shader. | |
virtual void | updateShaderAutoParameters (Shader *shader, ShaderParamData &data) |
update Shader parameters to a given Shader. | |
virtual | ~RenderDriver () |
Protected Attributes | |
Shader * | mCurrentFragmentShader |
Shader * | mCurrentGeometryShader |
Shader * | mCurrentVertexShader |
u32 | mDisabledTexUnitsFrom |
u32 | mFaceCount |
Light * | mLights [GAME_MAX_SIMULTANEOUS_LIGHTS] |
Color | mManualBlendColors [GAME_MAX_TEXTURE_LAYERS][2] |
core::matrix4 | mProjMatrix |
u32 | mTextureCoordIndex [GAME_MAX_TEXTURE_COORD_SETS] |
u32 | mVertexCount |
core::matrix4 | mViewMatrix |
core::matrix4 | mWorldMatrix |
Defines the functionality of a 3D Rendering API
The RenderSystem class provides a base interface which abstracts the general functionality of the 3D API e.g. Direct3D or OpenGL. Whilst a few of the general methods have implementations, most of this class is abstract, requiring a subclass based on a specific API to be constructed to provide the full functionality.
render::RenderDriver::RenderDriver | ( | ) |
render::RenderDriver::~RenderDriver | ( | ) | [virtual] |
virtual void render::RenderDriver::beginFrame | ( | Viewport * | vp | ) | [pure virtual] |
Signifies the beginning of a frame, ie the start of rendering on a single viewport. Will occur several times per complete frame if multiple viewports exist.
Referenced by render::RenderManager::beginFrame().
void render::RenderDriver::beginGeometryCount | ( | ) | [virtual] |
References mFaceCount, and mVertexCount.
Referenced by render::RenderManager::render().
void render::RenderDriver::bindShader | ( | Shader * | shader | ) | [virtual] |
Binds a given Shader (but not the parameters).
References render::Shader::bind(), render::Shader::getShaderType(), mCurrentFragmentShader, mCurrentGeometryShader, mCurrentVertexShader, render::ST_FRAGMENT, render::ST_GEOMETRY, render::ST_VERTEX, and render::Shader::unbind().
Referenced by render::RenderManager::setMaterial().
void render::RenderDriver::convertProjectionMatrix | ( | const core::matrix4 & | matrix, |
core::matrix4 & | dest | ||
) | [virtual] |
Converts a uniform projection matrix to suitable for this render system.
Referenced by render::RenderManager::convertProjectionMatrix().
virtual IndexBuffer* render::RenderDriver::createIndexBuffer | ( | IndexType | idxType, |
u32 | numIndexes, | ||
resource::BufferUsage | usage, | ||
bool | useShadowBuffer = false |
||
) | [pure virtual] |
Create an index buffer.
Referenced by render::RenderManager::createIndexBuffer().
virtual PixelBuffer* render::RenderDriver::createPixelBuffer | ( | u32 | width, |
u32 | height, | ||
u32 | depth, | ||
resource::PixelFormat | format, | ||
resource::BufferUsage | usage, | ||
bool | useShadowBuffer = false |
||
) | [pure virtual] |
Create a pixel buffer.
Referenced by render::RenderManager::createPixelBuffer().
virtual RenderWindow* render::RenderDriver::createRenderWindow | ( | s32 | width, |
s32 | height, | ||
s32 | colorDepth, | ||
bool | fullScreen, | ||
s32 | left = 0 , |
||
s32 | top = 0 , |
||
bool | depthBuffer = true , |
||
void * | windowId = NULL |
||
) | [pure virtual] |
Creates a new rendering window.
Referenced by render::RenderManager::createRenderWindow().
virtual VertexBuffer* render::RenderDriver::createVertexBuffer | ( | u32 | vertexSize, |
u32 | numVertices, | ||
resource::BufferUsage | usage, | ||
bool | useShadowBuffer = false |
||
) | [pure virtual] |
Create a vertex buffer.
Referenced by render::RenderManager::createVertexBuffer().
void render::RenderDriver::disableTextureUnit | ( | u32 | texUnit | ) | [virtual] |
void render::RenderDriver::disableTextureUnitsFrom | ( | u32 | texUnit | ) | [virtual] |
Turns off all the texture units starting from a given texture unit.
References disableTextureUnit(), getNumTextureUnits(), and mDisabledTexUnitsFrom.
Referenced by render::RenderManager::render(), render::RenderManager::renderSingleRenderable(), and render::RenderManager::setMaterial().
virtual void render::RenderDriver::endFrame | ( | ) | [pure virtual] |
Ends rendering of a frame to the current viewport.
Referenced by render::RenderManager::endFrame().
void render::RenderDriver::endGeometryCount | ( | ) | [virtual] |
Referenced by render::RenderManager::render().
u32 render::RenderDriver::getFaceCount | ( | ) | [virtual] |
References mFaceCount.
Referenced by render::RenderManager::render().
virtual f32 render::RenderDriver::getHorizontalTexelOffset | ( | ) | [pure virtual] |
Returns the horizontal texel offset value required for mapping texel origins to pixel origins.
Referenced by render::RenderManager::getHorizontalTexelOffset().
virtual f32 render::RenderDriver::getMaximumDepthInputValue | ( | ) | [pure virtual] |
Gets the maximum (farthest) depth value to be used when rendering using identity transforms.
Referenced by render::RenderManager::getMaximumDepthInputValue().
virtual f32 render::RenderDriver::getMinimumDepthInputValue | ( | ) | [pure virtual] |
Gets the minimum (closest) depth value to be used when rendering using identity transforms.
Referenced by render::RenderManager::getMinimumDepthInputValue().
virtual u32 render::RenderDriver::getNumTextureUnits | ( | ) | [pure virtual] |
Return the number of texture units available.
Referenced by disableTextureUnitsFrom().
core::matrix4 & render::RenderDriver::getProjectionMatrix | ( | ) |
References mProjMatrix.
u32 render::RenderDriver::getVertexCount | ( | ) | [virtual] |
References mVertexCount.
virtual f32 render::RenderDriver::getVerticalTexelOffset | ( | ) | [pure virtual] |
Returns the vertical texel offset value required for mapping texel origins to pixel origins.
Referenced by render::RenderManager::getVerticalTexelOffset().
core::matrix4 & render::RenderDriver::getViewMatrix | ( | ) |
References mViewMatrix.
core::matrix4 & render::RenderDriver::getWorldMatrix | ( | ) |
References mWorldMatrix.
void render::RenderDriver::initialize | ( | ) | [virtual] |
Referenced by render::RenderManager::initializeImpl().
bool render::RenderDriver::isShaderBound | ( | ShaderType | type | ) | [virtual] |
Returns whether or not a Shader of the given type is currently bound.
References mCurrentFragmentShader, mCurrentGeometryShader, mCurrentVertexShader, render::ST_FRAGMENT, render::ST_GEOMETRY, and render::ST_VERTEX.
Referenced by render::RenderManager::setMaterial().
virtual void render::RenderDriver::removeIndexBuffer | ( | IndexBuffer * | buf | ) | [pure virtual] |
Removes an index buffer.
Referenced by render::RenderManager::removeAllIndexBuffers(), and render::RenderManager::removeIndexBuffer().
virtual void render::RenderDriver::removePixelBuffer | ( | PixelBuffer * | buf | ) | [pure virtual] |
Removes a pixel buffer.
Referenced by render::RenderManager::removeAllPixelBuffer(), and render::RenderManager::removePixelBuffer().
virtual void render::RenderDriver::removeVertexBuffer | ( | VertexBuffer * | buf | ) | [pure virtual] |
Removes a vertex buffer.
Referenced by render::RenderManager::removeAllVertexBuffers(), and render::RenderManager::removeVertexBuffer().
void render::RenderDriver::render | ( | RenderOperation & | op | ) | [virtual] |
Render something to the active viewport.
Low-level rendering interface to perform rendering operations. Unlikely to be used directly by client applications, since the SceneManager and various support classes will be responsible for calling this method. Can only be called between _beginScene and _endScene
op,: | A rendering operation instance, which contains details of the operation to be performed. |
References render::IndexData::indexCount, render::RenderOperation::indexData, mFaceCount, mVertexCount, render::RenderOperation::operationType, render::OT_LINE_LIST, render::OT_LINE_STRIP, render::OT_POINT_LIST, render::OT_TRIANGLE_FAN, render::OT_TRIANGLE_LIST, render::OT_TRIANGLE_STRIP, render::RenderOperation::useIndexes, render::VertexData::vertexCount, and render::RenderOperation::vertexData.
Referenced by render::RenderManager::renderSingleOverlay(), render::RenderManager::renderSingleRenderable(), and render::RenderManager::renderVisibleOverlays().
virtual void render::RenderDriver::renderAxes | ( | const core::vector3d & | position, |
const core::vector3d & | right, | ||
const core::vector3d & | target, | ||
const core::vector3d & | up | ||
) | [pure virtual] |
Referenced by render::RenderManager::render(), and render::RenderManager::renderSingleRenderable().
virtual void render::RenderDriver::renderBoundingBox | ( | const core::aabox3d & | box | ) | [pure virtual] |
Referenced by render::RenderManager::renderSingleRenderable().
virtual void render::RenderDriver::renderBoundingSphere | ( | const core::sphere3d & | sphere | ) | [pure virtual] |
Referenced by render::RenderManager::renderSingleRenderable().
virtual void render::RenderDriver::renderFrustumVolume | ( | const core::vector3d * | corners | ) | [pure virtual] |
Referenced by render::RenderManager::render().
Referenced by render::RenderManager::render().
virtual void render::RenderDriver::renderTestPlane | ( | u32 | lineSpacing, |
u32 | lineNumber | ||
) | [pure virtual] |
Referenced by render::RenderManager::render().
virtual void render::RenderDriver::renderWorldAxes | ( | ) | [pure virtual] |
Referenced by render::RenderManager::render().
virtual void render::RenderDriver::setAmbientLight | ( | f32 | red, |
f32 | green, | ||
f32 | blue, | ||
f32 | alpha | ||
) | [pure virtual] |
Referenced by render::RenderManager::render().
virtual void render::RenderDriver::setDepthBufferCheckEnabled | ( | bool | enabled = true | ) | [pure virtual] |
Sets whether or not the depth buffer check is performed before a pixel write.
Referenced by render::RenderManager::render(), render::RenderManager::renderSingleRenderable(), and render::RenderManager::setMaterial().
virtual void render::RenderDriver::setDepthBufferWriteEnabled | ( | bool | enabled = true | ) | [pure virtual] |
Sets whether or not the depth buffer is updated after a pixel write.
Referenced by render::RenderManager::render(), render::RenderManager::renderSingleRenderable(), and render::RenderManager::setMaterial().
virtual void render::RenderDriver::setFog | ( | FogMode | mode = FM_NONE , |
const Color & | color = Color::White , |
||
f32 | expDensity = 1.0f , |
||
f32 | linearStart = 0.0f , |
||
f32 | linearEnd = 1.0f |
||
) | [pure virtual] |
Sets the fogging mode for future geometry.
Referenced by render::RenderManager::render(), render::RenderManager::renderSingleOverlay(), render::RenderManager::renderSingleRenderable(), render::RenderManager::renderVisibleOverlays(), and render::RenderManager::setMaterial().
virtual void render::RenderDriver::setLightingEnabled | ( | bool | enabled | ) | [pure virtual] |
virtual void render::RenderDriver::setLights | ( | const std::vector< Light * > & | lights | ) | [pure virtual] |
! Sets a list of lights to the renderer.
Referenced by render::RenderManager::renderSingleRenderable().
virtual void render::RenderDriver::setProjectionMatrix | ( | const core::matrix4 & | m | ) | [pure virtual] |
virtual void render::RenderDriver::setSceneBlending | ( | SceneBlendFactor | sourceFactor, |
SceneBlendFactor | destFactor | ||
) | [pure virtual] |
Sets the global blending factors for combining subsequent renders with the existing frame contents.
Referenced by render::RenderManager::render(), render::RenderManager::renderSingleRenderable(), and render::RenderManager::setMaterial().
virtual void render::RenderDriver::setShadingType | ( | ShadeOptions | so | ) | [pure virtual] |
Referenced by render::RenderManager::setMaterial().
virtual void render::RenderDriver::setSurfaceParams | ( | const Color & | ambient, |
const Color & | diffuse, | ||
const Color & | specular, | ||
const Color & | emissive, | ||
f32 | shininess | ||
) | [pure virtual] |
Sets the surface properties to be used for future rendering.
ambient,: | The amount of ambient (sourceless and directionless) light an object reflects. Affected by the color/amount of ambient light in the scene. |
diffuse,: | The amount of light from directed sources that is reflected (affected by color/amount of point, directed and spot light sources) |
specular,: | The amount of specular light reflected. This is also affected by directed light sources but represents the color at the highlights of the object. |
emissive,: | The color of light emitted from the object. Note that this will make an object seem brighter and not dependent on lights in the scene, but it will not act as a light, so will not illuminate other objects. |
shininess,: | A value which only has an effect on specular highlights (so specular must be non-black). The higher this value, the smaller and crisper the specular highlights will be, imitating a more highly polished surface. This value is not constrained to 0.0-1.0, in fact it is likely to be more (10.0 gives a modest sheen to an object). |
Referenced by render::RenderManager::setMaterial().
virtual void render::RenderDriver::setTexture | ( | bool | enabled, |
u32 | unit, | ||
Texture * | tex | ||
) | [pure virtual] |
Sets the status of a single texture stage.
enabled,: | boolean to turn an unit on/off |
unit,: | The index of the texture unit to modify. Multi-texturing hardware can support multiple units. |
tex,: | The the texture to use. |
Referenced by disableTextureUnit(), and setTextureUnitSettings().
virtual void render::RenderDriver::setTextureBlendMode | ( | u32 | unit, |
const LayerBlendMode & | bm | ||
) | [pure virtual] |
Sets the texture blend modes from a TextureUnit.
unit,: | Texture unit. |
bm,: | Details of the blending mode. |
Referenced by setTextureUnitSettings().
Sets the texture coordinate set to use for a texture unit.
References mTextureCoordIndex.
Referenced by setTextureUnitSettings().
void render::RenderDriver::setTextureUnitSettings | ( | u32 | texUnit, |
TextureUnit * | tu | ||
) | [virtual] |
Utility function for setting all the properties of a texture unit at once.
References render::TextureUnit::getAlphaBlendMode(), render::TextureUnit::getColorBlendMode(), render::TextureUnit::getTexture(), render::TextureUnit::getTextureCoordSet(), setTexture(), setTextureBlendMode(), and setTextureCoordSet().
Referenced by render::RenderManager::setMaterial().
virtual void render::RenderDriver::setViewMatrix | ( | const core::matrix4 & | m | ) | [pure virtual] |
Referenced by render::RenderManager::render().
virtual void render::RenderDriver::setViewport | ( | Viewport * | vp | ) | [pure virtual] |
Referenced by render::RenderManager::setCurrentViewport().
virtual void render::RenderDriver::setWorldMatrix | ( | const core::matrix4 & | m | ) | [pure virtual] |
void render::RenderDriver::start | ( | ) | [virtual] |
void render::RenderDriver::stop | ( | ) | [virtual] |
Referenced by render::RenderManager::stop().
void render::RenderDriver::unbindShader | ( | ShaderType | type | ) | [virtual] |
Unbinds a given Shader.
References mCurrentFragmentShader, mCurrentGeometryShader, mCurrentVertexShader, render::ST_FRAGMENT, render::ST_GEOMETRY, render::ST_VERTEX, and render::Shader::unbind().
Referenced by render::RenderManager::render(), render::RenderManager::renderSingleRenderable(), and render::RenderManager::setMaterial().
void render::RenderDriver::updateShaderAutoParameters | ( | Shader * | shader, |
ShaderParamData & | data | ||
) | [virtual] |
update Shader parameters to a given Shader.
References render::Shader::updateAutoParameters().
Shader* render::RenderDriver::mCurrentFragmentShader [protected] |
Referenced by bindShader(), isShaderBound(), RenderDriver(), and unbindShader().
Shader* render::RenderDriver::mCurrentGeometryShader [protected] |
Referenced by bindShader(), isShaderBound(), RenderDriver(), and unbindShader().
Shader* render::RenderDriver::mCurrentVertexShader [protected] |
Referenced by bindShader(), isShaderBound(), RenderDriver(), and unbindShader().
u32 render::RenderDriver::mDisabledTexUnitsFrom [protected] |
Referenced by disableTextureUnitsFrom(), and RenderDriver().
u32 render::RenderDriver::mFaceCount [protected] |
Referenced by beginGeometryCount(), getFaceCount(), and render().
Light* render::RenderDriver::mLights[GAME_MAX_SIMULTANEOUS_LIGHTS] [protected] |
Referenced by RenderDriver().
Color render::RenderDriver::mManualBlendColors[GAME_MAX_TEXTURE_LAYERS][2] [protected] |
core::matrix4 render::RenderDriver::mProjMatrix [protected] |
Referenced by getProjectionMatrix(), and RenderDriver().
u32 render::RenderDriver::mTextureCoordIndex[GAME_MAX_TEXTURE_COORD_SETS] [protected] |
Referenced by RenderDriver(), and setTextureCoordSet().
u32 render::RenderDriver::mVertexCount [protected] |
Referenced by beginGeometryCount(), getVertexCount(), and render().
core::matrix4 render::RenderDriver::mViewMatrix [protected] |
Referenced by getViewMatrix(), and RenderDriver().
core::matrix4 render::RenderDriver::mWorldMatrix [protected] |
Referenced by getWorldMatrix(), and RenderDriver().
The KG Game Engine
Documentation © 2006-2011 by Kat'Oun. Generated on Sat Jul 2 2011 00:50:09 by
Doxygen
(1.7.4)
|