Visual Computing Library
Loading...
Searching...
No Matches
text_view.h
1/*****************************************************************************
2 * VCLib *
3 * Visual Computing Library *
4 * *
5 * Copyright(C) 2021-2025 *
6 * Visual Computing Lab *
7 * ISTI - Italian National Research Council *
8 * *
9 * All rights reserved. *
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the Mozilla Public License Version 2.0 as published *
13 * by the Mozilla Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 * This program is distributed in the hope that it will be useful, *
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
19 * Mozilla Public License Version 2.0 *
20 * (https://www.mozilla.org/en-US/MPL/2.0/) for more details. *
21 ****************************************************************************/
22
23#ifndef VCL_BGFX_TEXT_TEXT_VIEW_H
24#define VCL_BGFX_TEXT_TEXT_VIEW_H
25
26#include "../context.h"
27#include "text_manager.h"
28
29namespace vcl {
30
32{
33 TextManager mTextManager;
34 bgfx::ViewId mView = BGFX_INVALID_VIEW;
35 float mTextViewMatrix[16];
36 float mTextProjMatrix[16];
37 uint mWidth = 0;
38 uint mHeight = 0;
39
40public:
41 TextView();
42 ~TextView();
43
44 void init(uint width, uint height);
45
46 void enableText(bool b = true);
47 bool isTextEnabled() const;
48
49 void setTextFont(VclFont::Enum font, uint fontSize);
50 void setTextFont(const std::string& fontName, uint fontSize);
51
52 void clearText();
53
54 void appendStaticText(
55 const vcl::Point2f& pos,
56 const std::string& text,
57 const vcl::Color& color = vcl::Color::Black);
58
59 void appendTransientText(
60 const vcl::Point2f& pos,
61 const std::string& text,
62 const vcl::Color& color = vcl::Color::Black);
63
64 void frame(bgfx::FrameBufferHandle fbh);
65
66 void resize(uint width, uint height);
67
68private:
69 void updateProjMatrix();
70};
71
72} // namespace vcl
73
74#endif // VCL_BGFX_TEXT_TEXT_VIEW_H
The Color class represents a 32 bit color.
Definition color.h:48
The Point class represents an N-dimensional point containing N scalar values.
Definition point.h:58
A class representing a line segment in n-dimensional space. The class is parameterized by a PointConc...
Definition segment.h:43
Definition text_manager.h:36
Definition text_view.h:32