FCT
载入中...
搜索中...
未找到
Pass.h
浏览该文件的文档.
1//
2// Created by Administrator on 2025/3/16.
3//
4#ifndef FCT_PASS_H
5#define FCT_PASS_H
6#include "../ThirdParty.h"
7#include "./Job.h"
8#include "../RHI/Pass.h"
9#include "./PassResource.h"
11#include "../UI/Window.h"
12namespace FCT {
13 namespace RHI
14 {
16
17 }
18 class Context;
22 using RenderGraphPassResourceAddCallback = std::function<void(PassResource*)>;
23 class OldPass : public RefCount
24 {
25 protected:
26 std::map<uint32_t,Image*> m_targets;
32 public:
34 {
36 {
37
38 };
39 }
45 {
46 return m_pass;
47 }
49 {
50 m_pass = pass;
51 }
52 virtual ~OldPass() = default;
53
55 {
56 return m_clearValue;
57 }
58 OldPass& enableClear(ClearTypes type,Vec4 color,float depth = 1.0f, uint8_t stencil = 0)
59 {
60 m_clearValue.types = type;
61 m_clearValue.color = color;
62 m_clearValue.depth = depth;
63 m_clearValue.stencil = stencil;
64 return *this;
65 }
66 virtual void submit(RHI::CommandBuffer* cmdBuf) = 0;
67 virtual void swapJobQueue() = 0;
68 virtual void updateResource() = 0;
69 void setTarget(uint32_t index, Image* target)
70 {
71 m_targets[index] = target;
72 }
77 void setTarget(uint32_t index,Window* wnd)
78 {
79 setTarget(index,wnd->getCurrentTarget()->getImage());
81 }
82 virtual void submit(Job* job) = 0;
83 };
84
85}
86#endif //FCT_PASS_H
Image * getImage() const override
RHI::Pass * m_pass
定义 Pass.h:30
virtual void swapJobQueue()=0
RHI::Pass * rhiPass() const
定义 Pass.h:44
virtual ~OldPass()=default
RenderGraphPassResourceAddCallback m_addResourceCallback
定义 Pass.h:31
virtual void updateResource()=0
Context * m_ctx
定义 Pass.h:27
PassClearValue getClearValue() const
定义 Pass.h:54
void setDepthStencil(Image *depthStencil)
定义 Pass.h:73
void setPassResourceAddCallback(const RenderGraphPassResourceAddCallback &callback)
定义 Pass.h:40
virtual void submit(Job *job)=0
void setRhiPass(RHI::Pass *pass)
定义 Pass.h:48
Image * m_depthStencil
定义 Pass.h:28
OldPass & enableClear(ClearTypes type, Vec4 color, float depth=1.0f, uint8_t stencil=0)
定义 Pass.h:58
void setTarget(uint32_t index, Image *target)
定义 Pass.h:69
virtual void submit(RHI::CommandBuffer *cmdBuf)=0
void setTarget(uint32_t index, Window *wnd)
定义 Pass.h:77
std::map< uint32_t, Image * > m_targets
定义 Pass.h:26
PassClearValue m_clearValue
定义 Pass.h:29
ImageRenderTarget * getCurrentTarget()
std::function< void(PassResource *)> RenderGraphPassResourceAddCallback
用于给RenderGraph给PassResource添加RenderGraph的资源
定义 Pass.h:22