Overte C++ Documentation
RenderFetchCullSortTask.h
1 //
2 // RenderFetchCullSortTask.h
3 // render/src/
4 //
5 // Created by Zach Pomerantz on 12/22/2016.
6 // Copyright 2016 High Fidelity, Inc.
7 // Copyright 2024 Overte e.V.
8 //
9 // Distributed under the Apache License, Version 2.0.
10 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
11 //
12 
13 #ifndef hifi_RenderFetchCullSortTask_h
14 #define hifi_RenderFetchCullSortTask_h
15 
16 #include <gpu/Pipeline.h>
17 #include "CullTask.h"
18 
19 class RenderFetchCullSortTask {
20 public:
21 
22  enum Buckets {
23  OPAQUE_SHAPE = 0,
24  TRANSPARENT_SHAPE,
25  LIGHT,
26  META,
27  OUTLINE,
28  LAYER_FRONT_OPAQUE_SHAPE,
29  LAYER_FRONT_TRANSPARENT_SHAPE,
30  LAYER_HUD_OPAQUE_SHAPE,
31  LAYER_HUD_TRANSPARENT_SHAPE,
32 
33  BACKGROUND,
34 
35  NUM_BUCKETS
36  };
37 
38  using BucketList = render::VaryingArray<render::ItemBounds, Buckets::NUM_BUCKETS>;
39  using Output = render::VaryingSet2<BucketList, render::ItemSpatialTree::ItemSelection>;
40  using JobModel = render::Task::ModelO<RenderFetchCullSortTask, Output>;
41 
42  RenderFetchCullSortTask() {}
43 
44  void build(JobModel& task, const render::Varying& inputs, render::Varying& outputs, render::CullFunctor cullFunctor, uint8_t tagBits, uint8_t tagMask);
45 };
46 
47 #endif // hifi_RenderFetchCullSortTask_h