#include <Material.h>
Inheritance diagram for Lamp::Material:
Public Types | |
enum | BlendMode { blendModeDisable = 0, blendModeAdd, blendModeSubtract, blendModeInverseSubtract, blendModeMinimum, blendModeMaximum, blendModeMax } |
ブレンドモード | |
enum | BlendState { blendStateZero = 0, blendStateOne, blendStateSourceColor, blendStateInverseSourceColor, blendStateSourceAlpha, blendStateInverseSourceAlpha, blendStateSourceAlphaSaturate, blendStateDestinationColor, blendStateInverseDestinationColor, blendStateDestinationAlpha, blendStateInverseDestinationAlpha, blendStateMax } |
ブレンドステート | |
enum | FogOption { fogOptionNone = 0, fogOptionDisable, fogOptionBlack, fogOptionMax } |
フォグオプション | |
enum | PipelineMode { pipelineModeNone = 0, pipelineModeFixed, pipelineModeProgrammableShader2 } |
パイプラインモード | |
Public Member Functions | |
virtual int | getReferenceCount () const |
リファレンスカウントの取得 | |
virtual Material * | copy (u_int copyMask=0) const=0 |
コピー | |
virtual void | stateChanged () |
ステート変更フラグを立てる | |
virtual bool | hasStateChanged () const |
ステート変更フラグの取得 | |
virtual int | getParentCount () const |
親の数取得 | |
virtual Mesh * | getParent (int index) const |
親の取得 | |
virtual bool | useLight () const |
ライトを使用するか | |
virtual void | setPriority (int priority) |
優先度の設定 | |
virtual int | getPriority () const |
優先度の取得 | |
virtual void | setBlendMode (BlendMode blendMode) |
ブレンドモードの設定 | |
virtual BlendMode | getBlendMode () const |
ブレンドモードの取得 | |
virtual bool | isBlendEnabled () const |
ブレンドが有効か | |
virtual void | setAlpha (float alpha) |
アルファの設定 | |
virtual float | getAlpha () const |
アルファの取得 | |
virtual void | setBlendSource (BlendState blendSource) |
ブレンドソースの設定 | |
virtual BlendState | getBlendSource () const |
ブレンドソースの取得 | |
virtual void | setBlendDestination (BlendState blendDestination) |
ブレンドデスティネーションの設定 | |
virtual BlendState | getBlendDestination () const |
ブレンドデスティネーションの取得 | |
virtual void | setZWrite (bool zWrite) |
Z書き込みの設定. | |
virtual bool | useZWrite () const |
Z書き込みの取得. | |
virtual void | setZTest (bool zTest) |
Zテストの設定. | |
virtual bool | useZTest () const |
Zテストの取得. | |
virtual void | setFogOption (FogOption fogOption) |
フォグオプションの設定 | |
virtual FogOption | getFogOption () const |
フォグオプションの取得 | |
virtual void | setLightMask (u_int lightMask) |
ライトマスクの設定 | |
virtual u_int | getLightMask () const |
ライトマスクの取得 | |
virtual PipelineMode | getPipelineMode () const |
パイプラインモードの取得 | |
virtual bool | initializeGraphicsDeviceObjects () |
デバイスオブジェクトの初期化 | |
virtual void | deleteGraphicsDeviceObjects () |
デバイスオブジェクトの削除 | |
virtual bool | restoreGraphicsDeviceObjects () |
デバイスオブジェクトのリストア | |
virtual void | invalidateGraphicsDeviceObjects () |
デバイスオブジェクトの無効化 | |
virtual bool | isMaterial () const |
マテリアルかどうか | |
virtual bool | isBasicMaterial () const |
基本マテリアルかどうか | |
virtual BasicMaterial * | castBasicMaterial () const |
基本マテリアルへのキャスト | |
Static Public Member Functions | |
int | recursiveDestroy (Material *material) |
再帰的破棄 | |
const String & | blendModeToString (BlendMode blendMode) |
ブレンドモードから文字列への変換 | |
BlendMode | blendModeFromString (const String &blendModeString) |
文字列からブレンドモードへの変換 | |
const String & | blendStateToString (BlendState blendState) |
ブレンドステートから文字列への変換 | |
BlendState | blendStateFromString (const String &blendStateString) |
文字列からブレンドステートへの変換 | |
const String & | fogOptionToString (FogOption fogOption) |
フォグオプションから文字列への変換 | |
FogOption | fogOptionFromString (const String &fogOptionString) |
文字列からフォグオプションへの変換 | |
Protected Member Functions | |
Material (const String &name, Scene *scene) | |
コンストラクタ | |
virtual | ~Material () |
デストラクタ | |
virtual void | copyMaterialValue (Material *destination) const |
マテリアルの値コピー | |
virtual int | destroyChildren ()=0 |
子の破棄 | |
virtual void | drawSetup (DrawRequest *request) |
描画のセットアップ | |
virtual void | draw (DrawRequest *request)=0 |
描画 | |
virtual void | buildStateBlock (Direct3DStateBlock **startBlock, Direct3DStateBlock **endBlock)=0 |
ステートブロックの構築 | |
virtual void | releaseStateBlock () |
ステートブロックの解放 | |
virtual void | setPipelineMode (PipelineMode pipelineMode) |
パイプラインモードの設定 | |
virtual int | addReference (Mesh *parent) |
参照の追加 | |
virtual int | removeReference (Mesh *parent) |
参照の削除 | |
virtual Texture * | setTextureReferense (Texture *nowTexture, Texture *newTexture) |
テクスチャリファレンスの設定 | |
Friends | |
class | SceneObjectManagerTemplate< Material > |
class | MaterialManager |
class | Mesh |
class | Renderer |
Definition at line 43 of file Material.h.
|
コンストラクタ
Definition at line 68 of file Material.cpp. References NULL. |
|
参照の追加
Definition at line 498 of file Material.h. References Lamp::ArrayList< Mesh * >::add(), and getParentCount(). Referenced by Lamp::Mesh::setMaterial(). |
|
文字列からブレンドモードへの変換
Definition at line 161 of file Material.cpp. References BlendMode, Lamp::String::equals(), and ErrorOut. |
|
ブレンドモードから文字列への変換
Definition at line 154 of file Material.cpp. References Assert. |
|
文字列からブレンドステートへの変換
Definition at line 180 of file Material.cpp. References BlendState, Lamp::String::equals(), and ErrorOut. |
|
ブレンドステートから文字列への変換
Definition at line 173 of file Material.cpp. References Assert. |
|
ステートブロックの構築
Implemented in Lamp::BasicMaterial. Referenced by restoreGraphicsDeviceObjects(). |
|
基本マテリアルへのキャスト
Definition at line 420 of file Material.h. References isBasicMaterial(), and NULL. Referenced by Lamp::TextSceneLoader::readBasicMaterialLink(), Lamp::BinarySceneLoader::readBasicMaterialLink(), Lamp::TextSceneSaver::writeMaterialLinkList(), Lamp::BinarySceneSaver::writeMaterialLinkList(), Lamp::TextSceneSaver::writeMaterialList(), and Lamp::BinarySceneSaver::writeMaterialList(). |
|
コピー
Implemented in Lamp::BasicMaterial. Referenced by Lamp::Mesh::copyMeshValue(). |
|
マテリアルの値コピー
Definition at line 83 of file Material.cpp. References setAlpha(), setBlendDestination(), setBlendMode(), setBlendSource(), setFogOption(), setLightMask(), setPriority(), setZTest(), and setZWrite(). Referenced by Lamp::BasicMaterial::copyBasicMaterial(). |
|
子の破棄
Implemented in Lamp::BasicMaterial. Referenced by recursiveDestroy(). |
|
描画
Implemented in Lamp::BasicMaterial. Referenced by Lamp::Renderer::rendering(). |
|
描画のセットアップ
Definition at line 140 of file Material.cpp. References drawEnd(), Lamp::DrawRequest::getPreMaterial(), Lamp::DrawRequest::isMaterialChanged(), and NULL. Referenced by Lamp::BasicMaterial::draw(). |
|
文字列からフォグオプションへの変換
Definition at line 199 of file Material.cpp. References Lamp::String::equals(), ErrorOut, and FogOption. |
|
フォグオプションから文字列への変換
Definition at line 192 of file Material.cpp. References Assert. |
|
アルファの取得
Definition at line 190 of file Material.h. Referenced by Lamp::BasicShaderFixed::buildStateBlock(), Lamp::TextSceneSaver::writeMaterial(), and Lamp::BinarySceneSaver::writeMaterial(). |
|
ブレンドデスティネーションの取得
Definition at line 257 of file Material.h. References BlendState. Referenced by Lamp::Shader::buildMaterialStart(), Lamp::TextSceneSaver::writeMaterial(), and Lamp::BinarySceneSaver::writeMaterial(). |
|
ブレンドモードの取得
Definition at line 166 of file Material.h. References BlendMode. Referenced by Lamp::Shader::buildMaterialStart(), Lamp::TextSceneSaver::writeMaterial(), and Lamp::BinarySceneSaver::writeMaterial(). |
|
ブレンドソースの取得
Definition at line 239 of file Material.h. References BlendState. Referenced by Lamp::Shader::buildMaterialStart(), Lamp::TextSceneSaver::writeMaterial(), and Lamp::BinarySceneSaver::writeMaterial(). |
|
フォグオプションの取得
Definition at line 336 of file Material.h. References FogOption. Referenced by Lamp::FixedShader::resetFogOptionFixed(), Lamp::FixedShader::setFogOptionFixed(), Lamp::TextSceneSaver::writeMaterial(), and Lamp::BinarySceneSaver::writeMaterial(). |
|
ライトマスクの取得
Definition at line 351 of file Material.h. References u_int. Referenced by Lamp::DrawRequest::getAmbientColor(), Lamp::Scene::getLocalLightList(), Lamp::CollisionConverter::setCollisionLeafData(), Lamp::FixedShader::setupFixedLight(), Lamp::TextSceneSaver::writeMaterial(), and Lamp::BinarySceneSaver::writeMaterial(). |
|
親の取得
Definition at line 95 of file Material.h. References Assert, Lamp::ArrayList< Mesh * >::get(), and getParentCount(). |
|
親の数取得
Definition at line 88 of file Material.h. References Lamp::ArrayList< Mesh * >::getCount(). Referenced by addReference(), getParent(), and removeReference(). |
|
パイプラインモードの取得
Definition at line 367 of file Material.h. References Assert, and PipelineMode. Referenced by Lamp::DrawRequest::isPipelineModeChanged(). |
|
優先度の取得
Definition at line 122 of file Material.h. Referenced by Lamp::Renderer::sortMeshList(), Lamp::TextSceneSaver::writeMaterial(), and Lamp::BinarySceneSaver::writeMaterial(). |
|
リファレンスカウントの取得
Implements Lamp::SceneObject. Definition at line 54 of file Material.h. References Lamp::ArrayList< Mesh * >::getCount(). Referenced by Lamp::SceneLogicCheckFilter::filterMaterial(), and recursiveDestroy(). |
|
ステート変更フラグの取得
Definition at line 81 of file Material.h. |
|
デバイスオブジェクトの初期化
Implements Lamp::GraphicsDeviceObjectHolder. Definition at line 379 of file Material.h. Referenced by Lamp::MaterialManager::initializeGraphicsDeviceObjects(). |
|
基本マテリアルかどうか
Reimplemented in Lamp::BasicMaterial. Definition at line 414 of file Material.h. Referenced by castBasicMaterial(), Lamp::TextSceneSaver::writeMaterialLinkList(), Lamp::BinarySceneSaver::writeMaterialLinkList(), Lamp::TextSceneSaver::writeMaterialList(), and Lamp::BinarySceneSaver::writeMaterialList(). |
|
ブレンドが有効か
Definition at line 172 of file Material.h. Referenced by Lamp::Shader::buildMaterialStart(), Lamp::DrawRequest::isBlendEnabled(), and Lamp::Renderer::sortMeshList(). |
|
マテリアルかどうか
Reimplemented from Lamp::SceneObject. Definition at line 407 of file Material.h. |
|
再帰的破棄
Definition at line 96 of file Material.cpp. References Assert, Lamp::SceneObjectManagerTemplate< Material >::destroy(), destroyChildren(), Lamp::Scene::getMaterialManager(), getReferenceCount(), Lamp::SceneObject::getScene(), and NULL. |
|
参照の削除
Definition at line 508 of file Material.h. References getParentCount(), and Lamp::ArrayList< Mesh * >::removeByValue(). Referenced by Lamp::Mesh::setMaterial(). |
|
デバイスオブジェクトのリストア
Implements Lamp::GraphicsDeviceObjectHolder. Definition at line 390 of file Material.h. References buildStateBlock(). Referenced by Lamp::MaterialManager::restoreGraphicsDeviceObjects(). |
|
アルファの設定
Definition at line 181 of file Material.h. References stateChanged(). Referenced by copyMaterialValue(), Lamp::TextSceneLoader::readMaterial(), and Lamp::BinarySceneLoader::readMaterial(). |
|
ブレンドデスティネーションの設定
Definition at line 246 of file Material.h. References Assert, and stateChanged(). Referenced by copyMaterialValue(), Lamp::TextSceneLoader::readMaterial(), and Lamp::BinarySceneLoader::readMaterial(). |
|
ブレンドモードの設定
Definition at line 157 of file Material.h. References stateChanged(). Referenced by copyMaterialValue(), Lamp::TextSceneLoader::readMaterial(), and Lamp::BinarySceneLoader::readMaterial(). |
|
ブレンドソースの設定
Definition at line 228 of file Material.h. References Assert, and stateChanged(). Referenced by copyMaterialValue(), Lamp::TextSceneLoader::readMaterial(), and Lamp::BinarySceneLoader::readMaterial(). |
|
フォグオプションの設定
Definition at line 325 of file Material.h. References Assert, and stateChanged(). Referenced by copyMaterialValue(), Lamp::TextSceneLoader::readMaterial(), and Lamp::BinarySceneLoader::readMaterial(). |
|
ライトマスクの設定
Definition at line 345 of file Material.h. Referenced by copyMaterialValue(), Lamp::TextSceneLoader::readMaterial(), and Lamp::BinarySceneLoader::readMaterial(). |
|
パイプラインモードの設定
Definition at line 487 of file Material.h. References Assert. Referenced by Lamp::BasicMaterial::buildStateBlock(), and Lamp::BasicMaterial::draw(). |
|
優先度の設定
Definition at line 113 of file Material.h. References stateChanged(). Referenced by copyMaterialValue(), Lamp::TextSceneLoader::readMaterial(), and Lamp::BinarySceneLoader::readMaterial(). |
|
テクスチャリファレンスの設定
Definition at line 213 of file Material.cpp. References Lamp::Texture::addReference(), NULL, Lamp::Texture::removeReference(), and stateChanged(). Referenced by Lamp::BasicMaterial::setBaseTexture(), Lamp::BasicMaterial::setGlossTexture(), Lamp::BasicMaterial::setLightTexture(), and Lamp::BasicMaterial::setStainTexture(). |
|
Zテストの設定.
Definition at line 284 of file Material.h. References stateChanged(). Referenced by copyMaterialValue(), Lamp::TextSceneLoader::readMaterial(), and Lamp::BinarySceneLoader::readMaterial(). |
|
Z書き込みの設定.
Definition at line 268 of file Material.h. References stateChanged(). Referenced by copyMaterialValue(), Lamp::TextSceneLoader::readMaterial(), and Lamp::BinarySceneLoader::readMaterial(). |
|
ライトを使用するか
Definition at line 106 of file Material.h. Referenced by Lamp::Renderer::rendering(), and Lamp::FixedShader::setupFixedLight(). |
|
Zテストの取得.
Definition at line 293 of file Material.h. Referenced by Lamp::Shader::buildMaterialStart(), Lamp::TextSceneSaver::writeMaterial(), and Lamp::BinarySceneSaver::writeMaterial(). |
|
Z書き込みの取得.
Definition at line 277 of file Material.h. Referenced by Lamp::Shader::buildMaterialStart(), Lamp::TextSceneSaver::writeMaterial(), and Lamp::BinarySceneSaver::writeMaterial(). |