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 //------------------------------------------------------------------------------