9 #include "materialinstance.h"
10 #include "nap/signalslot.h"
54 bool isValid()
const {
return mMesh !=
nullptr; }
79 const std::vector<VkBuffer>& getVertexBuffers();
91 int getVertexBufferBindingIndex(
const std::string& meshVertexAttributeID)
const;
102 void onVertexBufferDataChanged() { mVertexBuffersDirty =
true; }
103 void move(RenderableMesh&& other);
104 void copy(
const RenderableMesh& rhs);
107 MaterialInstance* mMaterialInstance =
nullptr;
108 IMesh* mMesh =
nullptr;
109 std::vector<VkBuffer> mVertexBuffers;
110 std::vector<VkDeviceSize> mVertexBufferOffsets;
111 bool mVertexBuffersDirty =
true;
112 nap::Slot<> mVertexBufferDataChangedSlot = { [&]() { onVertexBufferDataChanged(); } };
124 struct hash<
nap::RenderableMesh>
129 size_t mesh_hash = hash<size_t>{}((size_t)&key.
getMesh());
131 return mesh_hash ^ mate_hash;
const std::vector< VkDeviceSize > & getVertexBufferOffsets() const
Definition: renderablemesh.h:84
MaterialInstance & getMaterialInstance()
Definition: renderablemesh.h:69
RenderableMesh(RenderableMesh &&other)
Definition: renderablemesh.h:39
Definition: signalslot.h:21
const IMesh & getMesh() const
Definition: renderablemesh.h:64
bool operator!=(const RenderableMesh &rhs) const
Definition: renderablemesh.h:48
RenderableMesh(const RenderableMesh &rhs)
Definition: renderablemesh.h:33
Definition: renderservice.h:275
RenderableMesh & operator=(RenderableMesh &&other)
Definition: renderablemesh.h:42
IMesh & getMesh()
Definition: renderablemesh.h:59
Definition: renderablemesh.h:22
Definition: materialinstance.h:297
Definition: templateapp.h:17
bool operator==(const RenderableMesh &rhs) const
Definition: renderablemesh.h:45
RenderableMesh & operator=(const RenderableMesh &rhs)
Definition: renderablemesh.h:36
bool isValid() const
Definition: renderablemesh.h:54
const MaterialInstance & getMaterialInstance() const
Definition: renderablemesh.h:74