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 flushText(
float deltaTime, ::std::optional<float> obfuscateSwitchTime) = 0;
62 virtual void drawImage(
63 ::mce::ClientTexture
const& texture,
64 ::glm::vec2
const& position,
65 ::glm::vec2
const& size,
66 ::glm::vec2
const& uv,
67 ::glm::vec2
const& uvSize,
68 bool const colorCorrected
71 virtual void drawNineslice(::mce::ClientTexture
const& texture, ::NinesliceInfo
const& info) = 0;
73 virtual void flushImages(::mce::Color
const& color,
float alpha, ::HashedString
const& materialNameHash) = 0;
75 virtual void beginSharedMeshBatch(::ComponentRenderBatch& renderBatch) = 0;
77 virtual void endSharedMeshBatch(::ComponentRenderBatch& renderBatch) = 0;
79 virtual void reserveSharedMeshBatch(uint64 vertexCount) = 0;
81 virtual uint64 getSharedMeshBatchVertexCount()
const = 0;
83 virtual void drawRectangle(::RectangleArea
const& rect, ::mce::Color
const& color,
float alpha,
int thickness) = 0;
85 virtual void fillRectangle(::RectangleArea
const& rect, ::mce::Color
const& color,
float alpha) = 0;
87 virtual void increaseStencilRef() = 0;
89 virtual void decreaseStencilRef() = 0;
91 virtual void resetStencilRef() = 0;
93 virtual void fillRectangleStencil(::RectangleArea
const& rect) = 0;
95 virtual void enableScissorTest(::RectangleArea
const& rect) = 0;
97 virtual void disableScissorTest() = 0;
99 virtual void setClippingRectangle(::RectangleArea
const& rect) = 0;
101 virtual void setFullClippingRectangle() = 0;
103 virtual void saveCurrentClippingRectangle() = 0;
105 virtual void restoreSavedClippingRectangle() = 0;
107 virtual ::RectangleArea getFullClippingRectangle()
const = 0;
109 virtual bool updateCustom(::gsl::not_null<::CustomRenderComponent*> customRenderer) = 0;
111 virtual void renderCustom(::gsl::not_null<::CustomRenderComponent*> customRenderer,
int pass) = 0;
113 virtual void cleanup() = 0;
115 virtual void removePersistentMeshes() = 0;
117 virtual ::mce::TexturePtr getTexture(::ResourceLocation
const& resourceLocation,
bool forceReload)
const = 0;
119 virtual ::mce::TexturePtr getZippedTexture(
120 ::Core::Path
const& zippedFolderPath,
121 ::ResourceLocation
const& resourceLocation,
125 virtual bool unloadTexture(::ResourceLocation
const& resourceLocation) = 0;
127 virtual ::UITextureInfoPtr getUITextureInfo(::ResourceLocation
const& resourceLocation,
bool forceReload)
const = 0;
129 virtual void touchTexture(::ResourceLocation
const& resourceLocation) = 0;
131 virtual ::UIMeasureStrategy& getMeasureStrategy() = 0;
133 virtual void snapImageSizeToGrid(::glm::vec2& size)
const = 0;
135 virtual void snapImagePositionToGrid(::glm::vec2& position)
const = 0;
137 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:19
Definition CaretMeasureData.h:5
Definition NinesliceInfo.h:5
Definition TextMeasureData.h:5
Definition ClientTexture.h:7