On Saturday, 28 May 2016 at 17:50:30 UTC, Alex Parrill wrote:
On Saturday, 28 May 2016 at 10:58:05 UTC, maik klein wrote:

derelict-vulcan only works on windows, dvulkan doesn't have the platform dependend surface extensions for xlib, xcb, w32 and wayland. Without them Vulkan is unusable for me.

I really don't care what I use, I just wanted something that works.

Platform extension support will be in the next release of d-vulkan. It doesn't include platform extensions now because I wanted to find a way to implement it without tying d-vulkan to a specific set of bindings, though I can't seem to find a good solution unfortunately... I personally use the git version of GLFW, which handles the platform-dependent surface handling for me.

As for the demo itself... It might help explain things more if the separate stages (instance creation, device creation, setting up shaders, etc) were split into their own functions, instead of stuffing everything into `main`.

Struct initializers are also useful when dealing with Vulkan info structs, since you don't have to repeat the variable name each time. Ex this:

VkPipelineVertexInputStateCreateInfo vertexInputStateCreateInfo = {}; vertexInputStateCreateInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO;
vertexInputStateCreateInfo.vertexBindingDescriptionCount = 1;
vertexInputStateCreateInfo.pVertexBindingDescriptions = &vertexBindingDescription;
vertexInputStateCreateInfo.vertexAttributeDescriptionCount = 1;
vertexInputStateCreateInfo.pVertexAttributeDescriptions = &vertexAttributeDescritpion;

Can become:

VkPipelineVertexInputStateCreateInfo vertexInputStateCreateInfo = { sType = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO, // also sType is pre-set with erupted or d-derelict
    vertexBindingDescriptionCount = 1,
    pVertexBindingDescriptions = &vertexBindingDescription,
    vertexAttributeDescriptionCount = 1,
    pVertexAttributeDescriptions = &vertexAttributeDescritpion,
};

I think its personal preference, I like tutorials more if everything I just in the main instead of creating their own "architecture". Though I could probably group with comments.

I saw that sType was a default value after a few hours and that is when I started using it. But at the end I was so annoyed by typing all the enums by hand that I mostly copied stuff from other people and translated it to D.

This was mostly caused by my current vim D setup with vim-dutyl and dcd, it is really unreliable and I didn't get any sane autocompletion. (I have to investigate that at some point).

Btw does this even work? I think the struct initializers have to be

Foo foo = { someVar: 1 };

`:` instead of a `=`

I didn't do this because I actually got autocompletion for `vertexInputStateCreateInfo.` and that meant less typing for me.

Reply via email to