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.