DirectXTK VS Open-Source Vulkan C++ API

Compare DirectXTK vs Open-Source Vulkan C++ API and see what are their differences.

DirectXTK

The DirectX Tool Kit (aka DirectXTK) is a collection of helper classes for writing DirectX 11.x code in C++ (by microsoft)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
DirectXTK Open-Source Vulkan C++ API
12 36
2,480 2,909
1.0% 1.7%
7.6 9.1
13 days ago 4 days ago
C++ C++
MIT License Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

DirectXTK

Posts with mentions or reviews of DirectXTK. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-07-12.
  • I need help to make SSE Display Tweaks work.
    1 project | /r/skyrimmods | 9 Oct 2023
    LoadScreenAllow= LoadScreenBlock=All Note: In cases where only loadscreens with conditions are allowed, it is possible that none will show even if no others are available. LoadScreenFilter=false LoadScreenAllow= LoadScreenBlock=All Remove all lens flare from weather records. This is done in-memory and is not persistent. DisableWeatherLensFlare=false Disable actor fade when camera intersects the body. DisableActorFade=false Disable player fade when camera intersects the body. DisablePlayerFade=false [OSD] Enable the on-screen display. Enable=false InitiallyOn=true Comma separated list of displayed stats. fps - Framerate bare_fps - Just the framerate, no formatting frametime - Frametime bare_frametime - Just the frametime, no formatting counter - Frame counter vram - Video ram usage (used / budget) * all - Everything * Note that this line does not show total amount of memory available but rather the OS allocated budget which can vary based on how much is consumed by other applications. If usage exceeds the budget, you'll likely experience stuttering. Requires DXGI 1.4. Stats related to specific drivers are configured in their respective sections. Show=fps,vram How often the OSD updates (in seconds). UpdateInterval=0.3 Keys used used to toggle the OSD. ComboKey uses built-in constants, ToggleKey is a DX scan code (https://www.creationkit.com/index.php?title=Input\_Script) ComboKey: 1 - Left Shift 2 - Right Shift 3 - Left Control 4 - Right Control 5 - Left Alt 6 - Right Alt 7 - Left Win 8 - Right Win ComboKey=1 and ToggleKey=0xD2 is Left Shift + Insert ComboKey=1 ToggleKey=0xD2 Align the OSD. 1 - Top Left 2 - Top Right 3 - Bottom Left 4 - Bottom Right Align=1 OSD position offset (X Y). Offset=4 4 Font scale (X Y) Omit Y for uniform scaling Scale=1.0 0.9 Adjust font scale based on amount of lines drawn. AutoScale=true Scale font size based on window size. Size remains constant when resolution to window size ratio != 1, for example when playing at non-native resolutions. ScaleToWindow=true Set a custom font. You can generate bitmaps from fonts installed on your system with MakeSpriteFont. https://github.com/microsoft/DirectXTK/wiki/MakeSpriteFont Run the tool with /NoPremultiply and place files in Data\SKSE\Plugins\SDTFonts FontFile= Font and outline color (RGBA). Color=255 255 255 255 OutlineColor=0 0 0 255 Outline offset. OutlineOffset=1 "
  • Xenia: Xbox 360 Emulator
    4 projects | news.ycombinator.com | 12 Jul 2023
    XNA died when the people behind it left, thus the C++ side won once again, and DirectXTK was born as replacement.

    https://walbourn.github.io/directxtk/

    Years later they kind of sponsored Monogame, when they were recovering from XBox One mess,

    https://news.xbox.com/en-us/2016/03/14/letter-chris-charla-i...

    By the way, I think one of these episodes talks about the emulation, but I am not certain if it was on this podcast I heard about it.

    https://theretrohour.com/?s=xbox

  • Need help converting wav files to XWB without the wav file names being changed
    1 project | /r/Modding | 2 Jul 2023
    So for the past 8 hours, I've been trying to mod the music files for Bloons Monkey City. I converted some songs I wanted to use in BMC using audacity to wav and made sure to rename the files to the songs I wanted to replace. I used XWBtool to repackage the wav files into an XWB file, the file format BMC uses to store its music in. I used Foobar2000 to view the XMB file, and for whatever reason all the song names get changed to whatever the XWB file name is after repackaging them using XWBtool (I.e. The XWB's file name is whatever the first wav file XWBtool repackages. In my case, "WaveBank#1 (MCity_MvM)" is the first wav file that gets repackaged, so for whatever reason every other file also gets its names changed to "WaveBank#1 (MCity_MvM)," which is causing me a problem as BMC won't be able to read the other music files.).
  • Flight Mechanics
    1 project | /r/Starfield | 20 Jun 2023
  • Learning DirectX 12 in 2023
    13 projects | dev.to | 30 Jan 2023
    DirectXTK 12 (includes SimpleMath and other goodies)
  • Where can I learn directX
    1 project | /r/cpp_questions | 21 Dec 2022
    DirectXtutorial doesn't seem to have the greatest C++ code either. I would definitely use ComPtr.
  • Where to start learning OpenGL or DirectX11 Graphics Programming with C++?
    4 projects | /r/GraphicsProgramming | 9 Jun 2022
    DirectXTK (basically XNA ported to C++, after it was dropped)
  • Chrono Cross: The Radical Dreamers Edition - How to play with the new graphics BUT with the old fonts
    1 project | /r/JRPG | 10 Apr 2022
    Thank you for your reply, I make spritefont from this link https://github.com/microsoft/DirectXTK/wiki/SpriteFont but still cannot show the right font Maybe have to check parameter of old font
  • I'm having a hard time staying committed to learning C++ and OpenGL for game development.
    6 projects | /r/cpp | 31 Mar 2022
    Because you get stuff like DirectXTK and PIX from the company that does the API, while on Khronos stuff you need to go hunting for comunity or GPU vendor specific tooling.
  • How to handle multithreading in concept.
    2 projects | /r/gamedev | 27 Dec 2021
    then check up this https://github.com/microsoft/DirectXTK/wiki/Getting-Started

