Navigation Menu

Skip to content

Commit

Permalink
WinRT: made the Direct3D 11.x 'Debug Layer' be enable-able in any app…
Browse files Browse the repository at this point in the history
… via a hint

To enable the Debug Layer, set the hint, SDL_HINT_RENDER_DIRECT3D11_DEBUG to '1'.

The Debug Layer will be turned off by default, both in Release and Debug builds (of SDL).
  • Loading branch information
DavidLudwig committed Oct 26, 2013
1 parent 6004b76 commit 62c781e
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 5 deletions.
14 changes: 14 additions & 0 deletions include/SDL_hints.h
Expand Up @@ -117,6 +117,20 @@ extern "C" {
*/
#define SDL_HINT_RENDER_VSYNC "SDL_RENDER_VSYNC"

/**
* \brief A variable controlling whether to enable Direct3D 11+'s Debug Layer.
*
* This variable does not have any effect on the Direct3D 9 based renderer,
* which is used in Win32-based (aka Windows Desktop) apps.
*
* This variable can be set to the following values:
* "0" - Disable Debug Layer use
* "1" - Enable Debug Lyaer use
*
* By default, SDL does not use Direct3D Debug Layer.
*/
#define SDL_HINT_RENDER_DIRECT3D11_DEBUG "SDL_HINT_RENDER_DIRECT3D11_DEBUG"

/**
* \brief A variable controlling whether the X11 VidMode extension should be used.
*
Expand Down
13 changes: 8 additions & 5 deletions src/render/direct3d11/SDL_render_d3d11.cpp
Expand Up @@ -35,7 +35,7 @@

extern "C" {
#include "../../core/windows/SDL_windows.h"
//#include "SDL_hints.h"
#include "SDL_hints.h"
//#include "SDL_loadso.h"
#include "SDL_system.h"
#include "SDL_syswm.h"
Expand Down Expand Up @@ -326,10 +326,13 @@ D3D11_CreateDeviceResources(SDL_Renderer * renderer)
// than the API default. It is required for compatibility with Direct2D.
UINT creationFlags = D3D11_CREATE_DEVICE_BGRA_SUPPORT;

#if defined(_DEBUG)
// If the project is in a debug build, enable debugging via SDK Layers with this flag.
creationFlags |= D3D11_CREATE_DEVICE_DEBUG;
#endif
// Make sure Direct3D's debugging feature gets used, if the app requests it.
const char *hint = SDL_GetHint(SDL_HINT_RENDER_DIRECT3D11_DEBUG);
if (hint) {
if (*hint == '1') {
creationFlags |= D3D11_CREATE_DEVICE_DEBUG;
}
}

// This array defines the set of DirectX hardware feature levels this app will support.
// Note the ordering should be preserved.
Expand Down

0 comments on commit 62c781e

Please sign in to comment.