From 0343983f31574d9c564776123bf83f38845fbf89 Mon Sep 17 00:00:00 2001 From: sam gateau Date: Mon, 3 Dec 2018 16:58:54 -0800 Subject: [PATCH] Applying changes done in deferred to forward --- .../render-utils/src/RenderForwardTask.cpp | 32 +++++++++++-------- scripts/developer/utilities/lib/jet/jet.js | 28 +++++++++++++++- .../utilities/lib/jet/qml/TaskList.qml | 2 +- 3 files changed, 47 insertions(+), 15 deletions(-) diff --git a/libraries/render-utils/src/RenderForwardTask.cpp b/libraries/render-utils/src/RenderForwardTask.cpp index 53f89aaec3..59461b3b44 100755 --- a/libraries/render-utils/src/RenderForwardTask.cpp +++ b/libraries/render-utils/src/RenderForwardTask.cpp @@ -48,7 +48,12 @@ using namespace render; extern void initForwardPipelines(ShapePlumber& plumber); void RenderForwardTask::build(JobModel& task, const render::Varying& input, render::Varying& output) { - auto items = input.get(); + // const auto& inputs = input.get(); + const auto& fetchedItems = input.get(); + // const auto& fetchedItems = inputs[0]; + // const auto& items = fetchedItems[0]; + const auto& items = fetchedItems.get0(); + auto fadeEffect = DependencyManager::get(); // Prepare the ShapePipelines @@ -56,15 +61,19 @@ void RenderForwardTask::build(JobModel& task, const render::Varying& input, rend initForwardPipelines(*shapePlumber); // Extract opaques / transparents / lights / metas / overlays / background - const auto& opaques = items.get0()[RenderFetchCullSortTask::OPAQUE_SHAPE]; - const auto& transparents = items.get0()[RenderFetchCullSortTask::TRANSPARENT_SHAPE]; - //const auto& lights = items.get0()[RenderFetchCullSortTask::LIGHT]; - const auto& metas = items.get0()[RenderFetchCullSortTask::META]; - const auto& overlayOpaques = items.get0()[RenderFetchCullSortTask::OVERLAY_OPAQUE_SHAPE]; - const auto& overlayTransparents = items.get0()[RenderFetchCullSortTask::OVERLAY_TRANSPARENT_SHAPE]; + const auto& opaques = items[RenderFetchCullSortTask::OPAQUE_SHAPE]; + const auto& transparents = items[RenderFetchCullSortTask::TRANSPARENT_SHAPE]; + const auto& lights = items[RenderFetchCullSortTask::LIGHT]; + const auto& metas = items[RenderFetchCullSortTask::META]; + const auto& overlayOpaques = items[RenderFetchCullSortTask::OVERLAY_OPAQUE_SHAPE]; + const auto& overlayTransparents = items[RenderFetchCullSortTask::OVERLAY_TRANSPARENT_SHAPE]; + const auto& overlaysInFrontOpaque = items[RenderFetchCullSortTask::LAYER_FRONT_OPAQUE_SHAPE]; + const auto& overlaysInFrontTransparent = items[RenderFetchCullSortTask::LAYER_FRONT_TRANSPARENT_SHAPE]; + const auto& overlaysHUDOpaque = items[RenderFetchCullSortTask::LAYER_HUD_OPAQUE_SHAPE]; + const auto& overlaysHUDTransparent = items[RenderFetchCullSortTask::LAYER_HUD_TRANSPARENT_SHAPE]; + + const auto& spatialSelection = fetchedItems[1]; - //const auto& background = items.get0()[RenderFetchCullSortTask::BACKGROUND]; - //const auto& spatialSelection = items[1]; fadeEffect->build(task, opaques); @@ -91,12 +100,9 @@ void RenderForwardTask::build(JobModel& task, const render::Varying& input, rend task.addJob("PrepareStencil", framebuffer); // Layered Overlays - const auto filteredOverlaysOpaque = task.addJob("FilterOverlaysLayeredOpaque", overlayOpaques, render::hifi::LAYER_3D_FRONT); - const auto filteredOverlaysTransparent = task.addJob("FilterOverlaysLayeredTransparent", overlayTransparents, render::hifi::LAYER_3D_FRONT); - const auto overlaysInFrontOpaque = filteredOverlaysOpaque.getN(0); - const auto overlaysInFrontTransparent = filteredOverlaysTransparent.getN(0); const auto nullJitter = Varying(glm::vec2(0.0f, 0.0f)); + // Layered Over (in front) const auto overlayInFrontOpaquesInputs = DrawOverlay3D::Inputs(overlaysInFrontOpaque, lightingModel, nullJitter).asVarying(); const auto overlayInFrontTransparentsInputs = DrawOverlay3D::Inputs(overlaysInFrontTransparent, lightingModel, nullJitter).asVarying(); task.addJob("DrawOverlayInFrontOpaque", overlayInFrontOpaquesInputs, true); diff --git a/scripts/developer/utilities/lib/jet/jet.js b/scripts/developer/utilities/lib/jet/jet.js index 85842b8861..d78b433a68 100644 --- a/scripts/developer/utilities/lib/jet/jet.js +++ b/scripts/developer/utilities/lib/jet/jet.js @@ -45,6 +45,24 @@ function job_propKeys(job) { return propKeys; } +// Access job inputs +// return all the inputs of a job +function job_inoutKeys(job) { + var keys = Object.keys(job) + var inoutKeys = []; + for (var k=0; k < keys.length;k++) { + // Filter for relevant property + var key = keys[k] + if ((typeof job[key]) !== "function") { + if ((key == "input") || (key == "output")) { + inoutKeys.push(keys[k]); + } + } + } + + return inoutKeys; +} + // Use this function to create a functor that will fill the specifed array with one entry name per task and job and it s rank function job_list_functor(jobList, maxDepth) { if (maxDepth === undefined) maxDepth = 100 @@ -55,7 +73,7 @@ function job_list_functor(jobList, maxDepth) { } // Use this function to create a functor that will print the content of the Job visited calling the specified 'printout' function -function job_print_functor(printout, showProps, maxDepth) { +function job_print_functor(printout, showProps, showInOuts, maxDepth) { if (maxDepth === undefined) maxDepth = 100 return function (job, depth, index) { var tab = " " @@ -69,6 +87,14 @@ function job_print_functor(printout, showProps, maxDepth) { printout(depthTab + tab + tab + typeof prop + " " + keys[p] + " " + prop); } } + if (showInOuts) { + printout("jsdkfkjdskflj") + var inouts = job_inoutKeys(job); + for (var p=0; p < inouts.length;p++) { + var prop = job[inouts[p]] + printout(depthTab + tab + tab + typeof prop + " " + inouts[p] + " " + prop); + } + } return depth < maxDepth; } } diff --git a/scripts/developer/utilities/lib/jet/qml/TaskList.qml b/scripts/developer/utilities/lib/jet/qml/TaskList.qml index 166f604666..e4b0267d3f 100644 --- a/scripts/developer/utilities/lib/jet/qml/TaskList.qml +++ b/scripts/developer/utilities/lib/jet/qml/TaskList.qml @@ -32,7 +32,7 @@ Rectangle { Component.onCompleted: { var message = "" - var functor = Jet.job_print_functor(function (line) { message += line + "\n"; }, false); + var functor = Jet.job_print_functor(function (line) { message += line + "\n"; }, false, true); Jet.task_traverseTree(rootConfig, functor); textArea.append(message); }