LeviLamina
Loading...
Searching...
No Matches
UIRenderContext.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/gui/TextAlignment.h"
7
8// auto generated forward declare list
9// clang-format off
10class Font;
11class HashedString;
12class RectangleArea;
13class ResourceLocation;
16struct CaretMeasureData;
19struct NinesliceInfo;
20struct TextMeasureData;
21namespace Core { class Path; }
22namespace mce { class Color; }
23namespace mce { class TexturePtr; }
24namespace mce { struct ClientTexture; }
25// clang-format on
26
27class UIRenderContext {
28public:
29 // virtual functions
30 // NOLINTBEGIN
31 virtual ~UIRenderContext() = default;
32
33 virtual int getLineLength(::Font&, ::std::string const&, float, bool) const = 0;
34
35 virtual float getTextAlpha() const = 0;
36
37 virtual void setTextAlpha(float) = 0;
38
39 virtual void drawDebugText(
40 ::RectangleArea const&,
41 ::std::string&&,
42 ::mce::Color const&,
43 float,
44 ::ui::TextAlignment,
45 ::TextMeasureData const&,
47 ) = 0;
48
49 virtual void drawText(
50 ::Font&,
51 ::RectangleArea const&,
52 ::std::string&&,
53 ::mce::Color const&,
54 float,
55 ::ui::TextAlignment,
56 ::TextMeasureData const&,
58 ) = 0;
59
60 virtual void flushText(float, ::std::optional<float>) = 0;
61
62 virtual void drawImage(
64 ::glm::vec2 const&,
65 ::glm::vec2 const&,
66 ::glm::vec2 const&,
67 ::glm::vec2 const&,
68 bool const
69 ) = 0;
70
71 virtual void drawNineslice(::mce::ClientTexture const&, ::NinesliceInfo const&) = 0;
72
73 virtual void flushImages(::mce::Color const&, float, ::HashedString const&) = 0;
74
75 virtual void beginSharedMeshBatch(::ComponentRenderBatch&) = 0;
76
77 virtual void endSharedMeshBatch(::ComponentRenderBatch&) = 0;
78
79 virtual void reserveSharedMeshBatch(uint64) = 0;
80
81 virtual uint64 getSharedMeshBatchVertexCount() const = 0;
82
83 virtual void drawRectangle(::RectangleArea const&, ::mce::Color const&, float, int) = 0;
84
85 virtual void fillRectangle(::RectangleArea const&, ::mce::Color const&, float) = 0;
86
87 virtual void increaseStencilRef() = 0;
88
89 virtual void decreaseStencilRef() = 0;
90
91 virtual void resetStencilRef() = 0;
92
93 virtual void fillRectangleStencil(::RectangleArea const&) = 0;
94
95 virtual void enableScissorTest(::RectangleArea const&) = 0;
96
97 virtual void disableScissorTest() = 0;
98
99 virtual void setClippingRectangle(::RectangleArea const&) = 0;
100
101 virtual void setFullClippingRectangle() = 0;
102
103 virtual void saveCurrentClippingRectangle() = 0;
104
105 virtual void restoreSavedClippingRectangle() = 0;
106
107 virtual ::RectangleArea getFullClippingRectangle() const = 0;
108
109 virtual bool updateCustom(::gsl::not_null<::CustomRenderComponent*>) = 0;
110
111 virtual void renderCustom(::gsl::not_null<::CustomRenderComponent*>, int) = 0;
112
113 virtual void cleanup() = 0;
114
115 virtual void removePersistentMeshes() = 0;
116
117 virtual ::mce::TexturePtr getTexture(::ResourceLocation const&, bool) const = 0;
118
119 virtual ::mce::TexturePtr getZippedTexture(::Core::Path const&, ::ResourceLocation const&, bool) const = 0;
120
121 virtual bool unloadTexture(::ResourceLocation const&) = 0;
122
123 virtual ::UITextureInfoPtr getUITextureInfo(::ResourceLocation const&, bool) const = 0;
124
125 virtual void touchTexture(::ResourceLocation const&) = 0;
126
127 virtual ::UIMeasureStrategy& getMeasureStrategy() = 0;
128
129 virtual void snapImageSizeToGrid(::glm::vec2&) const = 0;
130
131 virtual void snapImagePositionToGrid(::glm::vec2&) const = 0;
132
133 virtual void notifyImageEstimate(uint64) = 0;
134 // NOLINTEND
135
136public:
137 // virtual function thunks
138 // NOLINTBEGIN
139
140 // NOLINTEND
141};
Definition Font.h:5
Definition UIMeasureStrategy.h:5
Definition UIRenderContext.h:5
Definition UITextureInfoPtr.h:5
Definition CaretMeasureData.h:5
Definition ComponentRenderBatch.h:5
Definition CustomRenderComponent.h:5
Definition NinesliceInfo.h:5
Definition TextMeasureData.h:5
Definition ClientTexture.h:19