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.

November 8, 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 11, 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, Visual Studio 2022, or clang for Windows v11 or later. Use of the Windows 10 May 2020 Update SDK (19041) or later is required.

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

  • As of the October 2021 release, the DGSLEffect no longer directly supports skinning. Instead, make use of SkinnedDGSLEffect which is derived from DGSLEffect.

  • As of the August 2021 release, MakeSpriteFont requires the .NET version 4.7.2 targeting pack to be installed to build. For VS 2017, this is an optional individual component .NET Framework 4.7.2 development tools (Microsoft.Net.Component.4.7.2.TargetingPack).

  • 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 Win10 classic desktop project include configurations for the ARM64 platform. These require VS 2017 (15.9 update) or later 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.

Support

For questions, consider using Stack Overflow with the directxtk tag, or the DirectX Discord Server in the dx9-dx11-developers channel.

For bug reports and feature requests, please use GitHub issues for this project.

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.

Credits

The DirectX Tool Kit is the work of Shawn Hargreaves and Chuck Walbourn, with contributions from Aaron Rodriguez Hernandez, and Dani Roman.

Thanks to Shanon Drone for the SDKMESH file format.

Thanks to Adrian Tsai for the geodesic sphere implementation.

Thanks to Garrett Serack for his help in creating the NuGet packages for DirectX Tool Kit.

Thanks to Roberto Sonnino for his help with the CMO, DGSL rendering, and the VS Starter Kit animation.

Thanks to Pete Lewis and Justin Saunders for the normal-mapped and PBR shaders implementation.

Comments
  • 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
  • Jittery mouse movement with higher mouse sensitivities

    Jittery mouse movement with higher mouse sensitivities

    So I've been using the toolkit for a while now for my personal education in graphics programming and one thing that's always annoyed me is how jittery the mouse movement is when you increase the sensitivity. I discovered this because I followed the tutorial for mouse input on the wiki but the mouse rotation was far too slow. Due to the low sensitivity, the issue is present but not nearly as noticeable. For example, here is how the mouse behaves currently when you multiply the inputs to increase mouse sensitivity. See how jittery it is? It's hard to describe but I am moving my mouse diagonally and it feels like it is either moving horizontally or vertically but never both at the same time.

    https://user-images.githubusercontent.com/6319937/210378140-9d349906-6e7c-4b54-8773-f7617fffd5ec.mp4

    Good news though! It took a while but I tracked down the cause to Mouse.cpp at 1304

                    if (!(raw.data.mouse.usFlags & MOUSE_MOVE_ABSOLUTE))
                    {
                        pImpl->mState.x = raw.data.mouse.lLastX;
                        pImpl->mState.y = raw.data.mouse.lLastY;
    
                        ResetEvent(pImpl->mRelativeRead.get());
                    }
    

    The problem is that the WM_INPUT message from windows can fire off multiple times in between frames of the application. That means that by the time your Tick() function runs, there have been multiple WM_INPUT messages received by the mouse singleton. It is extremely common for any individual WM_INPUT message to have either x or y be 0. That's why during diagonal mouse movement, it felt like only horizontal or vertical movement was being registered but never both.

    The Cause

    The issue is caused by the fact that we are assigning the delta to mState.x and mState.y instead of accumulating it. That means we are basically throwing away all inputs that windows throws at us except for the one it happens to receive before the application is ticked.

    The solution

                        pImpl->mState.x = raw.data.mouse.lLastX;
                        pImpl->mState.y = raw.data.mouse.lLastY;
    

    becomes

                        pImpl->mState.x += raw.data.mouse.lLastX;
                        pImpl->mState.y += raw.data.mouse.lLastY;
    

    I would've done this as a pull request but this creates some issues due to how the class is designed and I didn't feel comfortable making deep changes to the API. The issue this creates is that the mState.x and mState.y must be cleared at the end of the application frame. It probably isn't the best idea to force any user to call some OnEndFrame() function because that will place an undue burden on any existing applications. However, the existing implementation requires that during relative mouse movement, GetState() should only be called once. I propose that when GetState() is called, we pass the state by value rather than by reference and then clear the internal state.

    Here is what it looks like when the WM_INPUT message are accumulated and then cleared at the end of the application frame.

    https://user-images.githubusercontent.com/6319937/210389857-287dfb0c-a084-4e00-97c5-d04371a6d9bb.mp4

    bug input 
    opened by jkinz3 1
  • D3DXLoadSurfaceFromSurface-style helper using WIC

    D3DXLoadSurfaceFromSurface-style helper using WIC

    The full implementation of the old 'load surface from surface' requires DirectXTex, but a subset of pixel format conversions can be implemented using WIC.

    HRESULT WINAPI
        D3DXLoadSurfaceFromSurface(
            LPDIRECT3DSURFACE9        pDestSurface,
            CONST PALETTEENTRY*       pDestPalette,
            CONST RECT*               pDestRect,
            LPDIRECT3DSURFACE9        pSrcSurface,
            CONST PALETTEENTRY*       pSrcPalette,
            CONST RECT*               pSrcRect,
            DWORD                     Filter,
            D3DCOLOR                  ColorKey);
    
    HRESULT WINAPI
        D3DXLoadVolumeFromVolume(
            LPDIRECT3DVOLUME9         pDestVolume,
            CONST PALETTEENTRY*       pDestPalette,
            CONST D3DBOX*             pDestBox,
            LPDIRECT3DVOLUME9         pSrcVolume,
            CONST PALETTEENTRY*       pSrcPalette,
            CONST D3DBOX*             pSrcBox,
            DWORD                     Filter,
            D3DCOLOR                  ColorKey);
    
    HRESULT WINAPI
        D3DX11LoadTextureFromTexture(
    	ID3D11DeviceContext       *pContext,
            ID3D11Resource            *pSrcTexture,
            D3DX11_TEXTURE_LOAD_INFO  *pLoadInfo,
            ID3D11Resource            *pDstTexture);
    
    utility 
    opened by walbourn 0
  • 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 4
  • 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
  • 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
