FineKernelToolKit 4.2.13
読み取り中…
検索中…
一致する文字列を見つけられません
SpriteModel.h
[詳解]
1#if !defined(__FK_SPRITE_MODEL_HEADER__)
2#define __FK_SPRITE_MODEL_HEADER__
3
4#include <FK/UniCode.h>
5#include <FK/Model.h>
6#include <FK/TextImage.h>
7#include <FK/RectTexture.h>
8#include <FK/Scene.h>
9#include <FK/Window.h>
10
11namespace FK {
12
14
36 class fk_SpriteModel : public fk_Model {
37
38#if !defined(FK_DOXYGEN_USER_PROCESS)
39 class Member {
40 public:
41 fk_RectTexture texShape;
42 fk_Material absMate;
43 fk_Model pixelBase;
44 fk_UniStr textStr;
45 bool fontReady;
46
47 Member(void);
48 };
49#endif
50 public:
52
60
65
67
82 bool entryFirst(fk_Window *win, fk_Scene *scene, fk_Model *camera = nullptr);
83
85
93 bool readBMP(const std::string filename);
94
96
104 bool readPNG(const std::string filename);
105
107
115 bool readJPG(const std::string filename);
116
118
123 void setImage(fk_Image *image);
124
126
131 void setImage(fk_Image &image);
132
134
145
147
160
162
171
173
181
183
208 void setPositionLT(double x, double y);
209
211
223 void setSpriteArea(double x, double y, double w, double h);
224
226
238 void setSpriteSize(double width = -1.0, double height = -1.0);
239
241
251
253
263 void setSpriteSmoothMode(bool mode);
264
266
275
277
294 bool initFont(const std::string fontFileName);
295
297
313 void drawText(const std::string str, fk_StringCode code = fk_StringCode::SJIS);
314
316
337 void drawText(const std::string str, bool mode,
339
341
347 void clearText(void);
348
349#if !defined(FK_DOXYGEN_USER_PROCESS)
350 void MakePixelBase(const fk_Dimension &argWinSize, fk_Scene *argScn);
351 void SetFinalizeMode(void);
352#endif
353
354 private:
355 std::unique_ptr<Member> _m;
356 static constexpr double distPut = 1.0;
357 void InitFontEnv(void);
358 };
359}
360
361#endif
362
363/****************************************************************************
364 *
365 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
366 *
367 * Redistribution and use in source and binary forms,
368 * with or without modification, are permitted provided that the
369 * following conditions are met:
370 *
371 * - Redistributions of source code must retain the above
372 * copyright notice, this list of conditions and the
373 * following disclaimer.
374 *
375 * - Redistributions in binary form must reproduce the above
376 * copyright notice, this list of conditions and the
377 * following disclaimer in the documentation and/or
378 * other materials provided with the distribution.
379 *
380 * - Neither the name of the copyright holders nor the names
381 * of its contributors may be used to endorse or promote
382 * products derived from this software without specific
383 * prior written permission.
384 *
385 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
386 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
387 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
388 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
389 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
390 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
391 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
392 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
393 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
394 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
395 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
396 * POSSIBILITY OF SUCH DAMAGE.
397 *
398 ****************************************************************************/
399/****************************************************************************
400 *
401 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
402 *
403 * 本ソフトウェアおよびソースコードのライセンスは、基本的に
404 * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
405 *
406 * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
407 * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
408 *
409 * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
410 * および下記免責条項を含めること。
411 *
412 * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
413 * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
414 * 含めること。
415 *
416 * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
417 * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
418 * コントリビューターの名前を使用してはならない。
419 *
420 * 本ソフトウェアは、著作権者およびコントリビューターによって「現
421 * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
422 * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
423 * に限定されない、いかなる保証もないものとします。著作権者もコン
424 * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
425 * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
426 * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
427 * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
428 * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
429 * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
430 * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
431 * ついて、一切責任を負わないものとします。
432 *
433 ****************************************************************************/
画像サイズを表すクラス
Definition Image.h:67
画像を生成、管理するクラス
Definition Image.h:260
マテリアル(質感)を管理するクラス
Definition Material.h:40
モデルを生成、管理するクラス
Definition Model.h:98
矩形テクスチャを生成、管理するクラス
Definition RectTexture.h:28
シーンを制御するクラス
Definition Scene.h:48
2D スプライトモデルクラス
Definition SpriteModel.h:36
~fk_SpriteModel(void)
デストラクタ
fk_TexCoord getSpriteSize(void)
表示サイズ取得関数
bool readBMP(const std::string filename)
Windows Bitmap (BMP)画像読み込み関数
bool entryFirst(fk_Window *win, fk_Scene *scene, fk_Model *camera=nullptr)
fk_Scene へのエントリー関数
void setSpriteSmoothMode(bool mode)
画像表示モード設定関数
void drawText(const std::string str, bool mode, fk_StringCode code=fk_StringCode::SJIS)
初期化設定付き文字列表示関数
bool initFont(const std::string fontFileName)
文字列描画用フォント設定関数
bool readJPG(const std::string filename)
JPEG(JPG)画像読み込み関数
void setSpriteSize(double width=-1.0, double height=-1.0)
表示サイズ設定関数
void drawText(const std::string str, fk_StringCode code=fk_StringCode::SJIS)
文字列表示関数
void setTextureMode(fk_TexMode mode)
テクスチャモード設定関数
bool readPNG(const std::string filename)
PNG画像読み込み関数
void clearText(void)
文字列消去関数
void setImage(fk_Image &image)
画像データセット関数2
fk_TexMode getTextureMode(void)
テクスチャモード取得関数
fk_Image * getImage(void)
画像データ参照関数
fk_RectTexture * getTexture(void)
テクスチャデータ参照関数
bool getSpriteSmoothMode(void)
画像表示モード取得関数
fk_TextImage text
文字列描画設定用オブジェクト
Definition SpriteModel.h:59
fk_SpriteModel(void)
コンストラクタ
void setSpriteArea(double x, double y, double w, double h)
画像表示領域指定関数
void setPositionLT(double x, double y)
画像位置指定関数
void setImage(fk_Image *image)
画像データセット関数1
テクスチャ座標を管理するクラス
Definition Vector.h:799
文字列板を管理するクラス
Definition TextImage.h:70
文字列板に表示する文字列を制御するクラス
Definition UniCode.h:125
FLTK 用シーン描画ウィジェットクラス
Definition Window.h:120
Fine Kernel Toolkit 名前空間
Definition Angle.h:6
fk_TexMode
テクスチャモードを表す列挙型
Definition Texture.h:12
fk_StringCode
日本語文字コードを表す列挙型
Definition UniCode.h:12
@ SJIS
Shift-JIS (SJISコード)