3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/FontHandle.h"
7#include "mc/client/gui/TextAlignment.h"
8#include "mc/client/gui/controls/UIRenderContext.h"
9#include "mc/client/renderer/screen/MinecraftUIMeasureStrategy.h"
10#include "mc/deps/core/utility/NonOwnerPointer.h"
18class ResourceLocation;
30namespace Core {
class Path; }
31namespace mce {
class Color; }
32namespace mce {
class TextureGroup; }
33namespace mce {
class TexturePtr; }
34namespace mce {
struct ClientTexture; }
43 struct PersistentMeshItem;
112 ::std::vector<::mce::TexturePtr> textures,
113 ::HashedString
const& materialNameHash,
123 ::std::vector<::mce::TexturePtr> textures,
124 ::HashedString
const& materialNameHash,
133 ::ll::TypedStorage<8, 8, ::IClientInstance&> mClient;
134 ::ll::TypedStorage<8, 8, ::ScreenContext&> mScreenContext;
135 ::ll::TypedStorage<8, 32, ::MinecraftUIMeasureStrategy> mMeasureStrategy;
136 ::ll::TypedStorage<4, 4, float> mTextAlpha;
137 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IUIRepository>> mUIRepository;
138 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::mce::TextureGroup>> mTextureGroup;
139 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::mce::TextureGroup>> mStoreCacheTextures;
140 ::ll::TypedStorage<8, 24, ::std::vector<::MinecraftUIRenderContext::TextItem>> mTextToDraw;
141 ::ll::TypedStorage<8, 24, ::std::vector<::MinecraftUIRenderContext::ImageItem>> mImagesToDraw;
142 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::MinecraftUIRenderContext::PersistentMeshItem>>>
144 ::ll::TypedStorage<1, 1, uchar> mStencilRef;
145 ::ll::TypedStorage<4, 4, int> mCurrentPersistentMeshItemIdx;
146 ::ll::TypedStorage<8, 80, ::FontHandle> mDebugTextFontHandle;
147 ::ll::TypedStorage<8, 8, ::UIScene const&> mCurrentScene;
148 ::ll::TypedStorage<4, 20, ::std::optional<::glm::vec4>> mSavedOriginalClippingRectangle;
162 virtual int getLineLength(
::Font& font, ::std::string
const& text,
float fontSize,
bool showColorSymbol)
const
165 virtual float getTextAlpha() const ;
167 virtual
void setTextAlpha(
float alpha) ;
169 virtual
void drawDebugText(
170 ::RectangleArea const& rect,
171 ::
std::
string&& text,
172 ::mce::Color const& color,
174 ::ui::TextAlignment alignment,
179 virtual
void drawText(
181 ::RectangleArea const& rect,
182 ::
std::
string&& text,
183 ::mce::Color const& color,
185 ::ui::TextAlignment alignment,
190 virtual
void flushText(
float deltaTime, ::
std::optional<
float> obfuscateSwitchTime) ;
192 virtual
void drawImage(
193 ::mce::ClientTexture const& texture,
194 ::glm::vec2 const& position,
195 ::glm::vec2 const& size,
196 ::glm::vec2 const& uv,
197 ::glm::vec2 const& uvSize,
198 bool const colorCorrected
201 virtual
void drawNineslice(::mce::ClientTexture const& texture, ::
NinesliceInfo const& info) ;
204 flushImages(::mce::Color const& color,
float alpha, ::HashedString const& materialNameHash) ;
206 virtual ::mce::TexturePtr getTexture(::ResourceLocation const& resourceLocation,
bool forceReload) const
209 virtual ::mce::TexturePtr getZippedTexture(
210 ::Core::Path const& zippedFolderPath,
211 ::ResourceLocation const& resourceLocation,
215 virtual
bool unloadTexture(::ResourceLocation const& resourceLocation) ;
217 virtual ::
UITextureInfoPtr getUITextureInfo(::ResourceLocation const& resourceLocation,
bool forceReload) const
220 virtual
void touchTexture(::ResourceLocation const& resourceLocation) ;
226 virtual
void reserveSharedMeshBatch(uint64 vertexCount) ;
228 virtual uint64 getSharedMeshBatchVertexCount() const ;
231 drawRectangle(::RectangleArea const& rect, ::mce::Color const& color,
float alpha,
int thickness) ;
233 virtual
void fillRectangle(::RectangleArea const& rect, ::mce::Color const& color,
float alpha) ;
235 virtual
void increaseStencilRef() ;
237 virtual
void decreaseStencilRef() ;
239 virtual
void resetStencilRef() ;
241 virtual
void fillRectangleStencil(::RectangleArea const& rect) ;
243 virtual
void enableScissorTest(::RectangleArea const& rect) ;
245 virtual
void disableScissorTest() ;
247 virtual
void setClippingRectangle(::RectangleArea const& rect) ;
249 virtual
void setFullClippingRectangle() ;
251 virtual
void saveCurrentClippingRectangle() ;
253 virtual
void restoreSavedClippingRectangle() ;
255 virtual ::RectangleArea getFullClippingRectangle() const ;
257 virtual
void cleanup() ;
259 virtual
void removePersistentMeshes() ;
263 virtual
void snapImageSizeToGrid(::glm::vec2& size) const ;
265 virtual
void snapImagePositionToGrid(::glm::vec2& position) const ;
267 virtual
void notifyImageEstimate(uint64 imageCount) ;
292 MCAPI
void* $ctor(::IClientInstance& client, ::
ScreenContext& screenContext, ::
UIScene const& currentScene);
304 MCAPI
int $getLineLength(::
Font& font, ::
std::
string const& text,
float fontSize,
bool showColorSymbol) const;
306 MCFOLD
float $getTextAlpha() const;
308 MCAPI
void $setTextAlpha(
float alpha);
310 MCAPI
void $drawDebugText(
311 ::RectangleArea const& rect,
312 ::
std::
string&& text,
313 ::mce::Color const& color,
315 ::ui::TextAlignment alignment,
320 MCAPI
void $drawText(
322 ::RectangleArea const& rect,
323 ::
std::
string&& text,
324 ::mce::Color const& color,
326 ::ui::TextAlignment alignment,
331 MCAPI
void $flushText(
float deltaTime, ::
std::optional<
float> obfuscateSwitchTime);
333 MCAPI
void $drawImage(
334 ::mce::ClientTexture const& texture,
335 ::glm::vec2 const& position,
336 ::glm::vec2 const& size,
337 ::glm::vec2 const& uv,
338 ::glm::vec2 const& uvSize,
339 bool const colorCorrected
342 MCAPI
void $drawNineslice(::mce::ClientTexture const& texture, ::
NinesliceInfo const& info);
344 MCAPI
void $flushImages(::mce::Color const& color,
float alpha, ::HashedString const& materialNameHash);
346 MCAPI ::mce::TexturePtr $getTexture(::ResourceLocation const& resourceLocation,
bool forceReload) const;
348 MCAPI ::mce::TexturePtr $getZippedTexture(
349 ::Core::Path const& zippedFolderPath,
350 ::ResourceLocation const& resourceLocation,
354 MCAPI
bool $unloadTexture(::ResourceLocation const& resourceLocation);
356 MCAPI ::
UITextureInfoPtr $getUITextureInfo(::ResourceLocation const& resourceLocation,
bool forceReload) const;
358 MCAPI
void $touchTexture(::ResourceLocation const& resourceLocation);
364 MCAPI
void $reserveSharedMeshBatch(uint64 vertexCount);
366 MCAPI uint64 $getSharedMeshBatchVertexCount() const;
368 MCAPI
void $drawRectangle(::RectangleArea const& rect, ::mce::Color const& color,
float alpha,
int thickness);
370 MCAPI
void $fillRectangle(::RectangleArea const& rect, ::mce::Color const& color,
float alpha);
372 MCAPI
void $increaseStencilRef();
374 MCAPI
void $decreaseStencilRef();
376 MCAPI
void $resetStencilRef();
378 MCAPI
void $fillRectangleStencil(::RectangleArea const& rect);
380 MCAPI
void $enableScissorTest(::RectangleArea const& rect);
382 MCAPI
void $disableScissorTest();
384 MCAPI
void $setClippingRectangle(::RectangleArea const& rect);
386 MCAPI
void $setFullClippingRectangle();
388 MCAPI
void $saveCurrentClippingRectangle();
390 MCAPI
void $restoreSavedClippingRectangle();
392 MCAPI ::RectangleArea $getFullClippingRectangle() const;
394 MCAPI
void $cleanup();
396 MCAPI
void $removePersistentMeshes();
400 MCAPI
void $snapImageSizeToGrid(::glm::vec2& size) const;
402 MCAPI
void $snapImagePositionToGrid(::glm::vec2& position) const;
404 MCAPI
void $notifyImageEstimate(uint64 imageCount);
Definition MinecraftUIRenderContext.h:5
static MCAPI void ** $vftable()
Definition ScreenContext.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 IUIRepository.h:5
Definition MinecraftUIRenderContext.h:70
Definition MinecraftUIRenderContext.h:89
MCAPI PersistentMeshItem(::BatchKey const &batchKey, ::std::vector<::mce::TexturePtr > textures, ::HashedString const &materialNameHash, uint numInstances)
MCAPI void * $ctor(::BatchKey const &batchKey, ::std::vector<::mce::TexturePtr > textures, ::HashedString const &materialNameHash, uint numInstances)
Definition MinecraftUIRenderContext.h:47
Definition NinesliceInfo.h:5
Definition TextMeasureData.h:5