12 #ifndef hifi_render_SortTask_h
13 #define hifi_render_SortTask_h
18 void depthSortItems(
const RenderContextPointer& renderContext,
bool frontToBack,
const ItemBounds& inItems, ItemBounds& outItems, AABox* bounds =
nullptr);
20 class PipelineSortShapes {
22 using JobModel = Job::ModelIO<PipelineSortShapes, ItemBounds, ShapeBounds>;
23 void run(
const RenderContextPointer& renderContext,
const ItemBounds& inItems, ShapeBounds& outShapes);
26 class DepthSortShapes {
28 using JobModel = Job::ModelIO<DepthSortShapes, ShapeBounds, ShapeBounds>;
31 DepthSortShapes(
bool frontToBack =
true) : _frontToBack(frontToBack) {}
33 void run(
const RenderContextPointer& renderContext,
const ShapeBounds& inShapes, ShapeBounds& outShapes);
36 class DepthSortShapesAndComputeBounds {
38 using Outputs = VaryingSet2<ShapeBounds, AABox>;
39 using JobModel = Job::ModelIO<DepthSortShapesAndComputeBounds, ShapeBounds, Outputs>;
42 DepthSortShapesAndComputeBounds(
bool frontToBack =
true) : _frontToBack(frontToBack) {}
44 void run(
const RenderContextPointer& renderContext,
const ShapeBounds& inShapes, Outputs& outputs);
47 class DepthSortItems {
49 using JobModel = Job::ModelIO<DepthSortItems, ItemBounds, ItemBounds>;
52 DepthSortItems(
bool frontToBack =
true) : _frontToBack(frontToBack) {}
54 void run(
const RenderContextPointer& renderContext,
const ItemBounds& inItems, ItemBounds& outItems);