https://typexpersonality.medium.com/everything-you-need-to-know-to-get-started-with-directx-and-direct3d-16a43586c0a8