Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Namespace Members | Compound Members | File Members

RenderingDevice.h

Go to the documentation of this file.
00001 //------------------------------------------------------------------------------
00002 // Lamp : Open source game middleware
00003 // Copyright (C) 2004  Junpei Ohtani ( Email : junpee@users.sourceforge.jp )
00004 //
00005 // This library is free software; you can redistribute it and/or
00006 // modify it under the terms of the GNU Lesser General Public
00007 // License as published by the Free Software Foundation; either
00008 // version 2.1 of the License, or (at your option) any later version.
00009 //
00010 // This library is distributed in the hope that it will be useful,
00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 // Lesser General Public License for more details.
00014 //
00015 // You should have received a copy of the GNU Lesser General Public
00016 // License along with this library; if not, write to the Free Software
00017 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018 //------------------------------------------------------------------------------
00019 
00020 /** @file
00021  * レンダリングデバイスヘッダ
00022  * @author Junpee
00023  */
00024 
00025 #ifndef RENDERING_DEVICE_H_
00026 #define RENDERING_DEVICE_H_
00027 
00028 namespace Lamp{
00029 
00030 class GraphicsDeviceCapacity;
00031 class Fog;
00032 class DirectionalLight;
00033 class PointLight;
00034 class Texture;
00035 
00036 //------------------------------------------------------------------------------
00037 /**
00038  * レンダリングデバイス
00039  */
00040 class RenderingDevice{
00041 friend class LampGraphics;
00042 public:
00043     /// 最大アクティブライト数
00044     static const int maxActiveLightCount_;
00045 
00046     //--------------------------------------------------------------------------
00047     /**
00048      * インスタンス取得
00049      * @return インスタンス
00050      */
00051     static RenderingDevice* getInstance(){
00052         Assert(instance_ != NULL);
00053         return instance_;
00054     }
00055 
00056     //--------------------------------------------------------------------------
00057     // ステート設定
00058     //--------------------------------------------------------------------------
00059     /**
00060      * レンダーステートの設定
00061      * @param type レンダーステートタイプ
00062      * @param state レンダーステート
00063      */
00064     virtual void setRenderState(D3DRENDERSTATETYPE type, u_int state);
00065 
00066     /**
00067      * テクスチャステートの設定
00068      * @param stage ステージ
00069      * @param type テクスチャステートタイプ
00070      * @param state テクスチャステート
00071      */
00072     virtual void setTextureState(
00073         u_int stage, D3DTEXTURESTAGESTATETYPE type, u_int state);
00074 
00075     /**
00076      * サンプラステートの設定
00077      * @param stage ステージ
00078      * @param type サンプラステートタイプ
00079      * @param state サンプラステート
00080      */
00081     virtual void setSamplerState(
00082         u_int stage, D3DSAMPLERSTATETYPE type, u_int state);
00083 
00084     //--------------------------------------------------------------------------
00085     // ステートブロック関連
00086     //--------------------------------------------------------------------------
00087     /**
00088      * ステートブロックの開始
00089      */
00090     virtual void beginStateBlock();
00091 
00092     /**
00093      * ステートブロックの終了
00094      * @return ステートブロック
00095      */
00096     virtual Direct3DStateBlock* endStateBlock();
00097 
00098     /**
00099      * ステートブロックの適用
00100      * @param stateBlock ステートブロック
00101      */
00102     virtual void applyStateBlock(Direct3DStateBlock* stateBlock);
00103 
00104     /**
00105      * デフォルトステートブロックの適用
00106      */
00107     virtual void applyDefaultStateBlock(){
00108         applyStateBlock(defaultStateBlock_);
00109     }
00110 
00111     //--------------------------------------------------------------------------
00112     // レンダーターゲット
00113     //--------------------------------------------------------------------------
00114     /**
00115      * レンダーターゲットサイズの取得
00116      * @return レンダーターゲットサイズ
00117      */
00118     virtual DimensionI getRenderTargetSize();
00119 
00120     //--------------------------------------------------------------------------
00121     // シーン関連
00122     //--------------------------------------------------------------------------
00123     /**
00124      * シーンの開始
00125      * @return 成功すればtrueを返す
00126      */
00127     virtual bool beginScene();
00128 
00129     /**
00130      * シーンの終了
00131      */
00132     virtual void endScene();
00133 
00134     //--------------------------------------------------------------------------
00135     // 行列関連
00136     //--------------------------------------------------------------------------
00137     /**
00138      * 投影行列の設定
00139      * @param projectionMatrix 投影行列
00140      */
00141     virtual void setProjectionMatrix(const Matrix44& projectionMatrix);
00142 
00143     /**
00144      * ビュー行列の設定
00145      * @param viewMatrix ビュー行列
00146      */
00147     virtual void setViewMatrix(const Matrix44& viewMatrix);
00148 
00149     /**
00150      * ワールド行列の設定
00151      * @param worldMatrix ワールド行列
00152      */
00153     virtual void setWorldMatrix(const Matrix34& worldMatrix);
00154 
00155     /**
00156      * テクスチャトランスフォーム設定
00157      * @param stage テクスチャステージ
00158      * @param repeat リピート
00159      * @param offset オフセット
00160      */
00161     virtual void setTextureTransform2(u_int stage,
00162         const TexCoord2& repeat, const TexCoord2& offset);
00163 
00164     //--------------------------------------------------------------------------
00165     // ビューポート
00166     //--------------------------------------------------------------------------
00167     /**
00168      * ビューポートの設定
00169      * @param rectangle 矩形
00170      */
00171     virtual void setViewport(const RectangleI& rectangle);
00172 
00173     /**
00174      * ビューポートのリセット
00175      */
00176     virtual void resetViewport();
00177 
00178     //--------------------------------------------------------------------------
00179     // ライティング関連
00180     //--------------------------------------------------------------------------
00181     /**
00182      * ライティングの設定
00183      * @param lighting ライティングを行うならtrue
00184      */
00185     virtual void setLighting(bool lighting);
00186 
00187     /**
00188      * アンビエントカラーの設定
00189      * @param ambientColor アンビエントカラー
00190      */
00191     virtual void setAmbientColor(const Color3f& ambientColor);
00192 
00193     /**
00194      * ディレクショナルライトを有効にする
00195      * @param lightIndex ライトインデックス
00196      * @param directionalLight ディレクショナルライト
00197      */
00198     virtual void enableDirectionalLight(
00199         int lightIndex, DirectionalLight* directionalLight);
00200 
00201     /**
00202      * ポイントライトを有効にする
00203      * @param lightIndex ライトインデックス
00204      * @param pointLight ポイントライト
00205      */
00206     virtual void enablePointLight(int lightIndex, PointLight* pointLight);
00207 
00208     /**
00209      * ライトを閉じる
00210      * @param lightIndex ライトインデックス
00211      */
00212     virtual void closeLight(int lightIndex);
00213 
00214     //--------------------------------------------------------------------------
00215     // マテリアル関連
00216     //--------------------------------------------------------------------------
00217     /**
00218      * マテリアルの設定
00219      * @param diffuseColor ディフューズカラー
00220      * @param specularColor スペキュラカラー
00221      * @param ambientColor アンビエントカラー
00222      * @param emissiveColor エミッシブカラー
00223      * @param specularPower スペキュラパワー
00224      * @param alpha アルファ
00225      */
00226     virtual void setMaterial(
00227         const Color3f& diffuseColor, const Color3f& specularColor,
00228         const Color3f& ambientColor, const Color3f& emissiveColor,
00229         float specularPower, float alpha);
00230 
00231     //--------------------------------------------------------------------------
00232     /**
00233      * ブレンディングの設定
00234      * @param blendingFlag ブレンディングフラグ
00235      */
00236     virtual void setBlending(bool blendingFlag);
00237 
00238     /**
00239      * ブレンドモードの設定
00240      * @param mode ブレンドモード
00241      * @param source ブレンドソース
00242      * @param destination ブレンドデスティネーション
00243      */
00244     virtual void setBlendMode(int mode, int source, int destination);
00245 
00246     //--------------------------------------------------------------------------
00247     // テクスチャ関連
00248     //--------------------------------------------------------------------------
00249     /**
00250      * テクスチャの設定
00251      * @param textureStage テクスチャステージ
00252      * @param texture テクスチャ
00253      */
00254     virtual void setTexture(int textureStage, Texture* texture);
00255 
00256     /**
00257      * テクスチャの設定
00258      * @param textureStage テクスチャステージ
00259      * @param texture Direct3Dテクスチャ
00260      */
00261     virtual void setTexture(int textureStage, Direct3DTexture* texture);
00262 
00263     /**
00264      * テクスチャアドレスモードの設定
00265      * @param textureStage テクスチャステージ
00266      * @param addressModeU アドレスモードU
00267      * @param addressModeV アドレスモードV
00268      */
00269     virtual void setTextureAddressMode2(int textureStage,
00270         int addressModeU, int addressModeV);
00271 
00272     /**
00273      * テクスチャの作成
00274      * @param format フォーマット
00275      * @param width 幅
00276      * @param height 高さ
00277      * @return テクスチャ
00278      */
00279     virtual Direct3DTexture* createTexture(
00280         D3DFORMAT format, int width, int height);
00281 
00282     /**
00283      * テクスチャのロック
00284      * @param texture テクスチャ
00285      * @param mipmapLevel ミップマップレベル
00286      * @return ロックされた矩形
00287      */
00288     virtual D3DLOCKED_RECT lockTexture(
00289         Direct3DTexture* texture, int mipmapLevel);
00290 
00291     /**
00292      * テクスチャのアンロック
00293      * @param texture テクスチャ
00294      * @param mipmapLevel ミップマップレベル
00295      */
00296     virtual void unlockTexture(Direct3DTexture* texture, int mipmapLevel);
00297 
00298     //--------------------------------------------------------------------------
00299     // テクスチャステージ関連
00300     //--------------------------------------------------------------------------
00301     /**
00302      * カラーテクスチャステージ設定
00303      * @param colorStage カラーステージ
00304      * @param operation ステージの操作
00305      * @param arg1 第一引数
00306      * @param arg2 第二引数
00307      * @param uvIndex UVインデックス
00308      */
00309     virtual void setColorTextureStage(int colorStage,
00310         D3DTEXTUREOP operation, u_int arg1, u_int arg2, int uvIndex);
00311 
00312     /**
00313      * カラーテクスチャステージを閉じる
00314      * @param colorStage カラーステージ
00315      */
00316     virtual void closeColorTextureStage(int colorStage);
00317 
00318     /**
00319      * アルファテクスチャステージ設定
00320      * @param alphaTextureStage アルファテクスチャステージ
00321      */
00322     virtual void setAlphaTextureStage(int alphaTextureStage);
00323 
00324     //--------------------------------------------------------------------------
00325     // フォグ
00326     //--------------------------------------------------------------------------
00327     /**
00328      * フォグの設定
00329      * @param fog フォグ
00330      */
00331     virtual void setFog(Fog* fog);
00332 
00333     //--------------------------------------------------------------------------
00334     // Zテスト
00335     //--------------------------------------------------------------------------
00336     /**
00337      * Zテストの設定
00338      * @param zTest Zテストを行うならtrue
00339      */
00340     virtual void setZTest(bool zTest);
00341 
00342     //--------------------------------------------------------------------------
00343     // インデックスバッファ
00344     //--------------------------------------------------------------------------
00345     /**
00346      * 静的インデックスバッファの構築
00347      * @param bufferSize バッファサイズ
00348      * @return 静的インデックスバッファ
00349      */
00350     virtual Direct3DIndexBuffer* createStaticIndexBuffer(int bufferSize);
00351 
00352     /**
00353      * 静的インデックスバッファのロック
00354      * @param indexBuffer インデックスバッファ
00355      * @param offset オフセット
00356      * @param size サイズ
00357      * @return 書き込みアドレス
00358      */
00359     virtual u_char* lockStaticIndexBuffer(
00360         Direct3DIndexBuffer* indexBuffer, int offset, int size);
00361 
00362     /**
00363      * 静的インデックスバッファのアンロック
00364      * @param indexBuffer インデックスバッファ
00365      */
00366     virtual void unlockStaticIndexBuffer(Direct3DIndexBuffer* indexBuffer);
00367 
00368     /**
00369      * 静的インデックスバッファの書き込み
00370      * @param indexBuffer インデックスバッファ
00371      * @param data データ
00372      * @param dataSize データサイズ
00373      */
00374     virtual void writeStaticIndexBuffer(
00375         Direct3DIndexBuffer* indexBuffer, const void* data, int dataSize);
00376 
00377     /**
00378      * 動的インデックスバッファの構築
00379      * @param bufferSize バッファサイズ
00380      * @return 動的インデックスバッファ
00381      */
00382     virtual Direct3DIndexBuffer* createDynamicIndexBuffer(int bufferSize);
00383 
00384     /**
00385      * 動的インデックスバッファの書き込み
00386      * @param indexBuffer インデックスバッファ
00387      * @param data データ
00388      * @param dataSize データサイズ
00389      */
00390     virtual void writeDynamicIndexBuffer(
00391         Direct3DIndexBuffer* indexBuffer, const void* data, int dataSize);
00392 
00393     /**
00394      * インデックスバッファの設定
00395      * @param indexBuffer インデックスバッファ
00396      */
00397     virtual void setIndexBuffer(Direct3DIndexBuffer* indexBuffer);
00398 
00399     //--------------------------------------------------------------------------
00400     // 頂点記述
00401     //--------------------------------------------------------------------------
00402     /**
00403      * 頂点記述の構築
00404      * @param vertexDeclaration [out] 頂点記述
00405      * @param hasPosition 位置を持つか
00406      * @param weightsPerVertex 頂点あたりウェイト数
00407      * @param bonesPerVertex 頂点あたりボーン数
00408      * @param hasNormal 法線を持つか
00409      * @param hasColor 頂点カラーを持つか
00410      * @param texCoordSetCount テクスチャ座標セット数
00411      * @param texCoordTypeArray テクスチャ座標タイプ配列
00412      * @return 頂点サイズ
00413      */
00414     virtual int createVertexDeclaration(
00415         Direct3DVertexDeclaration** vertexDeclaration, bool hasPosition,
00416         int weightsPerVertex, int bonesPerVertex, bool hasNormal,
00417         bool hasColor, int texCoordSetCount,
00418         const TexCoord::Type* texCoordTypeArray);
00419 
00420     /**
00421      * 頂点記述の設定
00422      * @param vertexDeclaration 頂点記述
00423      */
00424     virtual void setVertexDeclaration(
00425         Direct3DVertexDeclaration* vertexDeclaration);
00426 
00427     //--------------------------------------------------------------------------
00428     // 頂点バッファ
00429     //--------------------------------------------------------------------------
00430     /**
00431      * 静的頂点バッファの構築
00432      * @param bufferSize バッファサイズ
00433      * @return 静的頂点バッファ
00434      */
00435     virtual Direct3DVertexBuffer* createStaticVertexBuffer(int bufferSize);
00436 
00437     /**
00438      * 静的頂点バッファの書き込み
00439      * @param vertexBuffer 静的頂点バッファ
00440      * @param bufferSize バッファサイズ
00441      * @param vertexCount 頂点数
00442      * @param positions 位置配列
00443      * @param weightsPerVertex 頂点あたりウェイト数
00444      * @param weights ウェイト配列
00445      * @param bonesBerVertex 頂点あたりボーン数
00446      * @param boneIndices ボーンインデックス配列
00447      * @param normals 法線配列
00448      * @param colors 頂点カラー配列
00449      * @param texCoordSetCount テクスチャ座標セット数
00450      * @param texCoordTypeArray テクスチャ座標タイプ配列
00451      * @param texCoords テクスチャ座標配列
00452      */
00453     virtual void writeStaticVertexBuffer(
00454         Direct3DVertexBuffer* vertexBuffer, int bufferSize, int vertexCount,
00455         const Vector3* positions, int weightsPerVertex, const float* weights,
00456         int bonesBerVertex, const u_char* boneIndices, const Vector3* normals,
00457         const Color4c* colors, int texCoordSetCount,
00458         const TexCoord::Type* texCoordTypeArray, const float* const* texCoords);
00459 
00460     /**
00461      * 動的頂点バッファの構築
00462      * @param bufferSize バッファサイズ
00463      * @return 動的頂点バッファ
00464      */
00465     virtual Direct3DVertexBuffer* createDynamicVertexBuffer(int bufferSize);
00466 
00467     /**
00468      * 動的頂点バッファのロック
00469      * @param vertexBuffer 動的頂点バッファ
00470      * @param offset オフセット
00471      * @param size サイズ
00472      * @return 書き込みアドレス
00473      */
00474     virtual u_char* lockDynamicVertexBuffer(
00475         Direct3DVertexBuffer* vertexBuffer, int offset, int size);
00476 
00477     /**
00478      * 動的頂点バッファのアンロック
00479      * @param vertexBuffer 動的頂点バッファ
00480      */
00481     virtual void unlockDynamicVertexBuffer(Direct3DVertexBuffer* vertexBuffer);
00482 
00483     /**
00484      * 動的頂点バッファの書き込み
00485      * @param vertexBuffer 動的頂点バッファ
00486      * @param bufferSize バッファサイズ
00487      * @param vertexCount 頂点数
00488      * @param positions 位置配列
00489      * @param weightsPerVertex 頂点あたりウェイト数
00490      * @param weights ウェイト配列
00491      * @param bonesBerVertex 頂点あたりボーン数
00492      * @param boneIndices ボーンインデックス配列
00493      * @param normals 法線配列
00494      * @param colors 頂点カラー配列
00495      * @param texCoordSetCount テクスチャ座標セット数
00496      * @param texCoordTypeArray テクスチャ座標タイプ配列
00497      * @param texCoords テクスチャ座標配列
00498      */
00499     virtual void writeDynamicVertexBuffer(
00500         Direct3DVertexBuffer* vertexBuffer, int bufferSize, int vertexCount,
00501         const Vector3* positions, int weightsPerVertex, const float* weights,
00502         int bonesBerVertex, const u_char* boneIndices, const Vector3* normals,
00503         const Color4c* colors, int texCoordSetCount,
00504         const TexCoord::Type* texCoordTypeArray, const float* const* texCoords);
00505 
00506     /**
00507      * 頂点バッファの設定
00508      * @param vertexBuffer 頂点バッファ
00509      * @param vertexSize 頂点サイズ
00510      */
00511     virtual void setVertexBuffer(
00512         Direct3DVertexBuffer* vertexBuffer, int vertexSize);
00513 
00514     //--------------------------------------------------------------------------
00515     // 描画
00516     //--------------------------------------------------------------------------
00517     /**
00518      * 三角リスト描画
00519      * @param primitiveCount プリミティブ数
00520      */
00521     virtual void drawTriangleList(int primitiveCount);
00522 
00523     /**
00524      * インデックス三角リスト描画
00525      * @param vertexCount 頂点数
00526      * @param primitiveCount プリミティブ数
00527      */
00528     virtual void drawIndexedTriangleList(int vertexCount, int primitiveCount);
00529 
00530     /**
00531      * インデックス三角リスト描画
00532      * @param baseVertexIndex 頂点インデックスオフセット
00533      * @param minIndex 最小インデックス
00534      * @param vertexCount 頂点数
00535      * @param startIndex 開始インデックス
00536      * @param primitiveCount プリミティブ数
00537      */
00538     virtual void drawIndexedTriangleList(int baseVertexIndex,
00539         int minIndex, int vertexCount, int startIndex, int primitiveCount);
00540 
00541     //--------------------------------------------------------------------------
00542     /**
00543      * ラインリスト描画
00544      * @param primitiveCount プリミティブ数
00545      */
00546     virtual void drawLineList(int primitiveCount);
00547 
00548     /**
00549      * インデックスラインリスト描画
00550      * @param vertexCount 頂点数
00551      * @param primitiveCount プリミティブ数
00552      */
00553     virtual void drawIndexedLineList(int vertexCount, int primitiveCount);
00554 
00555     //--------------------------------------------------------------------------
00556     // カウンタ関連
00557     //--------------------------------------------------------------------------
00558     /**
00559      * カウンタのリセット
00560      */
00561     virtual void resetCounter(){
00562         drawPrimitiveCount_ = 0;
00563         drawPolygonCount_ = 0;
00564         drawVertexCount_ = 0;
00565     }
00566 
00567     /**
00568      * 頂点カウントの追加
00569      * @param drawPolygonCount 描画ポリゴンカウント
00570      * @param drawVertexCount 描画頂点カウント
00571      */
00572     virtual void addVertexCount(int drawPolygonCount, int drawVertexCount){
00573         drawPrimitiveCount_++;
00574         drawPolygonCount_ += drawPolygonCount;
00575         drawVertexCount_ += drawVertexCount;
00576     }
00577 
00578     /**
00579      * DrawPrimitiveカウントの取得
00580      * @return DrawPrimitiveカウント
00581      */
00582     virtual int getDrawPrimitiveCount(){ return drawPrimitiveCount_; }
00583 
00584     /**
00585      * 描画ポリゴンカウントの取得
00586      * @return 描画ポリゴンカウント
00587      */
00588     virtual int getDrawPolygonCount(){ return drawPolygonCount_; }
00589 
00590     /**
00591      * 描画頂点カウント
00592      * @return 描画頂点カウント
00593      */
00594     virtual int getDrawVertexCount(){ return drawVertexCount_; }
00595 
00596 protected:
00597     //--------------------------------------------------------------------------
00598     /**
00599      * コンストラクタ
00600      * @param capacity デバイス能力
00601      */
00602     RenderingDevice(GraphicsDeviceCapacity* capacity);
00603 
00604     /**
00605      * デストラクタ
00606      */
00607     virtual ~RenderingDevice();
00608 
00609     //--------------------------------------------------------------------------
00610     // ユーティリティ
00611     //--------------------------------------------------------------------------
00612     /**
00613      * 頂点データの書き込み
00614      * @param buffer 書き込みバッファ
00615      * @param bufferSize バッファサイズ
00616      * @param vertexCount 頂点数
00617      * @param positions 位置配列
00618      * @param weightsPerVertex 頂点あたりウェイト数
00619      * @param weights ウェイト配列
00620      * @param bonesBerVertex 頂点あたりボーン数
00621      * @param boneIndices ボーンインデックス配列
00622      * @param normals 法線配列
00623      * @param colors 頂点カラー配列
00624      * @param texCoordSetCount テクスチャ座標セット数
00625      * @param texCoordTypeArray テクスチャ座標タイプ配列
00626      * @param texCoords テクスチャ座標配列
00627      */
00628     virtual void writeVertices(u_char* buffer, int bufferSize, int vertexCount,
00629         const Vector3* positions, int weightsPerVertex, const float* weights,
00630         int bonesBerVertex, const u_char* boneIndices, const Vector3* normals,
00631         const Color4c* colors, int texCoordSetCount,
00632         const TexCoord::Type* texCoordTypeArray, const float* const* texCoords);
00633 
00634     /**
00635      * D3Dベクトルの設定
00636      * @param destination 設定先
00637      * @param source 設定元
00638      */
00639     virtual void setD3DVector(D3DVECTOR& destination, const Vector3& source);
00640 
00641     /**
00642      * D3Dカラーの設定
00643      * @param destination 設定先
00644      * @param source 設定元
00645      */
00646     virtual void setD3DColor(D3DCOLORVALUE& destination, const Color4f& source);
00647 
00648     /**
00649      * D3Dカラーの設定
00650      * @param destination 設定先
00651      * @param source 設定元
00652      */
00653     virtual void setD3DColor(D3DCOLORVALUE& destination, const Color3f& source);
00654 
00655     //--------------------------------------------------------------------------
00656     // ステートブロック関連
00657     //--------------------------------------------------------------------------
00658     /**
00659      * デフォルトステートブロックのリストア
00660      * @param direct3DDevice Direct3Dデバイス
00661      */
00662     virtual void restoreDefaultStateBlock(Direct3DDevice* direct3DDevice);
00663 
00664     /**
00665      * デフォルトステートブロックの無効化
00666      */
00667     virtual void invalidateDefaultStateBlock(){
00668         SafeRelease(defaultStateBlock_);
00669     }
00670 
00671 private:
00672     //--------------------------------------------------------------------------
00673     // コピーコンストラクタの隠蔽
00674     RenderingDevice(const RenderingDevice& copy);
00675 
00676     // 代入コピーの隠蔽
00677     void operator =(const RenderingDevice& copy);
00678 
00679     //--------------------------------------------------------------------------
00680     // システム
00681     //--------------------------------------------------------------------------
00682     // デバイス能力
00683     GraphicsDeviceCapacity* capacity_;
00684     // Direct3Dデバイス
00685     Direct3DDevice* device_;
00686     // デフォルトステートブロック
00687     Direct3DStateBlock* defaultStateBlock_;
00688 
00689     //--------------------------------------------------------------------------
00690     // カウンタ関連
00691     //--------------------------------------------------------------------------
00692     // DrawPrimitiveカウント
00693     int drawPrimitiveCount_;
00694     // 描画ポリゴンカウント
00695     int drawPolygonCount_;
00696     // 描画頂点カウント
00697     int drawVertexCount_;
00698 
00699     //--------------------------------------------------------------------------
00700     // インスタンス
00701     static RenderingDevice* instance_;
00702 
00703 };
00704 
00705 //------------------------------------------------------------------------------
00706 } // End of namespace Lamp
00707 #endif // End of RENDERING_DEVICE_H_
00708 //------------------------------------------------------------------------------

Generated on Wed Mar 16 10:29:34 2005 for Lamp by doxygen 1.3.2