3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/core/checked_resource_service/ClientResourcePointer.h"
7#include "mc/deps/core/debug/brstd/static_vector.h"
8#include "mc/deps/core_graphics/enums/PrimitiveMode.h"
9#include "mc/deps/minecraft_renderer/renderer/MeshData.h"
10#include "mc/deps/minecraft_renderer/renderer/MeshDebugString.h"
11#include "mc/deps/minecraft_renderer/resources/IndexBufferContainer.h"
12#include "mc/deps/renderer/VertexLayout.h"
13#include "mc/deps/renderer/hal/interface/Buffer.h"
21namespace dragon::mesh {
class Mesh; }
32class Mesh :
public ::mce::IndexBufferContainer {
37 using TextureList = ::brstd::static_vector<
38 ::std::variant<::std::monostate, ::mce::TexturePtr, ::mce::ClientTexture, ::mce::ServerTexture>,
44 ::ll::TypedStorage<8, 24, ::std::variant<::std::monostate, uint64, ::glm::ivec3>> mCacheKey;
45 ::ll::TypedStorage<1, 1, bool> mTemporary;
46 ::ll::TypedStorage<1, 1, ::mce::PrimitiveMode> mPrimitiveMode;
47 ::ll::TypedStorage<1, 1, ::mce::MeshDebugString> mDebugName;
48 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::mce::BufferResourceService>> mBufferResourceService;
49 ::ll::TypedStorage<8, 352, ::mce::MeshData> mMeshData;
53 ::mce::ClientResourcePointer<::std::variant<
56 ::mce::ClientResourcePointer<::dragon::ResolvedVertexBufferResource>,
57 ::mce::ClientResourcePointer<::dragon::ResolvedIndexBufferResource>>>>
62 ::mce::ClientResourcePointer<::std::variant<
65 ::mce::ClientResourcePointer<::dragon::ResolvedVertexBufferResource>,
66 ::mce::ClientResourcePointer<::dragon::ResolvedIndexBufferResource>>>>
68 ::ll::TypedStorage<4, 8, ::std::optional<uint>> mVertexCount;
69 ::ll::TypedStorage<2, 110, ::mce::VertexLayout> mVertexLayout;
70 ::ll::TypedStorage<8, 24, ::std::vector<uchar>> mRawData;
75 Mesh& operator=(Mesh
const&);
81 MCAPI
Mesh(::mce::Mesh&& c);
83 MCAPI
Mesh(::mce::Mesh
const& rhs);
86 ::std::shared_ptr<::mce::BufferResourceService>& bufferResourceService,
87 ::mce::MeshData&& data,
89 ::std::string_view debugName
102 ::std::variant<::std::monostate, ::mce::TexturePtr, ::mce::ClientTexture, ::mce::ServerTexture>,
108 ::std::optional<::dragon::RenderMetadata> renderMetadata
115 MCAPI ::gsl::span<uchar const> getRawData()
const;
117 MCAPI
bool isValid()
const;
121 MCNAPI
explicit operator ::dragon::mesh::Mesh()
const;
127 MCAPI
void renderMesh(
130 ::std::variant<::std::monostate, ::mce::TexturePtr, ::mce::ClientTexture, ::mce::ServerTexture>
const& texture,
137 MCAPI
void renderMesh(
140 ::gsl::span<::mce::ClientTexture const*> textures,
147 MCAPI
void renderMesh(
151 ::std::variant<::std::monostate, ::mce::TexturePtr, ::mce::ClientTexture, ::mce::ServerTexture>
const& texture,
170 ::std::shared_ptr<::mce::BufferResourceService>& bufferResourceService,
173 ::std::string_view debugName
Definition static_vector.h:8
Definition IndexBufferContainer.h:7
Definition MaterialPtr.h:14
Definition MeshContext.h:7
MCAPI void prepareRenderData(::mce::VertexLayout const &forcedLayout) const
MCAPI bool _loadRawData(::mce::BufferResourceService &bufferResourceService, ::std::string_view debugName) const
MCAPI void load(::mce::BufferResourceService &bufferResourceService)
MCAPI void prepareAsEmptyData(::mce::VertexLayout const &forcedLayout) const
MCAPI bool _loadBlankData(::mce::BufferResourceService &bufferResourceService, ::std::string_view debugName) const
MCAPI void generateHALData(::mce::VertexLayout const *forcedLayout, bool splitStream) const
MCAPI void _renderMesh(::mce::MeshContext &meshContext, ::mce::MaterialPtr const &materialPtr, ::brstd::static_vector< ::std::variant<::std::monostate, ::mce::TexturePtr, ::mce::ClientTexture, ::mce::ServerTexture >, 8 > textures, uint startOffset, uint count, ::OffscreenCaptureDescription const &offscreenCaptureDescription, ::mce::IndexBufferContainer const *overrideIndexBuffer, ::std::optional<::dragon::RenderMetadata > renderMetadata) const
MCAPI operator::dragon::mesh::Mesh() const
MCAPI bool areBuffersValid() const
MCAPI void _move(::mce::Mesh &rhs)
Definition TexturePtr.h:7
Definition OffscreenCaptureDescription.h:5
Definition ResolvedIndexBufferResource.h:7
Definition ResolvedVertexBufferResource.h:7
Definition BufferResourceService.h:7
Definition ClientTexture.h:7
Definition ServerTexture.h:7
Definition VertexLayout.h:7