FineKernelToolKit  3.1.0
TextureSampler.h
[詳解]
1 #pragma once
2 
3 using namespace System;
4 using namespace System::Collections::Generic;
5 using namespace FK_CLI;
6 
7 namespace FK_ShaderPlugin
8 {
9  /*
10  // モデルの描画モードを表す列挙型
11  public enum class fk_TexWrapMode {
12  REPEAT, //!< 繰り返し式
13  CLAMP, //!< 縁部伸張式
14  };
15  */
16 
17  // フレームバッファのサンプリングソースを表す列挙型
18  public enum class fk_SamplerSource {
20  COLOR_BUFFER,
21  DEPTH_BUFFER,
22  };
23 
25 
42  public ref class fk_TextureSampler : fk_MeshTexture
43  {
44  public:
45 
47 
52 
54 
64 
67 
69 
83  property fk_SamplerSource SamplerSource;
84 
86 
89  void Init(void);
90 
91  internal:
92  bool BindTexture(bool forceLoad);
93 
94  private:
95  // このクラスで利用できないプロパティです。
96  property int TriNum;
97 
98  // このクラスで利用できない関数です。
99  bool SetTextureCoord(int tID, int vID, double x, double y) { return false; };
100  bool SetTextureCoord(int tID, int vID, fk_TexCoord^ coord) { return false; };
101  bool SetTriTextureCoord(int tID, IEnumerable<fk_TexCoord^>^ array) { return false; };
102  fk_TexCoord^ GetTextureCoord(int tID, int vID) { return nullptr; };
103  bool SetVertexPos(int tID, int vID, double x, double y, double z) { return false; };
104  bool SetVertexPos(int tID, int vID, fk_Vector^ pos) { return false; };
105  bool SetTriPos(int tID, IEnumerable<fk_Vector^>^ array) { return false; };
106  fk_Vector^ GetVertexPos(int tID, int vID) { return nullptr; };
107  void PutIndexFaceSet(fk_IndexFaceSet^ ifs) {};
108  bool ReadMQOFile(String^ fileName, String^ objName, bool contFlg) { return false; };
109  bool ReadMQOFile(String^ fileName, String^ objName) { return false; };
110 
111  // フィールド
112  UInt32 id;
113  bool loaded;
114  };
115 }
116 
117 /****************************************************************************
118  *
119  * Copyright (c) 1999-2016, Fine Kernel Project, All rights reserved.
120  *
121  * Redistribution and use in source and binary forms,
122  * with or without modification, are permitted provided that the
123  * following conditions are met:
124  *
125  * - Redistributions of source code must retain the above
126  * copyright notice, this list of conditions and the
127  * following disclaimer.
128  *
129  * - Redistributions in binary form must reproduce the above
130  * copyright notice, this list of conditions and the
131  * following disclaimer in the documentation and/or
132  * other materials provided with the distribution.
133  *
134  * - Neither the name of the copyright holders nor the names
135  * of its contributors may be used to endorse or promote
136  * products derived from this software without specific
137  * prior written permission.
138  *
139  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
140  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
141  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
142  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
143  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
144  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
145  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
146  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
147  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
148  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
149  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
150  * POSSIBILITY OF SUCH DAMAGE.
151  *
152  ****************************************************************************/
153 /****************************************************************************
154  *
155  * Copyright (c) 1999-2016, Fine Kernel Project, All rights reserved.
156  *
157  * 本ソフトウェアおよびソースコードのライセンスは、基本的に
158  * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
159  *
160  * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
161  * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
162  *
163  * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
164  * および下記免責条項を含めること。
165  *
166  * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
167  * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
168  * 含めること。
169  *
170  * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
171  * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
172  * コントリビューターの名前を使用してはならない。
173  *
174  * 本ソフトウェアは、著作権者およびコントリビューターによって「現
175  * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
176  * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
177  * に限定されない、いかなる保証もないものとします。著作権者もコン
178  * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
179  * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
180  * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
181  * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
182  * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
183  * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
184  * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
185  * ついて、一切責任を負わないものとします。
186  *
187  ****************************************************************************/
インデックスフェースセットによる任意形状を生成、管理するクラス
Definition: IndexFace_CLI.h:75
メッシュテクスチャを生成、管理するクラス
Definition: MeshTexture_CLI.h:43
Definition: ShaderBinder.h:9
テクスチャ画像情報参照
シェーダー入出力テクスチャークラス
Definition: TextureSampler.h:42
3次元ベクトルを管理するクラス
Definition: Vector_CLI.h:37
fk_SamplerSource
Definition: TextureSampler.h:18
画像を生成、管理するクラス
Definition: Image_CLI.h:210
テクスチャ座標を管理するクラス
Definition: Texture_CLI.h:42
Definition: AppWindow_CLI.h:11