FCT
载入中...
搜索中...
未找到
ImageRenderTarget.cpp
浏览该文件的文档.
1
//
2
// Created by Administrator on 2025/3/27.
3
//
4
5
#include "
../FCTAPI.h
"
6
namespace
FCT
7
{
8
RenderTargetType
ImageRenderTarget::getType
()
const
9
{
10
return
m_renderTargetType
;
11
}
12
13
ImageRenderTarget::ImageRenderTarget
(
Context
* ctx)
14
{
15
m_ctx
= ctx;
16
m_renderTargetType
=
RenderTargetType::ImageTarget
;
17
m_depthStencilBuffer
=
nullptr
;
18
}
19
20
ImageRenderTarget::~ImageRenderTarget
()
21
{
22
/*
23
for (auto target : m_renderTargetImages)
24
{
25
target.second->release();
26
}*/
27
m_target
->release();
28
}
29
30
void
ImageRenderTarget::bindTarget
(
RHI::Image
* image)
31
{
32
auto
renderTargetImage =
new
SingleBufferImage
(
m_ctx
);
33
renderTargetImage->renderTargetType(
m_renderTargetType
);
34
renderTargetImage->create(image);
35
m_width
= image->
width
();
36
m_height
= image->
height
();
37
}
38
39
void
ImageRenderTarget::bindTarget
(
Image
* image)
40
{
41
m_target
= image;
42
m_target
->addRef();
43
}
44
45
void
ImageRenderTarget::setDepthStencilBuffer
(
Image
* image)
46
{
47
m_depthStencilBuffer
= image;
48
m_depthStencilBuffer
->addRef();
49
}
50
51
/*
52
void ImageRenderTarget::addRenderTarget(Image* image)
53
{
54
m_renderTargetImages.push_back(image);
55
}
56
*/
57
/*
58
void ImageRenderTarget::addRenderTarget(RHI::Image* image)
59
{
60
auto renderTargetImage = new SingleBufferImage(m_ctx);
61
renderTargetImage->renderTargetType(m_renderTargetType);
62
renderTargetImage->create(image);
63
if (m_renderTargetImages.empty())
64
{
65
m_width = image->width();
66
m_height = image->height();
67
}
68
#ifdef FCT_DEBUG
69
else
70
{
71
if (m_width!= image->width() || m_height!= image->height())
72
{
73
ferr << "ImageRenderTarget::addRenderTarget: Image size not match!" << std::endl;
74
}
75
}
76
#endif
77
m_renderTargetImages.push_back(renderTargetImage);
78
}
79
*/
80
/*
81
void ImageRenderTarget::addRenderTarget(std::vector<RHI::Image*> images)
82
{
83
84
}*/
85
/*
86
void ImageRenderTarget::bindRenderTarget(uint32_t index, Image* image)
87
{
88
image->addRef();
89
m_renderTargetImages[index] = image;
90
}
91
92
void ImageRenderTarget::bindRenderTarget(uint32_t index, RHI::Image* image)
93
{
94
auto renderTargetImage = new SingleBufferImage(m_ctx);
95
renderTargetImage->renderTargetType(m_renderTargetType);
96
renderTargetImage->create(image);
97
if (m_renderTargetImages.empty())
98
{
99
m_width = image->width();
100
m_height = image->height();
101
}
102
#ifdef FCT_DEBUG
103
else
104
{
105
if (m_width!= image->width() || m_height!= image->height())
106
{
107
ferr << "ImageRenderTarget::addRenderTarget: Image size not match!" << std::endl;
108
}
109
}
110
#endif
111
m_renderTargetImages[index] = renderTargetImage;
112
}*/
113
/*
114
std::vector<Image*> ImageRenderTarget::getTargetImages()
115
{
116
return m_renderTargetImages;
117
}*/
118
}
FCTAPI.h
FCT::Context
定义
Context.h:98
FCT::Image
定义
Image.h:49
FCT::ImageRenderTarget::ImageRenderTarget
ImageRenderTarget(Context *ctx)
定义
ImageRenderTarget.cpp:13
FCT::ImageRenderTarget::m_ctx
Context * m_ctx
定义
ImageRenderTarget.h:49
FCT::ImageRenderTarget::m_renderTargetType
RenderTargetType m_renderTargetType
定义
ImageRenderTarget.h:46
FCT::ImageRenderTarget::m_width
int m_width
定义
ImageRenderTarget.h:47
FCT::ImageRenderTarget::~ImageRenderTarget
~ImageRenderTarget()
定义
ImageRenderTarget.cpp:20
FCT::ImageRenderTarget::m_depthStencilBuffer
Image * m_depthStencilBuffer
定义
ImageRenderTarget.h:51
FCT::ImageRenderTarget::setDepthStencilBuffer
void setDepthStencilBuffer(Image *image)
定义
ImageRenderTarget.cpp:45
FCT::ImageRenderTarget::getType
RenderTargetType getType() const override
定义
ImageRenderTarget.cpp:8
FCT::ImageRenderTarget::m_height
int m_height
定义
ImageRenderTarget.h:48
FCT::ImageRenderTarget::bindTarget
void bindTarget(RHI::Image *image)
定义
ImageRenderTarget.cpp:30
FCT::ImageRenderTarget::m_target
Image * m_target
定义
ImageRenderTarget.h:50
FCT::RHI::Image
定义
Image.h:17
FCT::RHI::Image::width
void width(uint32_t width)
定义
Image.h:41
FCT::RHI::Image::height
void height(uint32_t height)
定义
Image.h:45
FCT::SingleBufferImage
定义
SingleBufferImage.h:18
FCT
定义
Enums.h:8
FCT::RenderTargetType
RenderTargetType
定义
IRenderTarget.h:5
FCT::RenderTargetType::ImageTarget
@ ImageTarget
定义
IRenderTarget.h:7
src
Context
ImageRenderTarget.cpp
制作者
1.14.0