static void demo_prepare_framebuffers(struct demo *demo)
{
- VkAttachmentBindInfo attachments[2] = {
- [0] = {
- .view.handle = VK_NULL_HANDLE,
- .layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
- },
- [1] = {
- .view = demo->depth.view,
- .layout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
- },
- };
+ VkAttachmentView attachments[2];
+ attachments[1] = demo->depth.view;
+
const VkFramebufferCreateInfo fb_info = {
.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,
.pNext = NULL,
uint32_t i;
for (i = 0; i < DEMO_BUFFER_COUNT; i++) {
- attachments[0].view = demo->buffers[i].view;
+ attachments[0] = demo->buffers[i].view;
err = vkCreateFramebuffer(demo->device, &fb_info, &demo->framebuffers[i]);
assert(!err);
}
static void demo_prepare_framebuffers(struct demo *demo)
{
- VkAttachmentBindInfo attachments[2] = {
- [0] = {
- .view.handle = VK_NULL_HANDLE,
- .layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
- },
- [1] = {
- .view = demo->depth.view,
- .layout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
- },
- };
+ VkAttachmentView attachments[2];
+ attachments[1] = demo->depth.view;
+
const VkFramebufferCreateInfo fb_info = {
.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,
.pNext = NULL,
uint32_t i;
for (i = 0; i < DEMO_BUFFER_COUNT; i++) {
- attachments[0].view = demo->buffers[i].view;
+ attachments[0]= demo->buffers[i].view;
err = vkCreateFramebuffer(demo->device, &fb_info, &demo->framebuffers[i]);
assert(!err);
}
((major << 22) | (minor << 12) | patch)
// Vulkan API version supported by this file
-#define VK_API_VERSION VK_MAKE_VERSION(0, 140, 0)
+#define VK_API_VERSION VK_MAKE_VERSION(0, 142, 0)
#define VK_DEFINE_HANDLE(obj) typedef struct obj##_T* obj;
#if defined(__cplusplus)
- #if (_MSC_VER >= 1800 || __cplusplus >= 201103L)
+ #if ((defined(_MSC_VER) && _MSC_VER >= 1800) || __cplusplus >= 201103L)
// The bool operator only works if there are no implicit conversions from an obj to
// a bool-compatible type, which can then be used to unintentionally violate type safety.
// C++11 and above supports the "explicit" keyword on conversion operators to stop this
} VkDynamicDepthStencilStateCreateInfo;
typedef struct {
- VkAttachmentView view;
- VkImageLayout layout;
-} VkAttachmentBindInfo;
-
-typedef struct {
VkStructureType sType;
const void* pNext;
VkRenderPass renderPass;
uint32_t attachmentCount;
- const VkAttachmentBindInfo* pAttachments;
+ const VkAttachmentView* pAttachments;
uint32_t width;
uint32_t height;
uint32_t layers;
// Shadow create info and store in map
VkFramebufferCreateInfo* localFBCI = new VkFramebufferCreateInfo(*pCreateInfo);
if (pCreateInfo->pAttachments) {
- localFBCI->pAttachments = new VkAttachmentBindInfo[localFBCI->attachmentCount];
- memcpy((void*)localFBCI->pAttachments, pCreateInfo->pAttachments, localFBCI->attachmentCount*sizeof(VkAttachmentBindInfo));
+ localFBCI->pAttachments = new VkAttachmentView[localFBCI->attachmentCount];
+ memcpy((void*)localFBCI->pAttachments, pCreateInfo->pAttachments, localFBCI->attachmentCount*sizeof(VkAttachmentView));
}
frameBufferMap[pFramebuffer->handle] = localFBCI;
}
}
if(pCreateInfo->pAttachments != nullptr)
{
- if(pCreateInfo->pAttachments->layout < VK_IMAGE_LAYOUT_BEGIN_RANGE ||
- pCreateInfo->pAttachments->layout > VK_IMAGE_LAYOUT_END_RANGE)
- {
- log_msg(mdd(device), VK_DBG_REPORT_ERROR_BIT, (VkDbgObjectType)0, 0, 0, 1, "PARAMCHECK",
- "vkCreateFramebuffer parameter, VkImageLayout pCreateInfo->pAttachments->layout, is an unrecognized enumerator");
- return false;
- }
}
}