Renderer: rewrite render scheduling (#8683)
This rewrites renderer scheduling. Occlusion is now unified in a new Pass type.
This commit is contained in:
parent
1cc1a46c2e
commit
e536b02248
42 changed files with 1576 additions and 775 deletions
36
src/render/pass/Pass.hpp
Normal file
36
src/render/pass/Pass.hpp
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
#pragma once
|
||||
|
||||
#include "../../defines.hpp"
|
||||
#include "PassElement.hpp"
|
||||
|
||||
class CGradientValueData;
|
||||
|
||||
class CRenderPass {
|
||||
public:
|
||||
bool empty() const;
|
||||
bool single() const;
|
||||
bool needsIntrospection() const;
|
||||
|
||||
void add(SP<IPassElement> elem);
|
||||
void clear();
|
||||
|
||||
CRegion render(const CRegion& damage_);
|
||||
|
||||
private:
|
||||
CRegion damage;
|
||||
|
||||
struct SPassElementData {
|
||||
CRegion elementDamage;
|
||||
SP<IPassElement> element;
|
||||
bool discard = false;
|
||||
};
|
||||
|
||||
std::vector<SP<SPassElementData>> m_vPassElements;
|
||||
|
||||
SP<IPassElement> currentPassInfo = nullptr;
|
||||
|
||||
void simplify();
|
||||
float oneBlurRadius();
|
||||
|
||||
friend class CHyprOpenGLImpl;
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue