The DirectX Tool Kit (aka DirectXTK) is a collection of helper classes for writing DirectX 11.x code in C++

Overview

DirectX Logo

DirectX Tool Kit for DirectX 11

http://go.microsoft.com/fwlink/?LinkId=248929

Copyright (c) Microsoft Corporation. All rights reserved.

January 9, 2021

This package contains the "DirectX Tool Kit", a collection of helper classes for writing Direct3D 11 C++ code for Universal Windows Platform (UWP) apps for Windows 10, Xbox One, and Win32 desktop applications for Windows 7 Service Pack 1 or later.

This code is designed to build with Visual Studio 2017 (15.9), Visual Studio 2019, or clang for Windows v9 or later. It is recommended that you make use of the Windows 10 May 2020 Update SDK (19041).

These components are designed to work without requiring any content from the legacy DirectX SDK. For details, see Where is the DirectX SDK?.

Directory Layout

  • Inc\

    • Public Header Files (in the DirectX C++ namespace):

      • Audio.h - low-level audio API using XAudio2 (DirectXTK for Audio public header)
      • BufferHelpers.h - C++ helpers for creating D3D resources from CPU data
      • CommonStates.h - factory providing commonly used D3D state objects
      • DDSTextureLoader.h - light-weight DDS file texture loader
      • DirectXHelpers.h - misc C++ helpers for D3D programming
      • Effects.h - set of built-in shaders for common rendering tasks
      • GamePad.h - gamepad controller helper using XInput
      • GeometricPrimitive.h - draws basic shapes such as cubes and spheres
      • GraphicsMemory.h - helper for managing dynamic graphics memory allocation
      • Keyboard.h - keyboard state tracking helper
      • Model.h - draws meshes loaded from .CMO, .SDKMESH, or .VBO files
      • Mouse.h - mouse helper
      • PostProcess.h - set of built-in shaders for common post-processing operations
      • PrimitiveBatch.h - simple and efficient way to draw user primitives
      • ScreenGrab.h - light-weight screen shot saver
      • SimpleMath.h - simplified C++ wrapper for DirectXMath
      • SpriteBatch.h - simple & efficient 2D sprite rendering
      • SpriteFont.h - bitmap based text rendering
      • VertexTypes.h - structures for commonly used vertex data formats
      • WICTextureLoader.h - WIC-based image file texture loader
      • XboxDDSTextureLoader.h - Xbox One exclusive apps variant of DDSTextureLoader
  • Src\

    • DirectXTK source files and internal implementation headers
  • Audio\

    • DirectXTK for Audio source files and internal implementation headers
  • MakeSpriteFont\

    • Command line tool used to generate binary resources for use with SpriteFont
  • XWBTool\

    • Command line tool for building XACT-style wave banks for use with DirectXTK for Audio's WaveBank class

Documentation

Documentation is available on the GitHub wiki.

Notices

All content and source code for this package are subject to the terms of the MIT License.

For the latest version of DirectXTK, bug reports, etc. please visit the project site on GitHub.

Release Notes

  • Starting with the June 2020 release, this library makes use of typed enum bitmask flags per the recommendation of the C++ Standard section 17.5.2.1.3 Bitmask types. This may have breaking change impacts to client code:

    • You cannot pass the 0 literal as your flags value. Instead you must make use of the appropriate default enum value: AudioEngine_Default, SoundEffectInstance_Default, ModelLoader_Clockwise, or WIC_LOADER_DEFAULT.

    • Use the enum type instead of DWORD if building up flags values locally with bitmask operations. For example, WIC_LOADER_FLAGS flags = WIC_LOADER_DEFAULT; if (...) flags |= WIC_LOADER_FORCE_SRGB;

  • The UWP projects and the VS 2019 Win10 classic desktop project include configurations for the ARM64 platform. These require VS 2017 (15.9 update) or VS 2019 to build, with the ARM64 toolset installed.

  • The CompileShaders.cmd script must have Windows-style (CRLF) line-endings. If it is changed to Linux-style (LF) line-endings, it can fail to build all the required shaders.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

