Implemented KRMesh::requestResidency
This commit is contained in:
@@ -322,6 +322,7 @@ void KRModel::preStream(const KRViewport& viewport, std::list<KRResourceRequest>
|
|||||||
for (int i = 0; i < kMeshLODCount; i++) {
|
for (int i = 0; i < kMeshLODCount; i++) {
|
||||||
if (m_meshes[i].isBound()) {
|
if (m_meshes[i].isBound()) {
|
||||||
m_meshes[i].get()->preStream(resourceRequests, lod_coverage);
|
m_meshes[i].get()->preStream(resourceRequests, lod_coverage);
|
||||||
|
resourceRequests.emplace_back(m_meshes[i].get(), 0); // TODO: Pass in LOD level to drive streaming priority of meshes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -187,6 +187,17 @@ void KRMesh::getMaterials()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void KRMesh::requestResidency(uint32_t usage, float lodCoverage)
|
||||||
|
{
|
||||||
|
KRResource::requestResidency(usage, lodCoverage);
|
||||||
|
|
||||||
|
for (Submesh& mesh : m_submeshes) {
|
||||||
|
for (shared_ptr<KRMeshManager::KRVBOData>& vbo : mesh.vbo_data_blocks) {
|
||||||
|
vbo->requestResidency(lodCoverage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void KRMesh::preStream(std::list<KRResourceRequest>& resourceRequests, float lodCoverage)
|
void KRMesh::preStream(std::list<KRResourceRequest>& resourceRequests, float lodCoverage)
|
||||||
{
|
{
|
||||||
getSubmeshes();
|
getSubmeshes();
|
||||||
@@ -195,12 +206,6 @@ void KRMesh::preStream(std::list<KRResourceRequest>& resourceRequests, float lod
|
|||||||
for (std::set<KRMaterial*>::iterator mat_itr = m_uniqueMaterials.begin(); mat_itr != m_uniqueMaterials.end(); mat_itr++) {
|
for (std::set<KRMaterial*>::iterator mat_itr = m_uniqueMaterials.begin(); mat_itr != m_uniqueMaterials.end(); mat_itr++) {
|
||||||
(*mat_itr)->preStream(resourceRequests, lodCoverage);
|
(*mat_itr)->preStream(resourceRequests, lodCoverage);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Submesh& mesh : m_submeshes) {
|
|
||||||
for (shared_ptr<KRMeshManager::KRVBOData>& vbo : mesh.vbo_data_blocks) {
|
|
||||||
vbo->requestResidency(lodCoverage);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
kraken_stream_level KRMesh::getStreamLevel()
|
kraken_stream_level KRMesh::getStreamLevel()
|
||||||
|
|||||||
@@ -76,6 +76,7 @@ public:
|
|||||||
|
|
||||||
kraken_stream_level getStreamLevel();
|
kraken_stream_level getStreamLevel();
|
||||||
void preStream(std::list<KRResourceRequest>& resourceRequests, float lodCoverage);
|
void preStream(std::list<KRResourceRequest>& resourceRequests, float lodCoverage);
|
||||||
|
void requestResidency(uint32_t usage, float lodCoverage) final;
|
||||||
|
|
||||||
bool hasTransparency();
|
bool hasTransparency();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user