FineKernelToolKit 4.2.13
読み取り中…
検索中…
一致する文字列を見つけられません
RectTexture.h
[詳解]
1#if !defined(__FK_RECT_TEXTURE_HEADER__)
2#define __FK_RECT_TEXTURE_HEADER__
3
4#include <FK/Texture.h>
5
6namespace FK {
7
9
28 class fk_RectTexture : public fk_Texture {
29
30#if !defined(FK_DOXYGEN_USER_PROCESS)
31 class Member {
32 public:
33 fk_TexCoord texSize;
34 bool repeatFlag;
35 fk_TexCoord repeatParam;
36 fk_TexCoord rectSE[2];
37
38 fk_FVecArray vertexPosition;
39 fk_FVecArray vertexNormal;
40
41 Member(void);
42 };
43#endif
44 public:
45
47
52 fk_RectTexture(fk_Image *image = nullptr);
53
55 virtual ~fk_RectTexture();
56
58
61 void init(void);
62
64
74 bool setTextureSize(double w, double h);
75
77
83
85
103 void setRepeatMode(bool mode);
104
106
115 bool getRepeatMode(void);
116
118
130 void setRepeatParam(double wNum, double hNum);
131
133
141
143
155 void setTextureCoord(double sX, double sY, double eX, double eY);
156
158
168 void setTextureCoord(const fk_TexCoord &S, const fk_TexCoord &E);
169
171
185
186 private:
187
188 std::unique_ptr<Member> _m;
189
190 static inline std::vector<GLuint> _s_faceIndex;
191 static inline std::unique_ptr<GLuint> _s_faceIBO;
192 static inline std::unique_ptr<bool> _s_faceIndexFlg;
193
194 void RectInit(void);
195
196 void SizeUpdate();
197 void NormalUpdate();
198 void TexCoordUpdate();
199
200 void StaticInit(void);
201
202 //void MakeDrawRectFunc(void);
203 };
204}
205
206#endif // !__FK_RECT_TEXTURE_HEADER__
207
208/****************************************************************************
209 *
210 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
211 *
212 * Redistribution and use in source and binary forms,
213 * with or without modification, are permitted provided that the
214 * following conditions are met:
215 *
216 * - Redistributions of source code must retain the above
217 * copyright notice, this list of conditions and the
218 * following disclaimer.
219 *
220 * - Redistributions in binary form must reproduce the above
221 * copyright notice, this list of conditions and the
222 * following disclaimer in the documentation and/or
223 * other materials provided with the distribution.
224 *
225 * - Neither the name of the copyright holders nor the names
226 * of its contributors may be used to endorse or promote
227 * products derived from this software without specific
228 * prior written permission.
229 *
230 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
231 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
232 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
233 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
234 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
235 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
236 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
237 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
238 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
239 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
240 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
241 * POSSIBILITY OF SUCH DAMAGE.
242 *
243 ****************************************************************************/
244/****************************************************************************
245 *
246 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
247 *
248 * 本ソフトウェアおよびソースコードのライセンスは、基本的に
249 * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
250 *
251 * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
252 * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
253 *
254 * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
255 * および下記免責条項を含めること。
256 *
257 * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
258 * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
259 * 含めること。
260 *
261 * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
262 * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
263 * コントリビューターの名前を使用してはならない。
264 *
265 * 本ソフトウェアは、著作権者およびコントリビューターによって「現
266 * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
267 * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
268 * に限定されない、いかなる保証もないものとします。著作権者もコン
269 * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
270 * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
271 * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
272 * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
273 * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
274 * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
275 * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
276 * ついて、一切責任を負わないものとします。
277 *
278 ****************************************************************************/
シェーダー内 attribute 変数用ベクトル管理クラス
Definition FVecArray.h:31
画像を生成、管理するクラス
Definition Image.h:260
矩形テクスチャを生成、管理するクラス
Definition RectTexture.h:28
fk_RectTexture(fk_Image *image=nullptr)
コンストラクタ
void setRepeatParam(double wNum, double hNum)
リピートモード枚数設定関数
fk_TexCoord getTextureSize(void)
テクスチャサイズ参照関数
virtual ~fk_RectTexture()
デストラクタ
void setTextureCoord(double sX, double sY, double eX, double eY)
部分抽出設定関数1
fk_TexCoord getRepeatParam(void)
リピートモード枚数参照関数
fk_TexCoord getTextureCoord(int ID)
部分抽出参照関数
void init(void)
初期化関数
void setRepeatMode(bool mode)
リピートモード設定関数
void setTextureCoord(const fk_TexCoord &S, const fk_TexCoord &E)
部分抽出設定関数2
bool getRepeatMode(void)
リピートモード参照関数
bool setTextureSize(double w, double h)
テクスチャサイズ設定関数
テクスチャ座標を管理するクラス
Definition Vector.h:799
テクスチャ用基底クラス
Definition Texture.h:45
Fine Kernel Toolkit 名前空間
Definition Angle.h:6