Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
VkCV Framework
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Terraform modules
Monitor
Service Desk
Analyze
Contributor analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Vulkan2021
VkCV Framework
Commits
f91a59d3
Commit
f91a59d3
authored
3 years ago
by
Alexander Gauggel
Browse files
Options
Downloads
Patches
Plain Diff
[
#96
] Add doxygen documentation to core functions
parent
6640083a
No related branches found
Branches containing commit
No related tags found
Tags containing commit
1 merge request
!97
Resolve "Dokumentation vervollständigen"
Pipeline
#27506
passed
3 years ago
Stage: build
Stage: deploy
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
include/vkcv/Core.hpp
+95
-8
95 additions, 8 deletions
include/vkcv/Core.hpp
with
95 additions
and
8 deletions
include/vkcv/Core.hpp
+
95
−
8
View file @
f91a59d3
...
...
@@ -433,7 +433,7 @@ namespace vkcv
/**
* @brief end recording and present image
*/
*/
void
endFrame
(
const
WindowHandle
&
windowHandle
);
/**
...
...
@@ -455,37 +455,124 @@ namespace vkcv
*
* @param queueType The type of queue to which the command stream will be submitted to
* @return Handle which represents the command stream
*/
*/
CommandStreamHandle
createCommandStream
(
QueueType
queueType
);
/**
* @brief Record commands to a command stream by providing a function
*
* @param cmdStreamHandle Handle of the command stream to record to
* @param record Recording function
* @param finish Finish function, called after execution of commands is finished
*/
void
recordCommandsToStream
(
const
CommandStreamHandle
cmdStreamHandle
,
const
RecordCommandFunction
&
record
,
const
FinishCommandFunction
&
finish
);
/**
* @brief Submit command stream to GPU for actual execution
*
* @param handle command stream to submit
*/
void
submitCommandStream
(
const
CommandStreamHandle
&
handle
);
/**
* @brief Prepare swapchain image for presentation to screen.
* Handles internal state such as image format, also acts as a memory barrier
*
* @param handle Handle of the command stream to record the preparation commands to
*/
void
prepareSwapchainImageForPresent
(
const
CommandStreamHandle
&
handle
);
/**
* @brief Prepare image for use as a sampled image.
* Handles internal state such as image format, also acts as a memory barrier
*
* @param cmdStream Handle of the command stream to record the preparation commands to
* @param image Handle of the image to prepare
*/
void
prepareImageForSampling
(
const
CommandStreamHandle
&
cmdStream
,
const
ImageHandle
&
image
);
void
prepareImageForStorage
(
const
CommandStreamHandle
&
cmdStream
,
const
ImageHandle
&
image
);
// normally layout transitions for attachments are handled by the core
// however for manual vulkan use, e.g. ImGui integration, this function is exposed
// this is also why the command buffer is passed directly, instead of the command stream handle
/**
* @brief Prepare image for use as a storage image.
* Handles internal state such as image format, also acts as a memory barrier
*
* @param cmdStream Handle of the command stream to record the preparation commands to
* @param image Handle of the image to prepare
*/
void
prepareImageForStorage
(
const
CommandStreamHandle
&
cmdStream
,
const
ImageHandle
&
image
);
/**
* @brief Manual trigger to record commands to prepare an image for use as an attachment
*
* normally layout transitions for attachments are handled by the core
* however for manual vulkan use, e.g. ImGui integration, this function is exposed
* this is also why the command buffer is passed directly, instead of the command stream handle
*
* @param cmdBuffer The vulkan command buffer to record to
* @param image Handle of the image to prepare
*/
void
prepareImageForAttachmentManually
(
const
vk
::
CommandBuffer
&
cmdBuffer
,
const
ImageHandle
&
image
);
// if manual vulkan work, e.g. ImGui integration, changes an image layout this function must be used
// to update the internal image state
/**
* @brief Indicate an external change of an image's layout
*
* if manual vulkan work, e.g. ImGui integration, changes an image layout this function must be used
* to update the internal image state
*
* @param image Handle of the image whose layout was changed
* @param layout The current layout of the image
*/
void
updateImageLayoutManual
(
const
vkcv
::
ImageHandle
&
image
,
const
vk
::
ImageLayout
layout
);
/**
* @brief Records a memory barrier to synchronize subsequent accesses to the image's data
*
* @param cmdStream Handle of the command stream to record the barrier to
* @param image Handle of the image the barrier belongs to
*/
void
recordImageMemoryBarrier
(
const
CommandStreamHandle
&
cmdStream
,
const
ImageHandle
&
image
);
/**
* @brief Records a buffer barrier to synchronize subsequent accesses to the buffer's data
*
* @param cmdStream Handle of the command stream to record the barrier to
* @param buffer Handle of the buffer the barrier belongs to
*/
void
recordBufferMemoryBarrier
(
const
CommandStreamHandle
&
cmdStream
,
const
BufferHandle
&
buffer
);
/**
* @brief Resolve a source MSAA image into a destination image for further use
*
* @param cmdStream Handle of the command stream to record the resolve to
* @param src The MSAA image that is resolved
* @param dst The target non-MSAA image that is resolved into
*/
void
resolveMSAAImage
(
const
CommandStreamHandle
&
cmdStream
,
const
ImageHandle
&
src
,
const
ImageHandle
&
dst
);
/**
* @return Vulkan image view of the current swapchain image
*/
[[
nodiscard
]]
vk
::
ImageView
getSwapchainImageView
()
const
;
/**
* @brief Records a generic memory barrier to a command stream
*
* @param cmdStream Handle of the command stream the barrier is recorded to
*/
void
recordMemoryBarrier
(
const
CommandStreamHandle
&
cmdStream
);
/**
* @brief Record a blit (bit block image transfer) of a source image into a destination image,
* mip 0 is used for both
*
* @param cmdStream Handle of the command stream the blit operation is recorded into
* @param src The source image that is read from
* @param dst The destination image that is written into
* @param filterType The type of interpolation that is used
*/
void
recordBlitImage
(
const
CommandStreamHandle
&
cmdStream
,
const
ImageHandle
&
src
,
const
ImageHandle
&
dst
,
SamplerFilterType
filterType
);
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment