Difference between revisions of "Game Window Cursor Clipping"

From Valve Developer Community
Jump to: navigation, search
Line 37: Line 37:
#include "tier0/memdbgon.h"
#include "tier0/memdbgon.h"
{{Note|Note that if you copy the header to a subfolder, you gotta specify that in your '''#include'''}}

Revision as of 13:46, 6 January 2021


This implementation allows you to clip the cursor to the game window such as in DOOM and DOOM Eternal (id Tech 6 - 7), also brings some fixes to various bugs on VGUI.


  • Knowledge of C++
  • Knowledge of Source Engine
  • Source SDK Base 2013 - Currently tested on Source SDK Base 2013 Multiplayer.

Getting the Implementation/Code

First of all, you'll need the following files from the following GitHub repository:

Which you will copy to src/game/client/. You can also create a subfolder if you wish to, and copy these files there.


Now head over to cdll_client_int.cpp' and include

#include "CCursorClipManagement.h"

Anywhere before

// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"
Note.png Note: Note that if you copy the header to a subfolder, you gotta specify that in your #include

In the same cpp, find CHLClient::PostInit() and add this to the end:


Lastly, find void OnRenderEnd() and add this to the end:



You're all set! Compile your client project and check if it works.


If you start the game/mod with one of the following parameters:

  • -tools
  • -dev
  • -developer
  • -nocursorclipping

Or if you're compiling into a different platform, else than WIN32, the cursor clipping will be disabled and won't work by default. This behavior can be changed by modifying CCursorClipManagement::Think().

You can also add a ConVar to enable or disable this dynamically in-game, all you'll need to do is adding one more check on CCursorClipManagement::Think().