FineKernelToolKit: FK/Texture.h ソースファイル

FineKernelToolKit 4.3.0

読み取り中…
検索中…
一致する文字列を見つけられません
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
44
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
92 fk_Image * getImage(void);
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
161 const fk_Dimension * getImageSize(void);
162
164
176 const fk_Dimension * getBufferSize(void);
177
179
232 void setTextureMode(fk_TexMode mode);
233
235
242 fk_TexMode getTextureMode(void);
243
245
255 void setTexRendMode(fk_TexRendMode mode);
256
258
265 fk_TexRendMode getTexRendMode(void);
266
268
279 void setTexWrapMode(fk_TexWrapMode mode);
280
282
287 fk_TexWrapMode getTexWrapMode(void);
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
344 void setFrameBuffer(fk_FrameBuffer *buffer);
345
347
354 fk_FrameBuffer * getFrameBuffer(void);
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 ****************************************************************************/
FrameBuffer.h
Image.h
IndexFace.h
Shape.h
FK::fk_Color
RGB色を管理するクラス
Definition Color.h:21
FK::fk_Dimension
画像サイズを表すクラス
Definition Image.h:67
FK::fk_FrameBuffer
フレームバッファー制御クラス
Definition FrameBuffer.h:29
FK::fk_Image
画像を生成、管理するクラス
Definition Image.h:260
FK::fk_Shape::fk_Shape
fk_Shape(fk_Type=fk_Type::SHAPE)
コンストラクタ
FK::fk_Texture
テクスチャ用基底クラス
Definition Texture.h:45
FK::fk_Texture::getImage
fk_Image * getImage(void)
画像データ取得関数
FK::fk_Texture::getImageBuf
const fk_ImType * getImageBuf(void)
画像データ配列先頭アドレス取得関数
FK::fk_Texture::readBMPData
bool readBMPData(fk_ImType *buf)
BMP バッファ入力関数
FK::fk_Texture::fillColor
void fillColor(int r, int g, int b, int a=0)
一様色初期化関数2
FK::fk_Texture::getTextureMode
fk_TexMode getTextureMode(void)
テクスチャモード取得関数
FK::fk_Texture::getBufferSize
const fk_Dimension * getBufferSize(void)
画像バッファサイズ取得関数
FK::fk_Texture::setTexRendMode
void setTexRendMode(fk_TexRendMode mode)
テクスチャ描画品質設定関数
FK::fk_Texture::readPNGData
bool readPNGData(fk_ImType *buf)
PNG バッファ入力関数
FK::fk_Texture::getImageSize
const fk_Dimension * getImageSize(void)
画像サイズ取得関数
FK::fk_Texture::setTextureMode
void setTextureMode(fk_TexMode mode)
テクスチャモード設定関数
FK::fk_Texture::getTexWrapMode
fk_TexWrapMode getTexWrapMode(void)
テクスチャ外周部モード取得関数
FK::fk_Texture::setFrameBuffer
void setFrameBuffer(fk_FrameBuffer *buffer)
フレームバッファー設定関数
FK::fk_Texture::setImage
void setImage(fk_Image *image)
画像データ設定関数
FK::fk_Texture::readJPG
bool readJPG(std::string fileName)
JPEG ファイル入力関数
FK::fk_Texture::readPNG
bool readPNG(std::string fileName)
PNG ファイル入力関数
FK::fk_Texture::getFrameBuffer
fk_FrameBuffer * getFrameBuffer(void)
フレームバッファー取得関数
FK::fk_Texture::initFrameBuffer
void initFrameBuffer(void)
フレームバッファー情報初期化関数
FK::fk_Texture::getTexRendMode
fk_TexRendMode getTexRendMode(void)
テクスチャ描画品質取得関数
FK::fk_Texture::setTexWrapMode
void setTexWrapMode(fk_TexWrapMode mode)
テクスチャ外周部モード設定関数
FK::fk_Texture::readBMP
bool readBMP(std::string fileName)
BMP ファイル入力関数
FK::fk_Texture::fillColor
void fillColor(const fk_Color &color)
一様色初期化関数1
FK
Fine Kernel Toolkit 名前空間
Definition Angle.h:6
FK::fk_TexMode
fk_TexMode
テクスチャモードを表す列挙型
Definition Texture.h:12
FK::fk_TexMode::REPLACE
@ REPLACE
画像モード
Definition Texture.h:15
FK::fk_TexMode::DECAL
@ DECAL
線形補間モード
Definition Texture.h:14
FK::fk_TexMode::MODULATE
@ MODULATE
積算モード
Definition Texture.h:13
FK::fk_TexRendMode
fk_TexRendMode
テクスチャ描画品質を表す列挙型
Definition Texture.h:21
FK::fk_TexRendMode::NORMAL
@ NORMAL
標準品質
Definition Texture.h:22
FK::fk_TexRendMode::SMOOTH
@ SMOOTH
高品質
Definition Texture.h:23
FK::fk_BoundaryMode::NONE
@ NONE
未定義境界
Definition Boundary.h:19
FK::fk_FogMode::NUM
@ NUM
種類数
Definition Fog.h:15
FK::fk_TexWrapMode
fk_TexWrapMode
テクスチャ外周部の描画モードを表す列挙型
Definition Texture.h:27
FK::fk_TexWrapMode::REPEAT
@ REPEAT
繰り返し式
Definition Texture.h:28
FK::fk_TexWrapMode::CLAMP
@ CLAMP
縁部伸張式
Definition Texture.h:29