Open-Source Vulkan C++ API

Posts with mentions or reviews of Open-Source Vulkan C++ API. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-07-05.
  • what math is required?
    2 projects | /r/vulkan | 5 Jul 2023
    It might be useful to maybe look at the Vulkan.hpp examples since you can do the same in about 200 lines of code. https://github.com/KhronosGroup/Vulkan-Hpp/blob/main/samples/15_DrawCube/15_DrawCube.cpp
  • Vulkan-Hpp now provides C++20 module interface file
    1 project | /r/vulkan | 28 Jun 2023
    1 project | /r/cpp | 28 Jun 2023
  • How do you guys organize everything?
    1 project | /r/vulkan | 18 Jun 2023
    Wow that library looks amazing, I'll definitely be using it. Bonus that it's official from the Khronos Group. https://github.com/KhronosGroup/Vulkan-Hpp
  • An idea to ease wrapping C libraries in C++.
    3 projects | /r/cpp | 18 Jun 2023
    Even auto-generated c++ wrappers like vulkan-hpp require lots of manual maintenance.
  • Anybody know why V-EZ has not been updated in 5 years?
    5 projects | /r/vulkan | 15 Jun 2023
    Ultimately I went with vulkan.hpp RAII bindings, even though that way also has some learning curve and I couldn't find any documentation other than the RAII programming guide. It's great for getting started, but could use a complementary auto-generated API doc. There are also decent programming samples, which really suck for getting started, but otherwise do a good job of presenting concepts they focus on. Putting the available resources together I was able to get a project going in two weekends.
  • Using enum classes as bitmasks
    1 project | /r/cpp | 24 May 2023
    This is exactly how the official Vulkan C++ API, Vulkan-Hpp does it. For the precise example mentioned in the blog post:
  • Recommendations on how to start a small Vulkan project
    6 projects | /r/vulkan | 16 May 2023
    Or the vulkan.hpp RAII samples would be a good place?
  • What's the most hilarious use of operator overloading you've seen?
    7 projects | /r/cpp | 6 May 2023
    For a real-life example: consider the vk::raii namespace of Vulkan-Hpp, where the developers have posted examples. The vk::raii::su namespace has a bunch of free functions that one might think are associated with a Vulkan instance/object (in fact, the Vulkan Tutorial does implement them as member functions), but they are much nicer when used as pure functions. It keeps the class/struct definition itself nice and clean.
  • Vulkan-HPP + Vulkan C API == Aliasing Bugs!
    1 project | /r/vulkan | 12 Feb 2023
    final c++17 draft (N4659) first post-publication draft after c++20 (N4868) vulkan-structs.hpp (containing the vk::ImageCreateInfo definition) VkImageCreateInfo struct

What are some alternatives?

When comparing DirectXTK and Open-Source Vulkan C++ API you can also consider the following projects:

GLFW - A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input

Ogre 3D - scene-oriented, flexible 3D engine (C++, Python, C#, Java)

Skia - Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.

Irrlicht - An automatically updated mirror of the Irrlicht SVN repository on sourceforge

magnum - Lightweight and modular C++11 graphics middleware for games and data visualization

urho3d - Game engine

bgfx - Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.

Atomic Game Engine - The Atomic Game Engine is a multi-platform 2D and 3D engine with a consistent API in C++, C#, JavaScript, and TypeScript

OpenVDB - OpenVDB - Sparse volume data structure and tools