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

VertexProcessingType.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 VERTEX_PROCESSING_TYPE_H_
00026 #define VERTEX_PROCESSING_TYPE_H_
00027 
00028 namespace Lamp{
00029 
00030 //------------------------------------------------------------------------------
00031 /**
00032  * 頂点プロセスタイプ
00033  */
00034 class VertexProcessingType{
00035 public:
00036     /// 頂点プロセスタイプ
00037     enum Type{
00038         /// ソフトウェア頂点プロセス
00039         software,
00040         /// 混合頂点プロセス
00041         mixed,
00042         /// ハードウェア頂点プロセス
00043         hardware,
00044         /// ピュアハードウェア頂点プロセス
00045         pureHardware
00046     };
00047 
00048     /**
00049      * コンストラクタ
00050      */
00051     VertexProcessingType(){ type_ = software; }
00052 
00053     /**
00054      * コピーコンストラクタ
00055      * @param copy コピー元
00056      */
00057     VertexProcessingType(const VertexProcessingType& copy){
00058         type_ = copy.type_;
00059     }
00060 
00061     /**
00062      * コピーコンストラクタ
00063      * @param copy コピー元
00064      */
00065     VertexProcessingType(const Type& copy){ type_ = copy; }
00066 
00067     /**
00068      * 代入コピーの隠蔽
00069      * @param copy コピー元
00070      */
00071     void operator =(const VertexProcessingType& copy){ type_ = copy.type_; }
00072 
00073     /**
00074      * 代入コピーの隠蔽
00075      * @param copy コピー元
00076      */
00077     void operator =(const Type& copy){ type_ = copy; }
00078 
00079     /**
00080      * 作成フラグの取得
00081      * @return 作成フラグ
00082      */
00083     u_int getCreateFlag(){
00084         u_int result;
00085         if(type_ == software){
00086             result = D3DCREATE_SOFTWARE_VERTEXPROCESSING;
00087         }else if(type_ == mixed){
00088             result = D3DCREATE_MIXED_VERTEXPROCESSING;
00089         }else if(type_ == hardware){
00090             result = D3DCREATE_HARDWARE_VERTEXPROCESSING;
00091         }else if(type_ == pureHardware){
00092             result = D3DCREATE_HARDWARE_VERTEXPROCESSING | D3DCREATE_PUREDEVICE;
00093         }
00094         return result;
00095     }
00096 
00097     /**
00098      * 文字列への変換
00099      * @return 頂点プロセスタイプの文字列表記
00100      */
00101     String toString(){
00102         if(type_ == software){ return "ソフトウェア"; }
00103         else if(type_ == mixed){ return "混合";     }
00104         else if(type_ == hardware){ return "ハードウェア"; }
00105         else if(type_ == pureHardware){ return "ピュアハードウェア"; }
00106         return "";
00107     }
00108 
00109     /// 頂点プロセスタイプ
00110     Type type_;
00111 
00112 };
00113 
00114 //------------------------------------------------------------------------------
00115 } // End of namespace Lamp
00116 #endif // End of VERTEX_PROCESSING_TYPE_H_
00117 //------------------------------------------------------------------------------

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