Issues
  • Wrong Measurements from MeasureString

    Wrong Measurements from MeasureString

    Hi Developers,

    I have notice that the MeasureString returns a wrong size. The string "W" is used to measure the string size. The spritefont file is generated using MakeSpriteFont tool. The font setting is

    • FontName: Arial
    • FontStyle: Bold
    • FontSize: 185

    The returned result for the width and the height are 233 and 283.642578 respectively. "W" is placed at (0,0) I have edited Image 1 to include a black dotted line and marked a red circle to indicate the position where my mouse positioned which reflects the values shown in the Window Title. Clearly, there is a big difference between the Vector2 returned and the size which I had measured.

    Image 1: image 1

    In addition, when I used SpriteBatch to draw "W" on the screen (0,0) using origin (0,0), it does not draw at the correct place. Instead, there is some sort of spacing as shown in Image 2.

    Image 2: image 2

    To test it further, I have used SpriteBatch to draw "W" on the screen at the bottom left (i.e. making it right justified) of the screen using the origin calculated via MeasureString, but it does not draw at the correct place as shown in Image 3. Instead, it is lifted and cut off.

    Image 3: image 3

    bug 
    opened by char1estan 19
  • Add vcpkg installation instructions

    Add vcpkg installation instructions

    directxtkis available as a port in vcpkg, a C++ library manager that simplifies installation for directxtkand other project dependencies. Documenting the install process here will help users get started by providing a single set of commands to build directxtk, ready to be included in their projects.

    We also test whether our library ports build in various configurations (dynamic, static) on various platforms (Windows: x86, x64, arm, uwp) to keep a wide coverage for users. Note: Currently it only supports dynamic build on Windows.

    I'm a maintainer for vcpkg, and here is what the port script looks like. We try to keep the library maintained as close as possible to the original library.

    I'm trying to add vcpkg installation instructions but I couldn't find the related docs in code item except for on Wikipage.

    Could you please help add the following contents to this port?

    Installing and building directxtk via vcpkg

    You can download and install directxtk using the vcpkg dependency manager:

      git clone https://github.com/Microsoft/vcpkg.git
      cd vcpkg
      ./bootstrap-vcpkg.sh
      ./vcpkg integrate install
      vcpkg install directxtk 
    

    The directxtk port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please create an issue or pull request on the vcpkg repository.

    Thanks, Nancy

    documentation 
    opened by NancyLi1013 13
  • Vector3 does not Equal If use Lerp\SmoothStep

    Vector3 does not Equal If use Lerp\SmoothStep

    Hi, sorry for my bad English) I use those functions to make a cut-scene (or smooth moving a camera by points) and it works good but if i pass less this value like ScreenShot_20190914094238 then i have this result изображение Of course it doesn't equal and my code looks wrong. What do I need to do with this situation?

    question 
    opened by PoweredByAndrox 13
  • bounding sphere of a modal mesh

    bounding sphere of a modal mesh

    Hi,

    I'm trying to get a bounding sphere of a modal mesh and transform it to world coordinates. but the bounding sphere without any transformation is not center at 0,0,0.

    here is how I do the transformation```

     m_bounding = m_Tree->meshes.at(0)->boundingSphere;
     XMMATRIX sphereTranslate = XMMatrixTranslation(m_bounding.Center.x, m_bounding.Center.y,
         m_bounding.Center.z);
    sphereTranslate = sphereTranslate*treeTranslate;
    
    XMMATRIX boundingSphereScale = XMMatrixScaling(120.0f, 120.0f, 120.0f);
    worldSphere = boundingSphereScale*sphereTranslate;
    m_bounding.Transform(m_bounding, sphereTranslate* boundingSphereScale);
    
    m_BoundingSphere->Draw(worldSphere, m_Camera.ViewMatrix(), m_Camera.ProjectionMatrix());
    
    question 
    opened by AndreAhmed 13
  • Can't compile with clang-cl for ARM64

    Can't compile with clang-cl for ARM64

    I keep getting undefined symbol errors when compiling with clang-cl for ARM64. Is it unsupported?

    1>lld-link : error : undefined symbol: neon_dupqrf32 1>>>> referenced by C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\DirectXMathMatrix.inl:1235 1>>>> ARM64\ARM64Release\Game.obj:(struct DirectX::XMMATRIX __cdecl DirectX::XMMatrixScaling(float, float, float)) 1>>>> referenced by ARM64\ARM64Release\Main.obj 1>>>> referenced by C:\dxtkjuly4\DirectXTK-master\Src\SpriteBatch.cpp:733 1>>>> DirectXTKARM64.lib(SpriteBatch.obj):(private: void __cdecl DirectX::SpriteBatch::Impl::RenderBatch(struct ID3D11ShaderResourceView *, struct DirectX::SpriteBatch::Impl::SpriteInfo const *const *, unsigned __int64)) 1>>>> referenced by C:\dxtkjuly4\DirectXTK-master\Src\SpriteBatch.cpp:830 1>>>> DirectXTKARM64.lib(SpriteBatch.obj):(private: static void __cdecl DirectX::SpriteBatch::Impl::RenderSprite(struct DirectX::SpriteBatch::Impl::SpriteInfo const *, struct DirectX::VertexPositionColorTexture *, union __n128, union __n128)) 1>>>> referenced by C:\dxtkjuly4\DirectXTK-master\Src\SpriteBatch.cpp:862 1>>>> DirectXTKARM64.lib(SpriteBatch.obj):(private: static void __cdecl DirectX::SpriteBatch::Impl::RenderSprite(struct DirectX::SpriteBatch::Impl::SpriteInfo const *, struct DirectX::VertexPositionColorTexture *, union __n128, union __n128)) 1>>>> referenced by C:\dxtkjuly4\DirectXTK-master\Src\SpriteBatch.cpp:863 1>>>> DirectXTKARM64.lib(SpriteBatch.obj):(private: static void __cdecl DirectX::SpriteBatch::Impl::RenderSprite(struct DirectX::SpriteBatch::Impl::SpriteInfo const *, struct DirectX::VertexPositionColorTexture *, union __n128, union __n128)) 1>>>> referenced by C:\dxtkjuly4\DirectXTK-master\Src\SpriteBatch.cpp:1079 1>>>> DirectXTKARM64.lib(SpriteBatch.obj):(public: void __cdecl DirectX::SpriteBatch::Draw(struct ID3D11ShaderResourceView *, struct DirectX::XMFLOAT2 const &, struct tagRECT const *, union __n128, float, struct DirectX::XMFLOAT2 const &, float, enum DirectX::SpriteEffects, float)) 1>>>> referenced by C:\dxtkjuly4\DirectXTK-master\Src\SpriteBatch.cpp:1126 1>>>> DirectXTKARM64.lib(SpriteBatch.obj):(public: void __cdecl DirectX::SpriteBatch::Draw(struct ID3D11ShaderResourceView *, union __n128, struct tagRECT const *, union __n128, float, union __n128, float, enum DirectX::SpriteEffects, float)) 1>>>> referenced by C:\dxtkjuly4\DirectXTK-master\Src\SpriteBatch.cpp:1128 1>>>> DirectXTKARM64.lib(SpriteBatch.obj):(public: void __cdecl DirectX::SpriteBatch::Draw(struct ID3D11ShaderResourceView *, union __n128, struct tagRECT const *, union __n128, float, union __n128, float, enum DirectX::SpriteEffects, float)) 1>>>> referenced by C:\dxtkjuly4\DirectXTK-master\Src\SpriteBatch.cpp:1128 1>>>> DirectXTKARM64.lib(SpriteBatch.obj):(public: void __cdecl DirectX::SpriteBatch::Draw(struct ID3D11ShaderResourceView *, union __n128, struct tagRECT const *, union __n128, float, union __n128, float, enum DirectX::SpriteEffects, float)) 1>>>> referenced 11 more times

    bug 
    opened by bbfe 12
  • Menu error

    Menu error

    I'm making a menu

    'enum Menu { FightNow, Career, BeatdownLive, Help, Options };'

    'void MainMenu::LoadMenu() { auto context = m_deviceResources->GetD3DDeviceContext(); auto device = m_deviceResources->GetD3DDevice(); m_spriteBatch = std::make_unique(context);

    ComPtr<ID3D11Resource> resource;
    DX::ThrowIfFailed(
    	CreateWICTextureFromFile(device, L"cat.png",
    		resource.GetAddressOf(),
    		m_texture.ReleaseAndGetAddressOf()));
    
    ComPtr<ID3D11Texture2D> logo;
    DX::ThrowIfFailed(resource.As(&logo));
    
    CD3D11_TEXTURE2D_DESC logoDesc;
    logo->GetDesc(&logoDesc);
    
    m_origin.x = float(logoDesc.Width / 2);
    m_origin.y = float(logoDesc.Height / 2);
    
    
    
    while (gameOn != false) {
    	
    	
    	cout << DX::ThrowIfFailed(
    		CreateWICTextureFromFile(device, L"cat.png",
    			resource.GetAddressOf(),
    			m_texture.ReleaseAndGetAddressOf())); ;
    	cout << DX::ThrowIfFailed(
    		CreateWICTextureFromFile(device, L"cat.png",
    			resource.GetAddressOf(),
    			m_texture.ReleaseAndGetAddressOf()));
    	cout << DX::ThrowIfFailed(
    		CreateWICTextureFromFile(device, L"cat.png",
    			resource.GetAddressOf(),
    			m_texture.ReleaseAndGetAddressOf()));
    	cout << DX::ThrowIfFailed(
    		CreateWICTextureFromFile(device, L"cat.png",
    			resource.GetAddressOf(),
    			m_texture.ReleaseAndGetAddressOf()));
    	
    
    	cin >> mode;
    
    	while (true)
    	{
    		switch (mode)
    		{
    		case FightNow:
    
    			break;
    		}
    	}
    }
    

    }'

    I keep getting these errors

    E0349 no operator "<<" matches these operands E0349 no operator ">>" matches these operands

    question 
    opened by dudedude1234 12
  • Retire Windows 8.1 Store, Windows phone 8.1, and VS 2013 projects

    Retire Windows 8.1 Store, Windows phone 8.1, and VS 2013 projects

    At some point we should remove support for these older versions in favor of UWP apps

    DirectXTK_Windows81.vcxproj DirectXTK_WindowsPhone81.vcxproj DirectXTK_XAMLSilverlight_WindowsPhone81.vcxproj

    This would also be a good time to drop VS 2013 entirely:

    DirectXTK_Desktop_2013.vcxproj DirectXTK_Desktop_2013_DXSDK

    Please put any requests for continued support for one or more of these here.

    maintainence 
    opened by walbourn 12
  • Mouse/Keyboard GetState()/IsKeyDown()/IsKeyUp() methods

    Mouse/Keyboard GetState()/IsKeyDown()/IsKeyUp() methods

    I would like to suggest that the methods listed in the subject line be made static, thereby eliminating the need to instantiate an instance of Mouse/Keyboard for most uses. For now, I'm wrapping instances of these classes in a class that has equivalent static methods, so I can achieve the effect I'm going for, but it would be nice if the DirectXTK more closely matched the XNA API right out of the box. If there is a technical reason why they shouldn't be made static I'd like to know why, if just for educational purposes. I'm humbled by the quality of the code and I'm still a ways away from mastering C++.

    Another suggestion, and this is just a stylistic thing, I think it would be better to have the first letter of the Mouse::State struct members capitalized. This matches the style of the Keyboard::State struct and Microsoft conventions in general...at least in the clean and consistent world of .NET. :)

    Thanks guys!

    enhancement input 
    opened by ghost 12
  • Bug in Model class SDKMESH loader

    Bug in Model class SDKMESH loader

    I think I found a bug when loading and rendering the island.sdkmesh using a Model class object. The island.sdkmesh model has two mesh parts but only one is rendered.

    bug 
    opened by omml 11
  • After Mouse::SetMode(Mouse::MODE_RELATIVE) mouse position is always zero

    After Mouse::SetMode(Mouse::MODE_RELATIVE) mouse position is always zero

    Hi there. After Mouse::SetMode(Mouse::MODE_RELATIVE) method call when I call Mouse::Get().GetState().x or Mouse::Get().GetState().y the values of x and y do not get updated. If I call Mouse::SetMode(Mouse::MODE_ABSOLUTE) the values of x and y update immediately.

    I am using 2021.11.8.1 version of DirectXTK (directxtk_desktop_win10) downloaded from NuGet.

    You can find a working demo in this repo.

    documentation input 
    opened by vocasle 10
  • Rendering a model Tutorial - Meshconverter FAILED with an unspecified error

    Rendering a model Tutorial - Meshconverter FAILED with an unspecified error

    Hi, I was reading the tutorial about how to load an render a model with this TK using the provided files and I run into this problem. No matter what file I've tried or how many times I tried, it always fails at loading the .obj file with an unhelpful error (80004005)

    image

    According to the source code, it fails at the LoadFromOBJ function, where the WaveFrontReader doesn't read the vertices/indices: (
    if (wfReader.indices.empty() || wfReader.vertices.empty()) return E_FAIL; )

    But how and why? What am I doing wrong? I've tried with other .obj files as well with no luck...

    Thanks for you time and sorry to bother you!

    bug 
    opened by MasterDrake 9
  • Keyboard: Numpad Enter, a key that may be forgotten

    Keyboard: Numpad Enter, a key that may be forgotten

    There are two facts:

    I used to think window messages couldn't differentiate between Enter and Numpad Enter, but:

    • Press Enter key image
    • Press Enter key on numpad image

    This issue is also mentioned in the source code of Dear-ImGui (imgui_impl_win32).

    Since my application was migrated from DirectInput to DirectXTK Keyboard, will the Numpad Enter key be officially supported in the future?

    enhancement input 
    opened by Demonese 2
  • Add horizonal scroll wheel support to Mouse

    Add horizonal scroll wheel support to Mouse

    The original XNA Game Studio Mouse abstraction only exposed the vertical scroll wheel as most mice don't have the horizonal scroll wheel. The information, however, is exposed for Win32, UWP, and GameInput.

    This work would likely modify Mouse::State to have 2 scroll wheel values:

    struct State
    {
    ...
        int     scrollWheelValueX;
        int     scrollWheelValueY;
    ...
    };
    

    This would be a minor breaking change.

    And the reset method would be updated to:

    // Resets the accumulated scroll wheel value
    void __cdecl ResetScrollWheelValue(bool x=true, bool y=true) noexcept;
    

    The Win32 integration would also require getting WM_MOUSEHWHEEL messages.

    enhancement input 
    opened by walbourn 2
  • Problem in changed mouse relative/absolute mode

    Problem in changed mouse relative/absolute mode

    I have some problem in changed mouse relative/absolute mode

    In absolute Mode: I used SetMode(MODE_RELATIVE);

    when the mouse not moved, it will still is absolute Mode and still showing mouse cursor.

    and i just move the mouse a little bit, it correctly changed to relative and hide the mouse, how to solve this problem without moving the mouse?

    question input 
    opened by KittoChanKC 3
  • Keyboard support for Windows key disable

    Keyboard support for Windows key disable

    This old article provides a way to keep the Windows key from popping a game out of fullscreen. Maybe I should add it to the Win32 version of Keyboard?

    https://docs.microsoft.com/en-us/windows/win32/dxtecharts/disabling-shortcut-keys-in-games

    This original code does not cause problems for Xbox Game Bar shortcuts which work correctly even when this low-level hook is used.

    enhancement input 
    opened by walbourn 1
  • Dear ImGui integration with PrimitiveBatch

    Dear ImGui integration with PrimitiveBatch

    The existing 'implementation on GitHub works fine, but it could be made a lot simpler if it was using DirectX Tool Kit PrimitiveBatch.

    A helper and tutorial here would be nice.

    documentation 
    opened by walbourn 0
Releases(jun2022)
Owner
Microsoft
Open source projects and samples from Microsoft
Microsoft
C++ (with python bindings) library for easily reading/writing/manipulating common animation particle formats such as PDB, BGEO, PTC. See the discussion group @ http://groups.google.com/group/partio-discuss

Partio - A library for particle IO and manipulation This is the initial source code release of partio a tool we used for particle reading/writing. It

Walt Disney Animation Studios 401 Jun 22, 2022
A C++/DirectX 11 implementation of "A Scalable and Production Ready Sky and Atmosphere Rendering Technique"

Atmosphere Renderer A C++/DirectX 11 implementation of "A Scalable and Production Ready Sky and Atmosphere Rendering Technique" Features interactive e

Z Guan 29 Jun 23, 2022
A real-time DirectX 11 renderer. The renderer is named by my girlfriend's english name.

sophia Sophia is a real-time DirectX 11 renderer. It is not quite a rich graphics engine, only packages some low-level DirectX functions and contains

BB 6 Dec 11, 2021
✖🌱 A DirectX 12 starter repo that you could use to get the ball rolling.

DirectX 12 Seed A DirectX 12 repo you can use to get started with your own renderer. Setup First install: Git CMake Visual Studio Then type the follow

Alain Galvan 60 May 10, 2022
This repo contains the DirectX Graphics samples that demonstrate how to build graphics intensive applications on Windows.

DirectX-Graphics-Samples This repo contains the DirectX 12 Graphics samples that demonstrate how to build graphics intensive applications for Windows

Microsoft 4.6k Jun 27, 2022
DirectX 11 and 12 library that provides a scalable and GCN-optimized solution for deferred shadow filtering

AMD ShadowFX The ShadowFX library provides a scalable and GCN-optimized solution for deferred shadow filtering. Currently the library supports uniform

GPUOpen Effects 163 Jun 23, 2022
Playground for DirectX 11 / 12 simple graphics demo examples ...

graphicsdemoskeleton Playground for DirectX 11 / 12 simple graphics demo examples ... If anyone from Microsoft reads this: C99 support is broken in Di

Wolfgang Engel 46 Jan 13, 2022
DirectX shader bytecode cross compiler

HLSLcc DirectX shader bytecode cross compiler. Originally based on https://github.com/James-Jones/HLSLCrossCompiler. This library takes DirectX byteco

Unity Technologies 697 Jun 20, 2022
Binary visualization tool primarily aimed at videogame reverse engineering & research.

binviz Binary visualization tool. Allows you to load a binary and pan/zoom around its content. Each byte (or 4 bytes in 4-byte mode) is represented by

Nick Renieris 28 Apr 25, 2022
CatFrida is a macOS tool for inspecting a running iOS app.

CatFrida CatFrida is a macOS tool for inspecting a running iOS app. Building with frida-swift, CatFrida provide an awesome easy way to dive into an ap

neilwu 94 May 12, 2022
Linux/X11 tool for intercepting mouse events and executing commands. Written in Kotlin Native.

XMG XMG (X11 Mouse Grabber) is a Linux/X11 tool for intercepting mouse button press events and triggering actions. It's a way of making use of the ext

Eduardo Fonseca 12 Sep 11, 2021
animation2gltf2 is a command line tool for generating animation glTF 2.0 content.

Generate animation glTF 2.0 content animation2gltf2 is a command line tool for generating animation glTF 2.0 content. A rotation and translation can b

UX3D GmbH 7 Jan 9, 2022
The open-source tool for creating of 3D models

The open-source tool for creating of 3D models

3D geoinformation research group at TU Delft 396 Jun 25, 2022
Vis: Asynchronous 3D Visualization Tool

English | 简体中文 Vis: Asynchronous 3D Visualization Tool Vis 是一款交互式异步3D可视化工具,旨在让3D视觉和机器人应用开发更简单。 其核心功能包括: 图形绘制 3D模型文件导入 多种交互工具 Gzimo 安装 Linux # 安装必要的依

RVBUST 109 May 17, 2022
Monster Mash: New Sketch-Based Modeling and Animation Tool

Monster Mash is a new sketch-based modeling and animation tool that allows you to quickly sketch a character, inflate it into 3D, and promptly animate it. You can perform all interactions in the sketching plane. No 3D manipulation is required.

Google 1.1k Jul 2, 2022
Ksnip is a Qt-based cross-platform screenshot tool that provides many annotation features for your screenshots.

Ksnip is a Qt-based cross-platform screenshot tool that provides many annotation features for your screenshots.

ksnip 1.4k Jun 26, 2022
3D Procedural Terrain Generation Tool in OpenGL/C++

TerraGen3D 3D Procedural Terrain Generation Tool in OpenGL/C++ Give your valuable feedback : https://github.com/Jaysmito101/TerraGen3D/discussions/6 T

Jaysmito Mukherjee 570 Jun 22, 2022
A tool to create funscripts

OpenFunscripter I swear this is a C++ project despite what the statistic on this repo says ?? The project is based on OpenGL, SDL2, ImGui, libmpv, & a

null 26 Jun 25, 2022
Simple console tool to get all the information from DXGI and Direct3D 12 on current system

D3d12info Simple console tool to get all the information from DXGI and Direct3D 12 (D3D12) on current system. Built and tested on Windows 10 64-bit us

Adam Sawicki 23 Jun 27, 2022