RenderTest: Don't directly load mesh into VRAM
This commit is contained in:
parent
2dd0e7d9c8
commit
8eed1161e5
|
|
@ -129,7 +129,6 @@ int main()
|
||||||
}
|
}
|
||||||
|
|
||||||
Nz::MeshParams meshParams;
|
Nz::MeshParams meshParams;
|
||||||
meshParams.bufferFactory = Nz::GetRenderBufferFactory(device);
|
|
||||||
meshParams.center = true;
|
meshParams.center = true;
|
||||||
meshParams.vertexRotation = Nz::EulerAnglesf(0.f, -90.f, 0.f);
|
meshParams.vertexRotation = Nz::EulerAnglesf(0.f, -90.f, 0.f);
|
||||||
meshParams.vertexScale = Nz::Vector3f(0.002f);
|
meshParams.vertexScale = Nz::Vector3f(0.002f);
|
||||||
|
|
@ -153,6 +152,17 @@ int main()
|
||||||
// Vertex buffer
|
// Vertex buffer
|
||||||
std::cout << "Vertex count: " << meshVB->GetVertexCount() << std::endl;
|
std::cout << "Vertex count: " << meshVB->GetVertexCount() << std::endl;
|
||||||
|
|
||||||
|
// Create renderbuffers (GPU buffers)
|
||||||
|
const std::shared_ptr<Nz::RenderDevice>& renderDevice = window.GetRenderDevice();
|
||||||
|
|
||||||
|
assert(meshIB->GetBuffer()->GetStorage() == Nz::DataStorage::Software);
|
||||||
|
assert(meshVB->GetBuffer()->GetStorage() == Nz::DataStorage::Software);
|
||||||
|
const Nz::SoftwareBuffer* indexBufferContent = static_cast<const Nz::SoftwareBuffer*>(meshIB->GetBuffer().get());
|
||||||
|
const Nz::SoftwareBuffer* vertexBufferContent = static_cast<const Nz::SoftwareBuffer*>(meshVB->GetBuffer().get());
|
||||||
|
|
||||||
|
std::shared_ptr<Nz::RenderBuffer> renderBufferIB = renderDevice->InstantiateBuffer(Nz::BufferType::Index, indexBufferContent->GetSize(), Nz::BufferUsage::DeviceLocal, indexBufferContent->GetData());
|
||||||
|
std::shared_ptr<Nz::RenderBuffer> renderBufferVB = renderDevice->InstantiateBuffer(Nz::BufferType::Vertex, vertexBufferContent->GetSize(), Nz::BufferUsage::DeviceLocal, vertexBufferContent->GetData());
|
||||||
|
|
||||||
// Texture
|
// Texture
|
||||||
Nz::TextureParams texParams;
|
Nz::TextureParams texParams;
|
||||||
texParams.renderDevice = device;
|
texParams.renderDevice = device;
|
||||||
|
|
@ -230,13 +240,8 @@ int main()
|
||||||
|
|
||||||
std::shared_ptr<Nz::RenderPipeline> pipeline = device->InstantiateRenderPipeline(pipelineInfo);
|
std::shared_ptr<Nz::RenderPipeline> pipeline = device->InstantiateRenderPipeline(pipelineInfo);
|
||||||
|
|
||||||
const std::shared_ptr<Nz::RenderDevice>& renderDevice = window.GetRenderDevice();
|
|
||||||
|
|
||||||
std::shared_ptr<Nz::CommandPool> commandPool = renderDevice->InstantiateCommandPool(Nz::QueueType::Graphics);
|
std::shared_ptr<Nz::CommandPool> commandPool = renderDevice->InstantiateCommandPool(Nz::QueueType::Graphics);
|
||||||
|
|
||||||
Nz::RenderBuffer& renderBufferIB = static_cast<Nz::RenderBuffer&>(*meshIB->GetBuffer());
|
|
||||||
Nz::RenderBuffer& renderBufferVB = static_cast<Nz::RenderBuffer&>(*meshVB->GetBuffer());
|
|
||||||
|
|
||||||
Nz::Vector3f viewerPos = Nz::Vector3f::Zero();
|
Nz::Vector3f viewerPos = Nz::Vector3f::Zero();
|
||||||
|
|
||||||
Nz::EulerAnglesf camAngles(0.f, 0.f, 0.f);
|
Nz::EulerAnglesf camAngles(0.f, 0.f, 0.f);
|
||||||
|
|
@ -379,9 +384,9 @@ int main()
|
||||||
{
|
{
|
||||||
builder.BeginRenderPass(windowRT->GetFramebuffer(frame.GetFramebufferIndex()), windowRT->GetRenderPass(), renderRect, { clearValues[0], clearValues[1] });
|
builder.BeginRenderPass(windowRT->GetFramebuffer(frame.GetFramebufferIndex()), windowRT->GetRenderPass(), renderRect, { clearValues[0], clearValues[1] });
|
||||||
{
|
{
|
||||||
builder.BindIndexBuffer(renderBufferIB, Nz::IndexType::U16);
|
builder.BindIndexBuffer(*renderBufferIB, Nz::IndexType::U16);
|
||||||
builder.BindPipeline(*pipeline);
|
builder.BindPipeline(*pipeline);
|
||||||
builder.BindVertexBuffer(0, renderBufferVB);
|
builder.BindVertexBuffer(0, *renderBufferVB);
|
||||||
builder.BindShaderBinding(0, *viewerShaderBinding);
|
builder.BindShaderBinding(0, *viewerShaderBinding);
|
||||||
builder.BindShaderBinding(1, *textureShaderBinding);
|
builder.BindShaderBinding(1, *textureShaderBinding);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue