Some warning fixes
This commit is contained in:
+2
-2
@@ -124,7 +124,7 @@ if(MSVC)
|
|||||||
Seele.natvis
|
Seele.natvis
|
||||||
DESTINATION .)
|
DESTINATION .)
|
||||||
else()
|
else()
|
||||||
target_compile_options(Engine PUBLIC -g -Wall -Wextra -Wno-delete-incomplete -pedantic -fcoroutines)
|
target_compile_options(Engine PUBLIC -g -Wall -Wextra -Wno-delete-incomplete -pedantic -std=c++20)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_subdirectory(src/)
|
add_subdirectory(src/)
|
||||||
@@ -189,4 +189,4 @@ install(
|
|||||||
${CMAKE_SOURCE_DIR}/res
|
${CMAKE_SOURCE_DIR}/res
|
||||||
DESTINATION
|
DESTINATION
|
||||||
${CMAKE_INSTALL_PREFIX}
|
${CMAKE_INSTALL_PREFIX}
|
||||||
)
|
)
|
||||||
|
|||||||
Symlink
+1
@@ -0,0 +1 @@
|
|||||||
|
bin/compile_commands.json
|
||||||
@@ -196,7 +196,7 @@ public:
|
|||||||
, comp(comp)
|
, comp(comp)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
constexpr explicit Map(const Allocator& alloc) noexcept(noexcept(Compare))
|
constexpr explicit Map(const Allocator& alloc) noexcept(noexcept(Compare()))
|
||||||
: nodeContainer(alloc)
|
: nodeContainer(alloc)
|
||||||
, root(SIZE_MAX)
|
, root(SIZE_MAX)
|
||||||
, beginIt(SIZE_MAX)
|
, beginIt(SIZE_MAX)
|
||||||
@@ -662,4 +662,4 @@ private:
|
|||||||
return !comp(a, b) && !comp(b, a);
|
return !comp(a, b) && !comp(b, a);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace Seele
|
} // namespace Seele
|
||||||
|
|||||||
@@ -40,8 +40,8 @@ bool UniformBuffer::updateContents(const BulkResourceData& resourceData)
|
|||||||
ShaderBuffer::ShaderBuffer(QueueFamilyMapping mapping, uint32 stride, uint32 numElements, const BulkResourceData& resourceData)
|
ShaderBuffer::ShaderBuffer(QueueFamilyMapping mapping, uint32 stride, uint32 numElements, const BulkResourceData& resourceData)
|
||||||
: Buffer(mapping, resourceData.owner)
|
: Buffer(mapping, resourceData.owner)
|
||||||
, contents(resourceData.size)
|
, contents(resourceData.size)
|
||||||
, stride(stride)
|
|
||||||
, numElements(numElements)
|
, numElements(numElements)
|
||||||
|
, stride(stride)
|
||||||
{
|
{
|
||||||
if (resourceData.data != nullptr)
|
if (resourceData.data != nullptr)
|
||||||
{
|
{
|
||||||
@@ -88,4 +88,4 @@ IndexBuffer::IndexBuffer(QueueFamilyMapping mapping, uint64 size, Gfx::SeIndexTy
|
|||||||
}
|
}
|
||||||
IndexBuffer::~IndexBuffer()
|
IndexBuffer::~IndexBuffer()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,17 @@ public:
|
|||||||
: binding(other.binding), descriptorType(other.descriptorType), descriptorCount(other.descriptorCount), shaderStages(other.shaderStages)
|
: binding(other.binding), descriptorType(other.descriptorType), descriptorCount(other.descriptorCount), shaderStages(other.shaderStages)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
DescriptorBinding& operator=(const DescriptorBinding& other)
|
||||||
|
{
|
||||||
|
if(this != &other)
|
||||||
|
{
|
||||||
|
binding = other.binding;
|
||||||
|
descriptorType = other.descriptorType;
|
||||||
|
descriptorCount = other.descriptorCount;
|
||||||
|
shaderStages = other.shaderStages;
|
||||||
|
}
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
uint32 binding;
|
uint32 binding;
|
||||||
SeDescriptorType descriptorType;
|
SeDescriptorType descriptorType;
|
||||||
uint32 descriptorCount;
|
uint32 descriptorCount;
|
||||||
@@ -64,7 +75,14 @@ public:
|
|||||||
, name(name)
|
, name(name)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
virtual ~DescriptorLayout() {}
|
DescriptorLayout(const DescriptorLayout& other)
|
||||||
|
{
|
||||||
|
descriptorBindings.resize(other.descriptorBindings.size());
|
||||||
|
for(uint32 i = 0; i < descriptorBindings.size(); ++i)
|
||||||
|
{
|
||||||
|
descriptorBindings[i] = other.descriptorBindings[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
DescriptorLayout& operator=(const DescriptorLayout& other)
|
DescriptorLayout& operator=(const DescriptorLayout& other)
|
||||||
{
|
{
|
||||||
if (this != &other)
|
if (this != &other)
|
||||||
@@ -77,6 +95,7 @@ public:
|
|||||||
}
|
}
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
virtual ~DescriptorLayout() {}
|
||||||
virtual void create() = 0;
|
virtual void create() = 0;
|
||||||
virtual void addDescriptorBinding(uint32 binding, SeDescriptorType type, uint32 arrayCount = 1, SeDescriptorBindingFlags bindingFlags = 0, SeShaderStageFlags shaderStages = SeShaderStageFlagBits::SE_SHADER_STAGE_ALL);
|
virtual void addDescriptorBinding(uint32 binding, SeDescriptorType type, uint32 arrayCount = 1, SeDescriptorBindingFlags bindingFlags = 0, SeShaderStageFlags shaderStages = SeShaderStageFlagBits::SE_SHADER_STAGE_ALL);
|
||||||
virtual void reset();
|
virtual void reset();
|
||||||
@@ -119,4 +138,4 @@ protected:
|
|||||||
};
|
};
|
||||||
DEFINE_REF(PipelineLayout)
|
DEFINE_REF(PipelineLayout)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ extern List<VertexData*> vertexDataList;
|
|||||||
|
|
||||||
StaticMeshVertexData::StaticMeshVertexData(Gfx::PGraphics graphics)
|
StaticMeshVertexData::StaticMeshVertexData(Gfx::PGraphics graphics)
|
||||||
: VertexData(graphics)
|
: VertexData(graphics)
|
||||||
|
, head(0)
|
||||||
{
|
{
|
||||||
vertexDataList.add(this);
|
vertexDataList.add(this);
|
||||||
}
|
}
|
||||||
@@ -13,3 +14,10 @@ StaticMeshVertexData::StaticMeshVertexData(Gfx::PGraphics graphics)
|
|||||||
StaticMeshVertexData::~StaticMeshVertexData()
|
StaticMeshVertexData::~StaticMeshVertexData()
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
MeshId StaticMeshVertexData::allocateVertexData(uint64 numVertices)
|
||||||
|
{
|
||||||
|
MeshId res{idCounter++};
|
||||||
|
meshOffsets[res] = head;
|
||||||
|
head += numVertices;
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
#pragma once
|
||||||
#include "VertexData.h"
|
#include "VertexData.h"
|
||||||
|
|
||||||
namespace Seele
|
namespace Seele
|
||||||
@@ -7,6 +8,24 @@ class StaticMeshVertexData : public VertexData
|
|||||||
public:
|
public:
|
||||||
StaticMeshVertexData(Gfx::PGraphics graphics);
|
StaticMeshVertexData(Gfx::PGraphics graphics);
|
||||||
virtual ~StaticMeshVertexData();
|
virtual ~StaticMeshVertexData();
|
||||||
|
virtual MeshId allocateVertexData(uint64 numVertices) override;
|
||||||
|
void loadPositions(MeshId id, const Array<Vector>& data);
|
||||||
|
void loadTexCoords(MeshId id, const Array<Vector2>& data);
|
||||||
|
void loadNormals(MeshId id, const Array<Vector>& data);
|
||||||
|
void loadTangents(MeshId id, const Array<Vector>& data);
|
||||||
|
void loadBiTangents(MeshId id, const Array<Vector>& data);
|
||||||
private:
|
private:
|
||||||
|
Gfx::PShaderBuffer positions;
|
||||||
|
Array<Vector> positionData;
|
||||||
|
Gfx::PShaderBuffer texCoords;
|
||||||
|
Array<Vector2> texCoordsData;
|
||||||
|
Gfx::PShaderBuffer normals;
|
||||||
|
Array<Vector> normalData;
|
||||||
|
Gfx::PShaderBuffer tangents;
|
||||||
|
Array<Vector> tangentData;
|
||||||
|
Gfx::PShaderBuffer biTangents;
|
||||||
|
Array<Vector> biTangentData;
|
||||||
|
Map<MeshId, uint64_t> meshOffsets;
|
||||||
|
uint64 head;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,6 +76,7 @@ List<VertexData*> VertexData::getList()
|
|||||||
|
|
||||||
VertexData::VertexData(Gfx::PGraphics graphics)
|
VertexData::VertexData(Gfx::PGraphics graphics)
|
||||||
: graphics(graphics)
|
: graphics(graphics)
|
||||||
|
, idCounter(0)
|
||||||
{
|
{
|
||||||
instanceDataLayout = graphics->createDescriptorLayout("VertexDataInstanceLayout");
|
instanceDataLayout = graphics->createDescriptorLayout("VertexDataInstanceLayout");
|
||||||
instanceDataLayout->addDescriptorBinding(0, Gfx::SE_DESCRIPTOR_TYPE_STORAGE_BUFFER);
|
instanceDataLayout->addDescriptorBinding(0, Gfx::SE_DESCRIPTOR_TYPE_STORAGE_BUFFER);
|
||||||
@@ -94,4 +95,4 @@ VertexData::VertexData(Gfx::PGraphics graphics)
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
instanceDataLayout->create();
|
instanceDataLayout->create();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ public:
|
|||||||
void resetMeshData();
|
void resetMeshData();
|
||||||
void updateMesh(const Component::Transform& transform, const Component::Mesh& mesh);
|
void updateMesh(const Component::Transform& transform, const Component::Mesh& mesh);
|
||||||
void createDescriptors();
|
void createDescriptors();
|
||||||
|
virtual MeshId allocateVertexData(uint64 numVertices) = 0;
|
||||||
virtual void bindBuffers(Gfx::PRenderCommand command) = 0;
|
virtual void bindBuffers(Gfx::PRenderCommand command) = 0;
|
||||||
virtual Gfx::PDescriptorLayout getVertexDataLayout() = 0;
|
virtual Gfx::PDescriptorLayout getVertexDataLayout() = 0;
|
||||||
virtual Gfx::PDescriptorSet getVertexDataSet() = 0;
|
virtual Gfx::PDescriptorSet getVertexDataSet() = 0;
|
||||||
@@ -82,5 +83,6 @@ protected:
|
|||||||
// for legacy pipeline
|
// for legacy pipeline
|
||||||
Gfx::PIndexBuffer indexBuffer;
|
Gfx::PIndexBuffer indexBuffer;
|
||||||
VertexData(Gfx::PGraphics graphics);
|
VertexData(Gfx::PGraphics graphics);
|
||||||
|
uint64 idCounter;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -104,14 +104,14 @@ class RefPtr
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
constexpr RefPtr() noexcept
|
constexpr RefPtr() noexcept
|
||||||
|
: object(nullptr)
|
||||||
{
|
{
|
||||||
object = nullptr;
|
|
||||||
}
|
}
|
||||||
constexpr RefPtr(nullptr_t) noexcept
|
constexpr RefPtr(std::nullptr_t) noexcept
|
||||||
|
: object(nullptr)
|
||||||
{
|
{
|
||||||
object = nullptr;
|
|
||||||
}
|
}
|
||||||
constexpr RefPtr(T *ptr, Deleter deleter = Deleter())
|
RefPtr(T *ptr, Deleter deleter = Deleter())
|
||||||
{
|
{
|
||||||
std::scoped_lock l(getRegisteredObjectLock());
|
std::scoped_lock l(getRegisteredObjectLock());
|
||||||
auto registeredObj = getRegisteredObjects().find(ptr);
|
auto registeredObj = getRegisteredObjects().find(ptr);
|
||||||
@@ -270,7 +270,7 @@ public:
|
|||||||
: handle(nullptr)
|
: handle(nullptr)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
UniquePtr(nullptr_t)
|
UniquePtr(std::nullptr_t)
|
||||||
: handle(nullptr)
|
: handle(nullptr)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user