fix POSITION format (ImDrawVert::pos is 2D, not 4D)
the inputlayout incorrectly described the POSITION attribute as being 4D, while ImDrawVert::pos is 2D. This went unnoticed because the buffer binding has a stride of sizeof(ImDrawVert) and the POSITION is treated as a float2 in the vertex shader. If you switch POSITION to float4 in the vertex shader (and actually use the z/w in the matrix multiplication) then everything become wacky-looking since it's interpreting the texture coordinates as z/w. On a similar note: It's weird that the projection matrix takes z and w into consideration when those don't exist in the shader due to positions being float2s. |
---|
|
examples/directx11_example/imgui_impl_dx11.cpp |
---|