CMSC23740 Common Code Library
Support code for CS23740 programming projects
Loading...
Searching...
No Matches
depth-buffer.hpp
Go to the documentation of this file.
1
8/*
9 * COPYRIGHT (c) 2024 John Reppy (https://cs.uchicago.edu/~jhr)
10 * All rights reserved.
11 */
12
13#ifndef _CS237_DEPTH_BUFFER_HPP_
14#define _CS237_DEPTH_BUFFER_HPP_
15
16#ifndef _CS237_HPP_
17#error "cs237/depth-buffer.hpp should not be included directly"
18#endif
19
20namespace cs237 {
21
22/* TODO: perhaps this class should be replaced in favor of DepthAttachment? */
23
27public:
28
40 //
41 DepthBuffer (Application *app, uint32_t wid, uint32_t ht);
42
45
47 uint32_t width() const { return this->_wid; }
48
50 uint32_t height() const { return this->_ht; }
51
53 vk::Format format() const { return this->_fmt; }
54
56 vk::Sampler sampler() const { return this->_sampler; }
57
59 vk::ImageView imageView() const { return this->_imageView; }
60
62 vk::DescriptorImageInfo imageInfo() const
63 {
64 return vk::DescriptorImageInfo(
65 this->_sampler,
66 this->_imageView,
67 vk::ImageLayout::eDepthStencilReadOnlyOptimal);
68 }
69
73 vk::Framebuffer createFramebuffer (vk::RenderPass rp);
74
75private:
76 uint32_t _wid;
77 uint32_t _ht;
78 Application *_app;
79 vk::Format _fmt;
80 vk::Image _image;
81 vk::ImageView _imageView;
82 vk::DeviceMemory _mem;
83 vk::Sampler _sampler;
84
85};
86
87} // namespace cs237
88
89#endif // !_CS237_DEPTH_BUFFER_HPP_
the base class for applications
Definition application.hpp:25
Definition depth-buffer.hpp:26
uint32_t height() const
get the height of the buffer
Definition depth-buffer.hpp:50
uint32_t width() const
get the width of the buffer
Definition depth-buffer.hpp:47
vk::DescriptorImageInfo imageInfo() const
get the image information for the depth buffer
Definition depth-buffer.hpp:62
vk::Format format() const
get the depth-buffer image format
Definition depth-buffer.hpp:53
vk::ImageView imageView() const
get the image view for the depth buffer
Definition depth-buffer.hpp:59
DepthBuffer(Application *app, uint32_t wid, uint32_t ht)
construct and initialize a new depth buffer of the give size
vk::Sampler sampler() const
get the sampler
Definition depth-buffer.hpp:56
vk::Framebuffer createFramebuffer(vk::RenderPass rp)
~DepthBuffer()
destructor; this will free the underlying resources
Definition aabb.hpp:22