| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
- //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
- #pragma once
- #include "BsCorePrerequisites.h"
- #include "BsImportOptions.h"
- #include "BsFont.h"
- namespace bs
- {
- /** @addtogroup Text
- * @{
- */
- /** Determines how is a font rendered into the bitmap texture. */
- enum class FontRenderMode
- {
- Smooth, /*< Render antialiased fonts without hinting (slightly more blurry). */
- Raster, /*< Render non-antialiased fonts without hinting (slightly more blurry). */
- HintedSmooth, /*< Render antialiased fonts with hinting. */
- HintedRaster /*< Render non-antialiased fonts with hinting. */
- };
- /** Import options that allow you to control how is a font imported. */
- class BS_CORE_EXPORT FontImportOptions : public ImportOptions
- {
- public:
- FontImportOptions();
- /** Sets font sizes that are to be imported. Sizes are in points. */
- void setFontSizes(const Vector<UINT32>& fontSizes) { mFontSizes = fontSizes; }
- /** Adds an index range of characters to import. */
- void addCharIndexRange(UINT32 from, UINT32 to);
- /** Clears all character indexes, so no character are imported. */
- void clearCharIndexRanges();
- /** Sets dots per inch resolution to use when rendering the characters into the texture. */
- void setDPI(UINT32 dpi) { mDPI = dpi; }
- /** Set the render mode used for rendering the characters into a bitmap. */
- void setRenderMode(FontRenderMode renderMode) { mRenderMode = renderMode; }
- /** Sets whether the bold font style should be used when rendering. */
- void setBold(bool bold) { mBold = bold; }
- /** Sets whether the italic font style should be used when rendering. */
- void setItalic(bool italic) { mItalic = italic; }
- /** Gets the sizes that are to be imported. Ranges are defined as unicode numbers. */
- Vector<UINT32> getFontSizes() const { return mFontSizes; }
- /** Gets character index ranges to import. Ranges are defined as unicode numbers. */
- Vector<std::pair<UINT32, UINT32>> getCharIndexRanges() const { return mCharIndexRanges; }
- /** Returns dots per inch scale that will be used when rendering the characters. */
- UINT32 getDPI() const { return mDPI; }
- /** Get the render mode used for rendering the characters into a bitmap. */
- FontRenderMode getRenderMode() const { return mRenderMode; }
- /** Sets whether the bold font style should be used when rendering. */
- bool getBold() const { return mBold; }
- /** Sets whether the italic font style should be used when rendering. */
- bool getItalic() const { return mItalic; }
- /** Creates a new import options object that allows you to customize how are fonts imported. */
- static SPtr<FontImportOptions> create();
- private:
- Vector<UINT32> mFontSizes;
- Vector<std::pair<UINT32, UINT32>> mCharIndexRanges;
- UINT32 mDPI;
- FontRenderMode mRenderMode;
- bool mBold;
- bool mItalic;
- /************************************************************************/
- /* SERIALIZATION */
- /************************************************************************/
- public:
- friend class FontImportOptionsRTTI;
- static RTTITypeBase* getRTTIStatic();
- RTTITypeBase* getRTTI() const override;
- };
- /** @} */
- }
|