WIP refactoring to move resource streaming to use KRResourceRequest lists
This commit is contained in:
@@ -143,14 +143,14 @@ const std::string KRCamera::getSkyBox() const
|
||||
return m_skyBox.getName();
|
||||
}
|
||||
|
||||
void KRCamera::preStream(const KRViewport& viewport)
|
||||
void KRCamera::preStream(const KRViewport& viewport, std::list<KRResourceRequest>& resourceRequests)
|
||||
{
|
||||
KRNode::preStream(viewport);
|
||||
KRNode::preStream(viewport, resourceRequests);
|
||||
|
||||
m_skyBox.bind(&getContext());
|
||||
|
||||
if (m_skyBox.isBound()) {
|
||||
m_skyBox.get()->requestResidency(0.0f, KRTexture::TEXTURE_USAGE_SKY_CUBE);
|
||||
resourceRequests.emplace_back(m_skyBox.get(), KRTexture::TEXTURE_USAGE_SKY_CUBE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ public:
|
||||
|
||||
void renderFrame(VkCommandBuffer& commandBuffer, KRSurface& compositeSurface, KRRenderGraph& renderGraph);
|
||||
|
||||
void preStream(const KRViewport& viewport) final;
|
||||
void preStream(const KRViewport& viewport, std::list<KRResourceRequest>& resourceRequests) final;
|
||||
void render(KRNode::RenderInfo& ri) final;
|
||||
|
||||
KRRenderSettings settings;
|
||||
|
||||
@@ -313,9 +313,9 @@ void KRModel::render(KRNode::RenderInfo& ri)
|
||||
}
|
||||
}
|
||||
|
||||
void KRModel::preStream(const KRViewport& viewport)
|
||||
void KRModel::preStream(const KRViewport& viewport, std::list<KRResourceRequest>& resourceRequests)
|
||||
{
|
||||
KRNode::preStream(viewport);
|
||||
KRNode::preStream(viewport, resourceRequests);
|
||||
loadModel();
|
||||
float lod_coverage = viewport.coverage(getBounds());
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ public:
|
||||
virtual tinyxml2::XMLElement* saveXML(tinyxml2::XMLNode* parent);
|
||||
|
||||
virtual void render(KRNode::RenderInfo& ri) override;
|
||||
virtual void preStream(const KRViewport& viewport) override;
|
||||
virtual void preStream(const KRViewport& viewport, std::list<KRResourceRequest>& resourceRequests) override;
|
||||
|
||||
virtual hydra::AABB getBounds();
|
||||
|
||||
|
||||
@@ -684,7 +684,7 @@ KRNode* KRNode::LoadXML(KRScene& scene, tinyxml2::XMLElement* e)
|
||||
return new_node;
|
||||
}
|
||||
|
||||
void KRNode::preStream(const KRViewport& viewport)
|
||||
void KRNode::preStream(const KRViewport& viewport, std::list<KRResourceRequest>& resourceRequests)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "resources/KRResource.h"
|
||||
#include "resources/KRResourceRequest.h"
|
||||
#include "KRViewport.h"
|
||||
#include "KROctreeNode.h"
|
||||
#include "KRBehavior.h"
|
||||
@@ -216,7 +217,7 @@ public:
|
||||
|
||||
KRScene& getScene();
|
||||
|
||||
virtual void preStream(const KRViewport& viewport);
|
||||
virtual void preStream(const KRViewport& viewport, std::list<KRResourceRequest>& resourceRequests);
|
||||
virtual void render(RenderInfo& ri);
|
||||
|
||||
virtual void physicsUpdate(float deltaTime);
|
||||
|
||||
@@ -112,15 +112,15 @@ AABB KRSprite::getBounds()
|
||||
}
|
||||
|
||||
|
||||
void KRSprite::preStream(const KRViewport& viewport)
|
||||
void KRSprite::preStream(const KRViewport& viewport, std::list<KRResourceRequest>& resourceRequests)
|
||||
{
|
||||
KRNode::preStream(viewport);
|
||||
KRNode::preStream(viewport, resourceRequests);
|
||||
|
||||
// Pre-stream sprites, even if the alpha is zero
|
||||
m_spriteTexture.bind(&getContext());
|
||||
|
||||
if (m_spriteTexture.isBound()) {
|
||||
m_spriteTexture.get()->requestResidency(0.0f, KRTexture::TEXTURE_USAGE_SPRITE);
|
||||
resourceRequests.emplace_back(m_spriteTexture.get(), KRTexture::TEXTURE_USAGE_SPRITE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ public:
|
||||
void setSpriteAlpha(float alpha);
|
||||
float getSpriteAlpha() const;
|
||||
|
||||
virtual void preStream(const KRViewport& viewport) override;
|
||||
virtual void preStream(const KRViewport& viewport, std::list<KRResourceRequest>& resourceRequests) override;
|
||||
virtual void render(RenderInfo& ri) override;
|
||||
|
||||
virtual hydra::AABB getBounds() override;
|
||||
|
||||
Reference in New Issue
Block a user