Replaced more direct requestResidency calls with KRResourceRequest's
This commit is contained in:
@@ -221,6 +221,18 @@ float KRLight::getDecayStart() const
|
|||||||
return m_decayStart;
|
return m_decayStart;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void KRLight::preStream(const KRViewport& viewport, std::list<KRResourceRequest>& resourceRequests)
|
||||||
|
{
|
||||||
|
KRNode::preStream(viewport, resourceRequests);
|
||||||
|
|
||||||
|
// Pre-stream sprites, even if the alpha is zero
|
||||||
|
m_flareTexture.bind(&getContext());
|
||||||
|
|
||||||
|
if (m_flareTexture.isBound()) {
|
||||||
|
resourceRequests.emplace_back(m_flareTexture.get(), KRTexture::TEXTURE_USAGE_LIGHT_FLARE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void KRLight::render(RenderInfo& ri)
|
void KRLight::render(RenderInfo& ri)
|
||||||
{
|
{
|
||||||
KRNode::render(ri);
|
KRNode::render(ri);
|
||||||
@@ -338,7 +350,7 @@ void KRLight::render(RenderInfo& ri)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ri.renderPass->getType() == RenderPassType::RENDER_PASS_PARTICLE_OCCLUSION) {
|
if (ri.renderPass->getType() == RenderPassType::RENDER_PASS_PARTICLE_OCCLUSION) {
|
||||||
if (m_flareTexture.isSet() && m_flareSize > 0.0f) {
|
if (m_flareTexture.isBound() && m_flareSize > 0.0f) {
|
||||||
KRMesh* sphereModel = getContext().getMeshManager()->getMesh("__sphere");
|
KRMesh* sphereModel = getContext().getMeshManager()->getMesh("__sphere");
|
||||||
if (sphereModel) {
|
if (sphereModel) {
|
||||||
|
|
||||||
@@ -385,7 +397,7 @@ void KRLight::render(RenderInfo& ri)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ri.renderPass->getType() == RenderPassType::RENDER_PASS_ADDITIVE_PARTICLES) {
|
if (ri.renderPass->getType() == RenderPassType::RENDER_PASS_ADDITIVE_PARTICLES) {
|
||||||
if (m_flareTexture.isSet() && m_flareSize > 0.0f) {
|
if (m_flareTexture.isBound() && m_flareSize > 0.0f) {
|
||||||
|
|
||||||
if (m_occlusionQuery) {
|
if (m_occlusionQuery) {
|
||||||
int params = 0;
|
int params = 0;
|
||||||
@@ -393,10 +405,6 @@ void KRLight::render(RenderInfo& ri)
|
|||||||
GLDEBUG(glDeleteQueriesEXT(1, &m_occlusionQuery));
|
GLDEBUG(glDeleteQueriesEXT(1, &m_occlusionQuery));
|
||||||
|
|
||||||
if (params) {
|
if (params) {
|
||||||
m_flareTexture.bind(&getContext());
|
|
||||||
|
|
||||||
if (m_flareTexture.isBound()) {
|
|
||||||
m_flareTexture.get()->requestResidency(0.0f, KRTexture::TEXTURE_USAGE_LIGHT_FLARE);
|
|
||||||
KRMeshManager::KRVBOData& vertices = getContext().getMeshManager()->KRENGINE_VBO_DATA_2D_SQUARE_VERTICES;
|
KRMeshManager::KRVBOData& vertices = getContext().getMeshManager()->KRENGINE_VBO_DATA_2D_SQUARE_VERTICES;
|
||||||
|
|
||||||
// Render light flare on transparency pass
|
// Render light flare on transparency pass
|
||||||
@@ -422,7 +430,6 @@ void KRLight::render(RenderInfo& ri)
|
|||||||
m_pContext->getMeshManager()->bindVBO(ri.commandBuffer, &vertices, 1.0f);
|
m_pContext->getMeshManager()->bindVBO(ri.commandBuffer, &vertices, 1.0f);
|
||||||
vkCmdDraw(ri.commandBuffer, 4, 1, 0, 0);
|
vkCmdDraw(ri.commandBuffer, 4, 1, 0, 0);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ public:
|
|||||||
void setFlareOcclusionSize(float occlusion_size);
|
void setFlareOcclusionSize(float occlusion_size);
|
||||||
void deleteBuffers();
|
void deleteBuffers();
|
||||||
|
|
||||||
|
virtual void preStream(const KRViewport& viewport, std::list<KRResourceRequest>& resourceRequests) override;
|
||||||
virtual void render(RenderInfo& ri) override;
|
virtual void render(RenderInfo& ri) override;
|
||||||
|
|
||||||
int getShadowBufferCount();
|
int getShadowBufferCount();
|
||||||
|
|||||||
@@ -328,7 +328,7 @@ void KRModel::preStream(const KRViewport& viewport, std::list<KRResourceRequest>
|
|||||||
m_lightMap.bind(&getContext());
|
m_lightMap.bind(&getContext());
|
||||||
|
|
||||||
if (m_lightMap.isBound()) {
|
if (m_lightMap.isBound()) {
|
||||||
m_lightMap.get()->requestResidency(lod_coverage, KRTexture::TEXTURE_USAGE_LIGHT_MAP);
|
resourceRequests.emplace_back(m_lightMap.get(), KRTexture::TEXTURE_USAGE_LIGHT_MAP);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user