Skip to content
LeviMC
English
AutoLightDark
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
12class Font;
13class HashedString;
14class RectangleArea;
18struct 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& font, ::std::string const& text, float fontSize, bool showColorSymbol) const = 0;
34
35 virtual float getTextAlpha() const = 0;
36
37 virtual void setTextAlpha(float alpha) = 0;
38
39 virtual void drawDebugText(
40 ::RectangleArea const& rect,
41 ::std::string&& text,
42 ::mce::Color const& color,
43 float alpha,
44 ::ui::TextAlignment alignment,
45 ::TextMeasureData const& textData,
46 ::CaretMeasureData const& caretData
47 ) = 0;
48
49 virtual void drawText(
50 ::Font& font,
51 ::RectangleArea const& rect,
52 ::std::string&& text,
53 ::mce::Color const& color,
54 float alpha,
55 ::ui::TextAlignment alignment,
56 ::TextMeasureData const& textData,
57 ::CaretMeasureData const& caretData
58 ) = 0;
59
60 virtual void drawText(
61 ::Font& font,
62 ::RectangleArea const& rect,
63 ::std::string_view text,
64 ::mce::Color const& color,
65 float alpha,
66 ::ui::TextAlignment alignment,
67 ::TextMeasureData const& textData,
68 ::CaretMeasureData const& caretData
69 ) = 0;
70
71 virtual void flushText(float deltaTime, ::std::optional<float> obfuscateSwitchTime) = 0;
72
73 virtual void drawImage(
74 ::mce::ClientTexture const& texture,
75 ::glm::vec2 const& position,
76 ::glm::vec2 const& size,
77 ::glm::vec2 const& uv,
78 ::glm::vec2 const& uvSize,
79 bool const colorCorrected
80 ) = 0;
81
82 virtual void drawNineslice(::mce::ClientTexture const& texture, ::NinesliceInfo const& info) = 0;
83
84 virtual void flushImages(::mce::Color const& color, float alpha, ::HashedString const& materialNameHash) = 0;
85
86 virtual void beginSharedMeshBatch(::ComponentRenderBatch& renderBatch) = 0;
87
88 virtual void endSharedMeshBatch(::ComponentRenderBatch& renderBatch) = 0;
89
90 virtual void reserveSharedMeshBatch(uint64 vertexCount) = 0;
91
92 virtual uint64 getSharedMeshBatchVertexCount() const = 0;
93
94 virtual void drawRectangle(::RectangleArea const& rect, ::mce::Color const& color, float alpha, int thickness) = 0;
95
96 virtual void fillRectangle(::RectangleArea const& rect, ::mce::Color const& color, float alpha) = 0;
97
98 virtual void increaseStencilRef() = 0;
99
100 virtual void decreaseStencilRef() = 0;
101
102 virtual void resetStencilRef() = 0;
103
104 virtual void fillRectangleStencil(::RectangleArea const& rect) = 0;
105
106 virtual void enableScissorTest(::RectangleArea const& rect) = 0;
107
108 virtual void disableScissorTest() = 0;
109
110 virtual void setClippingRectangle(::RectangleArea const& rect) = 0;
111
112 virtual void setFullClippingRectangle() = 0;
113
114 virtual void saveCurrentClippingRectangle() = 0;
115
116 virtual void restoreSavedClippingRectangle() = 0;
117
118 virtual ::RectangleArea getFullClippingRectangle() const = 0;
119
120 virtual bool updateCustom(::gsl::not_null<::CustomRenderComponent*> customRenderer) = 0;
121
122 virtual void renderCustom(::gsl::not_null<::CustomRenderComponent*> customRenderer, int pass) = 0;
123
124 virtual void cleanup() = 0;
125
126 virtual void removePersistentMeshes() = 0;
127
128 virtual ::mce::TexturePtr getTexture(::ResourceLocation const& resourceLocation, bool forceReload) const = 0;
129
130 virtual ::mce::TexturePtr getZippedTexture(
131 ::Core::Path const& zippedFolderPath,
132 ::ResourceLocation const& resourceLocation,
133 bool forceReload
134 ) const = 0;
135
136 virtual bool unloadTexture(::ResourceLocation const& resourceLocation) = 0;
137
138 virtual ::UITextureInfoPtr getUITextureInfo(::ResourceLocation const& resourceLocation, bool forceReload) const = 0;
139
140 virtual void touchTexture(::ResourceLocation const& resourceLocation) = 0;
141
142 virtual ::UIMeasureStrategy& getMeasureStrategy() = 0;
143
144 virtual void snapImageSizeToGrid(::glm::vec2& size) const = 0;
145
146 virtual void snapImagePositionToGrid(::glm::vec2& position) const = 0;
147
148 virtual void notifyImageEstimate(uint64 imageCount) = 0;
149 // NOLINTEND
150};
Definition ComponentRenderBatch.h:5
Definition Path.h:10
Definition CustomRenderComponent.h:5
Definition Font.h:5
Definition HashedString.h:5
Definition RectangleArea.h:5
Definition ResourceLocation.h:15
Definition UIMeasureStrategy.h:5
Definition UIRenderContext.h:5
Definition UITextureInfoPtr.h:5
Definition Color.h:13
Definition TexturePtr.h:7
Definition CaretMeasureData.h:5
Definition NinesliceInfo.h:5
Definition TextMeasureData.h:5
Definition ClientTexture.h:7