3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/TextAlignment.h"
21namespace Core {
class Path; }
22namespace mce {
class Color; }
31 virtual ~UIRenderContext() =
default;
33 virtual int getLineLength(::Font& font, ::std::string
const& text,
float fontSize,
bool showColorSymbol)
const = 0;
35 virtual float getTextAlpha()
const = 0;
37 virtual void setTextAlpha(
float alpha) = 0;
39 virtual void drawDebugText(
40 ::RectangleArea
const& rect,
42 ::mce::Color
const& color,
44 ::ui::TextAlignment alignment,
45 ::TextMeasureData
const& textData,
46 ::CaretMeasureData
const& caretData
49 virtual void drawText(
51 ::RectangleArea
const& rect,
53 ::mce::Color
const& color,
55 ::ui::TextAlignment alignment,
56 ::TextMeasureData
const& textData,
57 ::CaretMeasureData
const& caretData
60 virtual void drawText(
62 ::RectangleArea
const& rect,
63 ::std::string_view text,
64 ::mce::Color
const& color,
66 ::ui::TextAlignment alignment,
67 ::TextMeasureData
const& textData,
68 ::CaretMeasureData
const& caretData
71 virtual void flushText(
float deltaTime, ::std::optional<float> obfuscateSwitchTime) = 0;
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
82 virtual void drawNineslice(::mce::ClientTexture
const& texture, ::NinesliceInfo
const& info) = 0;
84 virtual void flushImages(::mce::Color
const& color,
float alpha, ::HashedString
const& materialNameHash) = 0;
86 virtual void beginSharedMeshBatch(::ComponentRenderBatch& renderBatch) = 0;
88 virtual void endSharedMeshBatch(::ComponentRenderBatch& renderBatch) = 0;
90 virtual void reserveSharedMeshBatch(uint64 vertexCount) = 0;
92 virtual uint64 getSharedMeshBatchVertexCount()
const = 0;
94 virtual void drawRectangle(::RectangleArea
const& rect, ::mce::Color
const& color,
float alpha,
int thickness) = 0;
96 virtual void fillRectangle(::RectangleArea
const& rect, ::mce::Color
const& color,
float alpha) = 0;
98 virtual void increaseStencilRef() = 0;
100 virtual void decreaseStencilRef() = 0;
102 virtual void resetStencilRef() = 0;
104 virtual void fillRectangleStencil(::RectangleArea
const& rect) = 0;
106 virtual void enableScissorTest(::RectangleArea
const& rect) = 0;
108 virtual void disableScissorTest() = 0;
110 virtual void setClippingRectangle(::RectangleArea
const& rect) = 0;
112 virtual void setFullClippingRectangle() = 0;
114 virtual void saveCurrentClippingRectangle() = 0;
116 virtual void restoreSavedClippingRectangle() = 0;
118 virtual ::RectangleArea getFullClippingRectangle()
const = 0;
120 virtual bool updateCustom(::gsl::not_null<::CustomRenderComponent*> customRenderer) = 0;
122 virtual void renderCustom(::gsl::not_null<::CustomRenderComponent*> customRenderer,
int pass) = 0;
124 virtual void cleanup() = 0;
126 virtual void removePersistentMeshes() = 0;
128 virtual ::mce::TexturePtr getTexture(::ResourceLocation
const& resourceLocation,
bool forceReload)
const = 0;
130 virtual ::mce::TexturePtr getZippedTexture(
131 ::Core::Path
const& zippedFolderPath,
132 ::ResourceLocation
const& resourceLocation,
136 virtual bool unloadTexture(::ResourceLocation
const& resourceLocation) = 0;
138 virtual ::UITextureInfoPtr getUITextureInfo(::ResourceLocation
const& resourceLocation,
bool forceReload)
const = 0;
140 virtual void touchTexture(::ResourceLocation
const& resourceLocation) = 0;
142 virtual ::UIMeasureStrategy& getMeasureStrategy() = 0;
144 virtual void snapImageSizeToGrid(::glm::vec2& size)
const = 0;
146 virtual void snapImagePositionToGrid(::glm::vec2& position)
const = 0;
148 virtual void notifyImageEstimate(uint64 imageCount) = 0;
Definition ComponentRenderBatch.h:5
Definition CustomRenderComponent.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 TexturePtr.h:7
Definition CaretMeasureData.h:5
Definition NinesliceInfo.h:5
Definition TextMeasureData.h:5
Definition ClientTexture.h:7