You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
/** Declare multisampled format of an attachment for a dynamic rendering pipeline. This attachment can only be used with pipeline that has dynamic rendering enabled.
64
+
* It has fewer parameters than regular attachment since some of its values (load/store ops etc...) are set when starting the dynamic render pass
65
+
* as opposed to being declared beforehand..
66
+
* @param aFormatAndSamples Multisampled format definition: A tuple with the format of the attachment in its first element, and with the number of samples in its second element.
67
+
* @param aUsage How is this attachment being used in the renderpass? In contrast to non-dynamic attachments, this usage can only contain a single subpass as such
68
+
* Possible values in namespace avk::usage::
69
+
* Usages for different subpasses can be defined by concatenating them using operator>>.
70
+
* Example 1: avk::usage::color(0) // Indicates that this attachment is used as color attachment at location=0 in the renderpass
71
+
* Example 2: avk::usage::color(2) + usage::resolve_to(3) // Indicates that this attachment is used as color attachment at location=2 in the renderpass
72
+
* // Additionally, at the end of renderpass, its contents are resolved into the attachment at index 3.
73
+
* Example 3: usage::unused // Indicates that this attachment is unused in the renderpass (it will only be used as a resolve target for example)
/** Declare multisampled format of an attachment for a dynamic rendering pipeline. This attachment can only be used with pipeline that has dynamic rendering enabled.
78
+
* It has fewer parameters than regular attachment since some of its values (load/store ops etc...) are set when starting the dynamic render pass
/** Declare multisampled format of an attachment for a dynamic rendering pipeline. This attachment can only be used with pipeline that has dynamic rendering enabled.
85
+
* It has fewer parameters than regular attachment since some of its values (load/store ops etc...) are set when starting the dynamic render pass
86
+
* as opposed to being declared beforehand..
87
+
* @param aImageView The format of the attachment is copied from the given image view.
* @param aAlterConfigBeforeCreation Optional custom callback function which can be used to alter the new pipeline's config right before it is being created on the device.
/** Creates a graphics pipeline based on another graphics pipeline, which serves as a template,
717
-
* which either uses the same renderpass (if it has shared ownership enabled) or creates a new
718
-
* renderpass internally using create_renderpass_from_template with the template's renderpass.
726
+
/** Creates a graphics pipeline based on another graphics pipeline, which serves as a template, which either:
727
+
* - uses the same renderpass (if it has shared ownership enabled)
728
+
* - creates a new renderpass internally using create_renderpass_from_template with the template's renderpass
729
+
* - uses dynamic rendering and thus does not need to create new renderpass
719
730
* @param aTemplate Another, already existing graphics pipeline, which serves as a template for the newly created graphics pipeline.
720
731
* @param aAlterConfigBeforeCreation Optional custom callback function which can be used to alter the new pipeline's config right before it is being created on the device.
721
732
* @return A new graphics pipeline instance.
@@ -728,6 +739,7 @@ namespace avk
728
739
* - cfg::pipeline_settings (flags)
729
740
* - renderpass
730
741
* - avk::attachment (use either attachments or renderpass!)
742
+
* - avk::dynamic_rendering_attachment (only use if dynamic_rendering::enabled)
// Check all invalid configurations when dynamic rendering is set
790
+
if (isDynamicRenderingSet )
791
+
{
792
+
if(hasValidRenderPass) { throwavk::runtime_error("Dynamic rendering does not accept renderpasses! They are set dynamically during rendering!"); }
793
+
if(hasRenderPassAttachments) { throwavk::runtime_error("Only avk::attachments created by declare_dynamic(_for) functions are allowed when dynamic rendering is enabled!"); }
794
+
if(!hasDynamicRenderingAttachments) { throwavk::runtime_error("Dynamic rendering enabled but no avk::attachmenst created by declare_dynamic(_for) functions provided! Please provide at least one attachment!"); }
795
+
}
796
+
// Check all invalid configurations when normal rendering (with renderpasses) is used
797
+
else
798
+
{
799
+
if(hasValidRenderPass && hasRenderPassAttachments) { throwavk::runtime_error("Ambiguous renderpass config! Either set a renderpass OR provide attachments but not both at the same time!"); }
800
+
if(!(hasValidRenderPass || hasRenderPassAttachments)) { throwavk::runtime_error("No renderpass config provided! Please provide a renderpass or attachments!"); }
801
+
}
802
+
770
803
// ^ that was the sanity check. See if we have to build the renderpass from the attachments:
// TODO: Maybe the following overload could be re-enabled after command/commands refactoring?!
230
-
///** Fill buffer with data according to the meta data of the given type Meta.
231
-
// * The buffer's size is determined from its metadata
232
-
// * @param aDataPtr Pointer to the data to copy to the buffer. MUST point to at least enough data to fill the buffer entirely.
233
-
// * @param aMetaDataSkip How often a meta data of type Meta shall be skipped. I.e. values != 0 only make sense if there ar multiple meta data entries of type Meta.
0 commit comments