mirror of
https://github.com/lubosz/overte.git
synced 2025-04-23 11:33:44 +02:00
Clean old DrawSceneTask
This commit is contained in:
parent
9b4a395f6b
commit
f902c4078d
6 changed files with 3 additions and 112 deletions
|
@ -24,6 +24,7 @@
|
|||
#include "HitEffect.h"
|
||||
#include "TextureCache.h"
|
||||
|
||||
#include "render/DrawTask.h"
|
||||
#include "render/DrawStatus.h"
|
||||
#include "AmbientOcclusionEffect.h"
|
||||
#include "AntialiasingEffect.h"
|
||||
|
@ -130,9 +131,6 @@ RenderDeferredTask::RenderDeferredTask() : Task() {
|
|||
addJob("Blit", std::make_shared<Blit::JobModel>());
|
||||
}
|
||||
|
||||
RenderDeferredTask::~RenderDeferredTask() {
|
||||
}
|
||||
|
||||
void RenderDeferredTask::run(const SceneContextPointer& sceneContext, const RenderContextPointer& renderContext) {
|
||||
// sanity checks
|
||||
assert(sceneContext);
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
#ifndef hifi_RenderDeferredTask_h
|
||||
#define hifi_RenderDeferredTask_h
|
||||
|
||||
#include "render/DrawTask.h"
|
||||
#include "render/Engine.h"
|
||||
|
||||
#include "gpu/Pipeline.h"
|
||||
|
||||
|
@ -101,10 +101,8 @@ class RenderDeferredTask : public render::Task {
|
|||
public:
|
||||
|
||||
RenderDeferredTask();
|
||||
~RenderDeferredTask();
|
||||
~RenderDeferredTask() = default;
|
||||
|
||||
render::Task::Jobs _jobs;
|
||||
|
||||
int _drawDebugDeferredBufferIndex = -1;
|
||||
int _drawStatusJobIndex = -1;
|
||||
int _drawHitEffectJobIndex = -1;
|
||||
|
|
|
@ -15,34 +15,12 @@
|
|||
#include <assert.h>
|
||||
|
||||
#include <PerfStat.h>
|
||||
#include <RenderArgs.h>
|
||||
#include <ViewFrustum.h>
|
||||
#include <gpu/Context.h>
|
||||
|
||||
|
||||
using namespace render;
|
||||
|
||||
DrawSceneTask::DrawSceneTask() : Task() {}
|
||||
|
||||
DrawSceneTask::~DrawSceneTask() {}
|
||||
|
||||
void DrawSceneTask::run(const SceneContextPointer& sceneContext, const RenderContextPointer& renderContext) {
|
||||
// sanity checks
|
||||
assert(sceneContext);
|
||||
if (!sceneContext->_scene) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Is it possible that we render without a viewFrustum ?
|
||||
if (!(renderContext->getArgs() && renderContext->getArgs()->_viewFrustum)) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (auto job : _jobs) {
|
||||
job.run(sceneContext, renderContext);
|
||||
}
|
||||
};
|
||||
|
||||
void render::cullItems(const SceneContextPointer& sceneContext, const RenderContextPointer& renderContext, const ItemIDsBounds& inItems, ItemIDsBounds& outItems) {
|
||||
assert(renderContext->getArgs());
|
||||
assert(renderContext->getArgs()->_viewFrustum);
|
||||
|
@ -253,37 +231,3 @@ void DrawLight::run(const SceneContextPointer& sceneContext, const RenderContext
|
|||
});
|
||||
args->_batch = nullptr;
|
||||
}
|
||||
|
||||
void DrawBackground::run(const SceneContextPointer& sceneContext, const RenderContextPointer& renderContext) {
|
||||
assert(renderContext->getArgs());
|
||||
assert(renderContext->getArgs()->_viewFrustum);
|
||||
|
||||
// render backgrounds
|
||||
auto& scene = sceneContext->_scene;
|
||||
auto& items = scene->getMasterBucket().at(ItemFilter::Builder::background());
|
||||
|
||||
|
||||
ItemIDsBounds inItems;
|
||||
inItems.reserve(items.size());
|
||||
for (auto id : items) {
|
||||
inItems.emplace_back(id);
|
||||
}
|
||||
RenderArgs* args = renderContext->getArgs();
|
||||
doInBatch(args->_context, [=](gpu::Batch& batch) {
|
||||
args->_batch = &batch;
|
||||
batch.enableSkybox(true);
|
||||
batch.setViewportTransform(args->_viewport);
|
||||
batch.setStateScissorRect(args->_viewport);
|
||||
|
||||
glm::mat4 projMat;
|
||||
Transform viewMat;
|
||||
args->_viewFrustum->evalProjectionMatrix(projMat);
|
||||
args->_viewFrustum->evalViewTransform(viewMat);
|
||||
|
||||
batch.setProjectionTransform(projMat);
|
||||
batch.setViewTransform(viewMat);
|
||||
|
||||
renderItems(sceneContext, renderContext, inItems);
|
||||
});
|
||||
args->_batch = nullptr;
|
||||
}
|
||||
|
|
|
@ -73,41 +73,6 @@ public:
|
|||
using JobModel = Task::Job::Model<DrawLight>;
|
||||
};
|
||||
|
||||
class DrawBackground {
|
||||
public:
|
||||
void run(const SceneContextPointer& sceneContext, const RenderContextPointer& renderContext);
|
||||
|
||||
|
||||
typedef Job::Model<DrawBackground> JobModel;
|
||||
};
|
||||
|
||||
|
||||
class DrawSceneTask : public Task {
|
||||
public:
|
||||
|
||||
DrawSceneTask();
|
||||
~DrawSceneTask();
|
||||
|
||||
Jobs _jobs;
|
||||
|
||||
virtual void run(const SceneContextPointer& sceneContext, const RenderContextPointer& renderContext);
|
||||
|
||||
};
|
||||
|
||||
// A map of ItemIDs allowing to create bucket lists of SHAPE type items which are filtered by their
|
||||
// Material
|
||||
class ItemMaterialBucketMap : public std::map<model::MaterialFilter, ItemIDs, model::MaterialFilter::Less> {
|
||||
public:
|
||||
|
||||
ItemMaterialBucketMap() {}
|
||||
|
||||
void insert(const ItemID& id, const model::MaterialKey& key);
|
||||
|
||||
// standard builders allocating the main buckets
|
||||
void allocateStandardMaterialBuckets();
|
||||
};
|
||||
void materialSortItems(const SceneContextPointer& sceneContext, const RenderContextPointer& renderContext, const ItemIDsBounds& inItems, ItemIDsBounds& outItems);
|
||||
|
||||
}
|
||||
|
||||
#endif // hifi_render_DrawTask_h
|
||||
|
|
|
@ -11,8 +11,6 @@
|
|||
|
||||
#include "Engine.h"
|
||||
|
||||
#include "DrawTask.h"
|
||||
|
||||
using namespace render;
|
||||
|
||||
Engine::Engine() :
|
||||
|
@ -41,12 +39,3 @@ void Engine::run() {
|
|||
task->run(_sceneContext, _renderContext);
|
||||
}
|
||||
}
|
||||
|
||||
void Engine::buildStandardTaskPipeline() {
|
||||
if (!_tasks.empty()) {
|
||||
_tasks.clear();
|
||||
}
|
||||
|
||||
addTask(std::make_shared<DrawSceneTask>());
|
||||
}
|
||||
|
||||
|
|
|
@ -38,9 +38,6 @@ public:
|
|||
|
||||
void run();
|
||||
|
||||
// standard pipeline of tasks
|
||||
void buildStandardTaskPipeline();
|
||||
|
||||
protected:
|
||||
Tasks _tasks;
|
||||
|
||||
|
|
Loading…
Reference in a new issue