Releases(dec2022)
Owner
Microsoft
Open source projects and samples from Microsoft
Microsoft
CSGO ESP, Web Radar and Grenade helper using kernel hook for km-um communication

kernel-csgo-esp-webradar Csgo ESP and Web Radar using kernel hook for km-um communication. Manual map your driver using kdmapper uses Nvidia overlay h

null 55 Jun 26, 2022
Modding (hacking) il2cpp games by classes, methods, fields names.

ByNameModding Modding (hacking) il2cpp games by classes, methods, fields names. Status: Ready to use Why did I do it 1. In order not to update the off

null 97 Jan 2, 2023
A video game I created for one of my CS classes.

Eclipse This is a video game I created for one of my CS classes. It game will run on Mac or Linux. Requirements This game requires that Mednafen be in

null 2 Oct 29, 2022
TotoroEngine is a toy 3D game engine using DirectX 12.

TotoroEngine TotoroEngine is a toy 3D game engine using DirectX 12. Prerequisites Only support Windows(Only test on Windows 10). If you have not insta

null 36 Dec 18, 2022
DxWrapper is a .dll file designed to wrap DirectX files to fix compatibility issues in older games

DxWrapper Introduction DxWrapper is a .dll file designed to wrap DirectX files to fix compatibility issues in older games. This project is primarily t

Elisha Riedlinger 783 Jan 1, 2023
The official distribution of olcPixelGameEngine, a tool used in javidx9's YouTube videos and projects

olcPixelGameEngine The official distribution of olcPixelGameEngine, a tool used in javidx9's YouTube videos and projects. You only need the one file -

Javidx9 3.4k Dec 31, 2022
Insomniac games cache simulation tool plugin for UE4

Insomniac Games CacheSim plugin for UE4 This plugin for Unreal Engine 4 lets you use the Insomniac Games Cache Simulation tool to detect cache misses

Toni Rebollo Berná 29 Aug 27, 2022
A procedural sprite animation tool made with the nCine

SpookyGhost A procedural sprite animation tool made with the nCine. You can read the manual online or you can access it by pressing F1 in the program.

SpookyGhost 219 Dec 11, 2022
Game tool for Umamasume

UmaCruise-U Game tool for Umamasume A customized version of UmaUmaCruise Get more information about UmaCruise-U over here(Simplified Chinese) Relative

Lee 49 Nov 12, 2022
Mobile Studio tool integration with C# scripting for the Unity game engine.

Mobile Studio Package This project is a Unity package for integrating the Mobile Studio tool suite into game development workflows. This version of th

Arm Software 76 Dec 7, 2022
C++ game engine inspired by quake. Modern rendering and quake mapping tool integration.

Nuake Feel free to join the discord server for updates: What is it Nuake is a game engine written from scratch by myself. It is not meant to be a end-

Antoine Pilote 25 Oct 17, 2022
A small tool with Windows Minesweeper game

Donkey Minesweeper A small tool with Windows Minesweeper game Background As a high school student learning Olympics Informatic. Sometimes we have to u

null 3 Nov 13, 2021
YYToolkit is a tool for creating mods and altering GameMaker games.

YYToolkit is a tool for creating mods and altering GameMaker games.

Archie 33 Dec 9, 2022
A tool to render half life's collision hulls

Overview This is a tool that computes and renders the collision hulls of GoldSrc maps (BSP version 30), such as Half-Life 1 and Opposing Force maps. T

Cristhian Grundmann 3 Mar 17, 2022
This tool allow you to create / load / edit models used for create a cinematic in game for World of Warcraft 3.3.5 version

CameraCinematic - Discord Introduction This tool allow you to create / load / edit models used for create a cinematic in game for World of Warcraft 3.

Intemporel 9 Mar 14, 2022
Polycode is a cross-platform framework for creative code.

Polycode is a cross-platform framework for creative code. You can use it as a C++ API or as a standalone scripting language to get easy and simple acc

Ivan Safrin 2.4k Jan 2, 2023
My 3D game engine source code.

Rogy-Engine Development My 3D game engine source code. (NOT THE FINAL VERSION) Features: PBR shading and reflection probes with parallax correction. S

AlaX 97 Dec 28, 2022
Full source code for WarriOrb, a Dark-Souls like action platformer - using Unreal Engine 4

WarriOrb source code WarriOrb is a hardcore action platformer where you play as a demon who is trapped in an unlikely body. The game mixes the difficu

Not Yet 247 Dec 30, 2022
Exploit allowing to load arbitrary code on the PSX using only a memory card (no game needed)

FreePSXBoot Exploit allowing to load arbitrary code on the PSX (i.e. PlayStation 1) using only a memory card (no game needed). In other words, it's a

null 399 Jan 2, 2023