You.i Engine
YiBitmapTextSceneNode.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_BITMAP_TEXT_SCENE_NODE_H_
3 #define _YI_BITMAP_TEXT_SCENE_NODE_H_
4 
6 
23 {
24 public:
26  virtual ~CYIBitmapTextSceneNode();
27 
34 
35  virtual void SetSize(const glm::vec3 &vSize, bool bDirtyLayout = true) override;
36 
37 private:
38  void CalculateTextLayoutInfo(const CYITextLayout *pTextLayout, const YI_TEXT_RENDER_INFO &rTextRenderInfo, YI_FLOAT_RECT *pTextExtents, glm::vec2 *pvRenderedSize, float *pfVerticalOffset, YI_FLOAT_RECT_REL *pGlyphBox) const;
39 
40  virtual void PrepareToDraw() override;
41  void CreateTextMesh(const YI_FLOAT_RECT_REL &rGlyphBox, const YI_FLOAT_RECT &rTextExtents, const glm::vec2 &rvRenderedSize, float fVerticalOffset);
42  std::unique_ptr<CYIBitmap> GenerateTextBuffer(const CYITextLayout *pTextLayout, const YI_TEXT_RENDER_INFO &rTextRenderInfo, const YI_FLOAT_RECT &rTextExtents) const;
43  static void SetTextBuffer(std::unique_ptr<CYIBitmap> pBuffer, const std::shared_ptr<CYIAssetTexture> &pTexture);
44 
45  std::shared_ptr<CYIAssetTexture> m_pDestBufferAsset;
46 
47  CYIAssetTextureBase::YI_MIN_MAG_FILTER m_textureMinFilter;
48  CYIAssetTextureBase::YI_MIN_MAG_FILTER m_textureMagFilter;
49 
51 };
52 
57 #endif // _YI_BITMAP_TEXT_SCENE_NODE_H_
#define YI_TYPE_BASES(...)
Definition: YiRtti.h:350
virtual void SetSize(const glm::vec3 &vSize, bool bDirtyLayout=true) override
virtual ~CYIBitmapTextSceneNode()
YI_MIN_MAG_FILTER
Definition: YiAssetTextureBase.h:30
Definition: YiPredef.h:273
A scene node type that renders text.
Definition: YiTextSceneNode.h:77
void SetTextureFilteringMode(const CYIAssetTextureBase::YI_MIN_MAG_FILTER minFilter, const CYIAssetTextureBase::YI_MIN_MAG_FILTER magFilter)
Base class for abstracting the layout for text.
Definition: YiTextLayout.h:33
Definition: YiPredef.h:342
Struct used to pass information when rendering text.
Definition: YiTextEngine.h:97
Scene node containing text rendered into a bitmap.
Definition: YiBitmapTextSceneNode.h:22