FineKernelToolKit 4.2.13
読み取り中…
検索中…
一致する文字列を見つけられません
Texture.h
[詳解]
1#if !defined(__FK_TEXTURE_HEADER__)
2#define __FK_TEXTURE_HEADER__
3
4#include <FK/Shape.h>
5#include <FK/Image.h>
6#include <FK/IndexFace.h>
7#include <FK/FrameBuffer.h>
8
9namespace FK {
10
12 enum class fk_TexMode {
13 MODULATE = 0,
14 DECAL,
15 REPLACE,
16 NONE,
17 NUM
18 };
19
21 enum class fk_TexRendMode {
22 NORMAL,
23 SMOOTH
24 };
25
27 enum class fk_TexWrapMode {
28 REPEAT,
29 CLAMP,
30 };
31
32
34
45 class fk_Texture: public fk_Shape {
46
47#if !defined(FK_DOXYGEN_USER_PROCESS)
48 class Member {
49 public:
50 fk_Image *image;
51 fk_Image localImage;
52 fk_TexMode texMode;
53 fk_TexRendMode texRendMode;
54 fk_TexWrapMode texWrapMode;
55 fk_FrameBuffer *frameBuffer;
56
57 Member(void);
58 };
59#endif
60
61 public:
62
63#if !defined(FK_DOXYGEN_USER_PROCESS)
64
65 fk_Texture(fk_Image * = nullptr);
66 virtual ~fk_Texture();
67 virtual void init(void) = 0;
68
69#endif
70
72
84 void setImage(fk_Image *image);
85
87
93
95
103 bool readBMP(std::string fileName);
104
106
116 bool readBMPData(fk_ImType *buf);
117
119
127 bool readPNG(std::string fileName);
128
130
140 bool readPNGData(fk_ImType *buf);
141
143
151 bool readJPG(std::string fileName);
152
154
162
164
177
179
233
235
243
245
256
258
266
268
280
282
288
290
297 void fillColor(const fk_Color &color);
298
300
309 void fillColor(int r, int g, int b, int a = 0);
310
312
329 const fk_ImType * getImageBuf(void);
330
332
345
347
355
357
362 void initFrameBuffer(void);
363
364#if !defined(FK_DOXYGEN_USER_PROCESS)
365 std::function<void(void)> FaceIBOSetup;
366 bool BindTexture(bool forceLoad);
367 std::function<int(void)> GetFaceSize;
368 std::function<void(void)> StatusUpdate;
369 void Replace(void);
370 virtual fk_TexID GetTexID(void);
371
372 static const std::string texIDName;
373#endif
374
375 protected:
376
377#if !defined(FK_DOXYGEN_USER_PROCESS)
378 std::unique_ptr<fk_FVecArray> _m_texCoord;
379
380 void BaseInit(void);
381 bool IsLocalImage(void);
382 void SetLocalImage(void);
383#endif
384
385 private:
386 std::unique_ptr<Member> _m;
387 void SetTexID(const fk_TexID);
388 static void ClearTexState(fk_Image *);
389 };
390}
391
392#endif // !__FK_TEXTURE_HEADER__
393
394/****************************************************************************
395 *
396 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
397 *
398 * Redistribution and use in source and binary forms,
399 * with or without modification, are permitted provided that the
400 * following conditions are met:
401 *
402 * - Redistributions of source code must retain the above
403 * copyright notice, this list of conditions and the
404 * following disclaimer.
405 *
406 * - Redistributions in binary form must reproduce the above
407 * copyright notice, this list of conditions and the
408 * following disclaimer in the documentation and/or
409 * other materials provided with the distribution.
410 *
411 * - Neither the name of the copyright holders nor the names
412 * of its contributors may be used to endorse or promote
413 * products derived from this software without specific
414 * prior written permission.
415 *
416 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
417 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
418 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
419 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
420 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
421 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
422 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
423 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
424 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
425 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
426 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
427 * POSSIBILITY OF SUCH DAMAGE.
428 *
429 ****************************************************************************/
430/****************************************************************************
431 *
432 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
433 *
434 * 本ソフトウェアおよびソースコードのライセンスは、基本的に
435 * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
436 *
437 * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
438 * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
439 *
440 * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
441 * および下記免責条項を含めること。
442 *
443 * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
444 * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
445 * 含めること。
446 *
447 * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
448 * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
449 * コントリビューターの名前を使用してはならない。
450 *
451 * 本ソフトウェアは、著作権者およびコントリビューターによって「現
452 * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
453 * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
454 * に限定されない、いかなる保証もないものとします。著作権者もコン
455 * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
456 * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
457 * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
458 * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
459 * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
460 * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
461 * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
462 * ついて、一切責任を負わないものとします。
463 *
464 ****************************************************************************/
RGB色を管理するクラス
Definition Color.h:21
画像サイズを表すクラス
Definition Image.h:67
フレームバッファー制御クラス
Definition FrameBuffer.h:29
画像を生成、管理するクラス
Definition Image.h:260
形状用基底クラス
Definition Shape.h:44
テクスチャ用基底クラス
Definition Texture.h:45
fk_Image * getImage(void)
画像データ取得関数
const fk_ImType * getImageBuf(void)
画像データ配列先頭アドレス取得関数
bool readBMPData(fk_ImType *buf)
BMP バッファ入力関数
void fillColor(int r, int g, int b, int a=0)
一様色初期化関数2
fk_TexMode getTextureMode(void)
テクスチャモード取得関数
const fk_Dimension * getBufferSize(void)
画像バッファサイズ取得関数
void setTexRendMode(fk_TexRendMode mode)
テクスチャ描画品質設定関数
bool readPNGData(fk_ImType *buf)
PNG バッファ入力関数
const fk_Dimension * getImageSize(void)
画像サイズ取得関数
void setTextureMode(fk_TexMode mode)
テクスチャモード設定関数
fk_TexWrapMode getTexWrapMode(void)
テクスチャ外周部モード取得関数
void setFrameBuffer(fk_FrameBuffer *buffer)
フレームバッファー設定関数
void setImage(fk_Image *image)
画像データ設定関数
bool readJPG(std::string fileName)
JPEG ファイル入力関数
bool readPNG(std::string fileName)
PNG ファイル入力関数
fk_FrameBuffer * getFrameBuffer(void)
フレームバッファー取得関数
void initFrameBuffer(void)
フレームバッファー情報初期化関数
fk_TexRendMode getTexRendMode(void)
テクスチャ描画品質取得関数
void setTexWrapMode(fk_TexWrapMode mode)
テクスチャ外周部モード設定関数
bool readBMP(std::string fileName)
BMP ファイル入力関数
void fillColor(const fk_Color &color)
一様色初期化関数1
Fine Kernel Toolkit 名前空間
Definition Angle.h:6
fk_TexMode
テクスチャモードを表す列挙型
Definition Texture.h:12
@ REPLACE
画像モード
@ DECAL
線形補間モード
@ MODULATE
積算モード
fk_TexRendMode
テクスチャ描画品質を表す列挙型
Definition Texture.h:21
@ NORMAL
標準品質
@ NONE
未定義境界
@ NUM
種類数
fk_TexWrapMode
テクスチャ外周部の描画モードを表す列挙型
Definition Texture.h:27
@ REPEAT
繰り返し式
@ CLAMP
縁部伸張式