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  MIRROR,
28  SIMULATE,
29  OUTLINE,
30  LAYER_FRONT_OPAQUE_SHAPE,
31  LAYER_FRONT_TRANSPARENT_SHAPE,
32  LAYER_HUD_OPAQUE_SHAPE,
33  LAYER_HUD_TRANSPARENT_SHAPE,
34 
35  BACKGROUND,
36 
37  NUM_BUCKETS
38  };
39 
40  using BucketList = render::VaryingArray<render::ItemBounds, Buckets::NUM_BUCKETS>;
41  using Output = render::VaryingSet2<BucketList, render::ItemSpatialTree::ItemSelection>;
42  using JobModel = render::Task::ModelO<RenderFetchCullSortTask, Output>;
43 
44  RenderFetchCullSortTask() {}
45 
46  void build(JobModel& task, const render::Varying& inputs, render::Varying& outputs, render::CullFunctor cullFunctor, uint8_t tagBits, uint8_t tagMask);
47 };
48 
49 #endif // hifi_RenderFetchCullSortTask_h