Quantcast
Channel: directxtk Wiki Rss Feed
Viewing all 874 articles
Browse latest View live

Updated Wiki: Version History

$
0
0
NEWS: This project is now hosted on GitHubhttps://github.com/Microsoft/DirectXTK. This site is being maintained for now, but please move to using GitHub.

August 18, 2015
  • Xbox One platform updates

July 29, 2015
  • Added CreateBox method to GeometricPrimitive
  • Added 'invertn' optional parameter to CreateSphere
  • Updates for Keyboard, Mouse class
  • Fixed bug when loading older SDKMESH models
  • Updated for VS 2015 and Windows 10 SDK RTM
  • Retired VS 2010 and Windows Store 8.0 projects1

July 1, 2015
  • Added Keyboard, Mouse class
  • Support for loading pre-lit models with SDKMESH
  • GamePad implemented using Windows.Gaming.Input for Windows 10
  • DirectXTK for Audio updates for xWMA support with XAudio 2.9
  • Added FindGlyph and GetSpriteSheet methods to SpriteFont

March 27, 2015
  • Added projects for Windows apps Technical Preview
  • GamePad temporarily uses 'null' device for universal Windows application platform

February 25, 2015 (NuGet version 2015.2.25.1)
  • DirectXTK for Audio updates
    • breaking change pitch now defined as -1 to 1 with 0 as the default
    • One-shot Play method with volume, pitch, and pan
    • GetMasterVolume/SetMasterVolume method for AudioEngine
    • Fix for compact wavebank validation
    • Improved voice cleanup and shutdown
  • Minor code cleanup and C++11 =default/=delete usage

January 26, 2015 (NuGet version 2015.1.26.1)
  • GamePad class: emulate XInputEnable behavior for XInput 9.1.0
  • DirectXTK for Audio fix for Stop followed by Play doing a proper restart
  • DirectXTK for Audio fix when using XAudio 2.7 on a system with no audio device
  • Updates for Xbox One platform support
  • Minor code cleanup and C99 printf string conformance

November 24, 2014 (NuGet version 2014.11.24.1, 2014.11.24.2)
  • SimpleMath fix for Matrix operator !=
  • DirectXTK for Audio workaround for XAudio 2.7 on Windows 7 problem
  • Updates for Windows phone 8.1 platform support
  • Updates for Visual Studio 2015 Technical Preview
  • Minor code cleanup

October 28, 2014
  • Model support for loading from VBO files
  • Model render now sets samplers on slots 0,1 by default for dual-texture effects
  • Updates for Xbox One platform support
  • Minor code cleanup

September 5, 2014
  • GamePad class: gamepad controller helper using XInput on Windows, IGamepad for Xbox One
  • SimpleMath updates; Matrix billboard methods; breaking change: Matrix::Identity() -> Matrix::Identity
  • SpriteBatch new optional SetViewport method
  • SpriteFont fix for white-space character rendering optimization
  • DDSTextureLoader fix for auto-gen mipmaps for volume textures
  • Explicit calling-convention annotation for public headers
  • Updates for Xbox One platform support
  • Minor code and project cleanup

July 15, 2014 (NuGet version 2014.7.15.1)
  • DirectXTK for Audio and XWBTool fixes
  • Updates to Xbox One platform support

April 3, 2014
  • Windows phone 8.1 platform support

February 24, 2014
  • DirectXHelper: new utility header with MapGuard and public version of SetDebugObjectName template
  • DDSTextureLoader: Optional support for auto-gen mipmaps
  • DDSTextureLoader/ScreenGrab: support for Direct3D 11 video formats including legacy "YUY2" DDS files
  • GeometricPrimtive: Handedness fix for tetrahedron, octahedron, dodecahedron, and icosahedron
  • SpriteBatch::SetRotation(DXGI_MODE_ROTATION_UNSPECIFIED) to disable viewport matrix
  • XboxDDSTextureLoader: optional forceSRGB parameter

January 24, 2014
  • DirectXTK for Audio updated with voice management and optional mastering volume limiter
  • Added orientation rotation support to SpriteBatch
  • Fixed a resource leak with GetDefaultTexture() used by some Effects
  • Code cleanup (removed DXGI_1_2_FORMATS control define; d2d1.h workaround not needed; ScopedObject typedef removed)

December 24, 2013
  • DirectXTK for Audio
  • Xbox One platform support
  • MakeSpriteFont tool updated with more progress feedback when capturing large fonts
  • Minor updates for .SDKMESH Model loader
  • Fixed bug in .CMO Model loader when handling multiple textures
  • Improved debugging output

October 28, 2013
  • Updated for Visual Studio 2013 and Windows 8.1 SDK RTM
  • Added DGSLEffect, DGSLEffectFactory, VertexPositionNormalTangentColorTexture, and VertexPositionNormalTangentColorTextureSkinning
  • Model loading and effect factories support loading skinned models
  • MakeSpriteFont now has a smooth vs. sharp antialiasing option: /sharp
  • Model loading from CMOs now handles UV transforms for texture coordinates
  • A number of small fixes for EffectFactory
  • Minor code and project cleanup
  • Added NO_D3D11_DEBUG_NAME compilation define to control population of Direct3D debug layer names for debug builds

July 1, 2013
  • VS 2013 Preview projects added and updates for DirectXMath 3.05 vectorcall
  • Added use of sRGB WIC metadata for JPEG, PNG, and TIFF
  • SaveToWIC functions updated with new optional setCustomProps parameter and error check with optional targetFormat

May 30, 2013
  • Added more GeometricPrimitives: Cone, Tetrahedron, Octahedron, Dodecahedron, Icosahedron
  • Updated to support loading new metadata from DDS files (if present)
  • Fixed bug with loading of WIC 32bpp RGBE format images
  • Fixed bug when skipping mipmaps in a 1D or 2D array texture DDS file

February 22, 2013 (NuGet version 2.22.13.23)
  • Added SimpleMath header
  • Fixed bug that prevented properly overriding EffectFactory::CreateTexture
  • Fixed forceSRGB logic in DDSTextureLoader and WICTextureLoader
  • Break circular reference chains when using SpriteBatch with a setCustomShaders lambda
  • Updated projects with /fp:fast for all configs, /arch:SSE2 for Win32 configs
  • Sensibly named .pdb output files
  • Added WIC_USE_FACTORY_PROXY build option (uses WindowsCodecs.dll entrypoint rather than CoCreateInstance)

January 25, 2013
  • GeometricPrimitive support for left-handed coordinates and drawing with custom effects
  • Model, ModelMesh, and ModelMeshPart added with loading of rigid non-animating models from .CMO and .SDKMESH files
  • EffectFactory helper class added

December 11, 2012
  • Ex versions of DDSTextureLoader and WICTextureLoader
  • Removed use of ATL's CComPtr in favor of WRL's ComPtr for all platforms to support VS Express editions
  • Updated VS 2010 project for official 'property sheet' integration for Windows 8.0 SDK
  • Minor fix to CommonStates for Feature Level 9.1
  • Tweaked AlphaTestEffect.cpp to work around ARM NEON compiler codegen bug
  • Added dxguid.lib as a default library for Debug builds to resolve GUID link issues

November 15, 2012
  • Added support for WIC2 when available on Windows 8 and Windows 7 with KB 2670838
  • Cleaned up warning level 4 warnings

October 30, 2012
  • Added project files for Windows phone 8

October 12, 2012
  • Added PrimitiveBatch for drawing user primitives
  • Debug object names for all D3D resources (for PIX and debug layer leak reporting)

October 2, 2012
  • Added ScreenGrab module
  • Added CreateGeoSphere for drawing a geodesic sphere
  • Put DDSTextureLoader and WICTextureLoader into the DirectX C++ namespace

September 7, 2012
  • Renamed project files for better naming consistency
  • Updated WICTextureLoader for Windows 8 96bpp floating-point formats
  • Win32 desktop projects updated to use Windows Vista (0x0600) rather than Windows 7 (0x0601) APIs
  • Tweaked SpriteBatch.cpp to workaround ARM NEON compiler codegen bug

May 31, 2012
  • Updated Metro project for Visual Studio 2012 Release Candidate changes
  • Cleaned up x64 Debug configuration warnings and switched to use "_DEBUG" instead of "DEBUG"
  • Minor fix for DDSTextureLoader's retry fallback that can happen with 10level9 feature levels

May 2, 2012
  • Added SpriteFont implementation and the MakeSpriteFont utility

March 29, 2012
  • WICTextureLoader updated with Windows 8 WIC native pixel formats

March 6, 2012
  • Fix for too much temp memory used by WICTextureLoader
  • Add separate Visual Studio 11 projects for Desktop vs. Metro builds

March 5, 2012
  • Bug fix for SpriteBatch with batches > 2048

February 24, 2012
  • Original release

Updated Wiki: The basic game loop

$
0
0
NEWS: This project is now hosted on GitHubhttps://github.com/Microsoft/DirectXTK. This site is being maintained for now, but please move to using GitHub https://github.com/Microsoft/DirectXTK/wiki/The-basic-game-loop particularly as the CodePlex copy of the tutorials are a little dated.

The first lesson in the Getting Started guide is to create a basic game loop.

Setup

Our starting point is to use the Direct3D Win32 Game project template. Install Direct3DWin32Game.vsix on your development system, and then start (or restart) Visual Studio 2013.

https://github.com/walbourn/directx-vs-templates/raw/master/VSIX/Direct3DWin32Game.vsix

Creating a new project

  1. From the drop-down menu, select File and then New -> Project...
  2. Select "Visual C++" on the left-hand tree-view.
  3. Select "Direct3D Win32 Game".
  4. Fill in the "Name" and "Location" fields as desired.
  5. Optional: Uncheck "Create directory for solution" to keep the directory structure as bit flatter.
  6. Select "OK".
CreateNewProject.png

The newly created project contains the following files:

OpenGameCpp.png
  • Precompiled header files
    • pch.h
    • pch.cpp
  • Main application entry-point and classic Windows procedure function
    • Main.cpp
  • Timer helper class
    • StepTimer.h
  • Resources
    • directx.ico
    • resource.rc
    • settings.manifest
  • The Game class
    • Game.h
    • Game.cpp

Running the application

Visual Studio will default to the Win32 platform / Debug configuration which builds an x86 (32-bit) application with debugging enabled. The template contains both Debug and Release configurations for both Win32 and x64 (x64 native 64-bit) platforms.

Press F5 to build and run the application It displays the following window:

RunningProject.png

Troubleshooting: If the base template fails to start, there are a few possibilities. First, if your system doesn't have any Direct3D capable device of any feature level, it will fail. This is pretty unlikely on modern versions of Windows. Second if it runs fine in Release but fails in Debug, then you likely do not have the proper DirectX Debug Device installed for your operating system. For more see http://blogs.msdn.com/b/chuckw/archive/2012/11/30/direct3d-sdk-debug-layer-tricks.aspx

Tour of the code

For now, we'll focus on the content of Game.cpp (which is open by default).

When the application first starts, execution is passed to the Initialize method. The TODO here by default leaves the applications StepTimer in the 'variable length' mode. You uncomment the code if you want StepTimer in the 'fixed-step' mode. We'll explain this more once we get to Update.

// Initialize the Direct3D resources required to run.void Game::Initialize(HWND window)
{
    m_window = window;

    CreateDevice();

    CreateResources();

    // TODO: Change the timer settings if you want something other than the default// variable timestep mode.// e.g. for 60 FPS fixed timestep update logic, call:/*
    m_timer.SetFixedTimeStep(true);
    m_timer.SetTargetElapsedSeconds(1.0 / 60);
    */
}

One of the two functions called by Initialize is the CreateDevice function which sets up a Direct3D 11.0 (and optionally Direct3D 11.1) device using the maximum Direct3D Feature Level supported by the system which could range from 9.1 to 11.1. For Debug builds, it enables the Direct3D "Debug device" which provides additional validation and diagnostic errors (seen in the "Output" window in Visual C++ when showing output from "Debug"). The TODO here is for adding the creation of objects that depend on the m_d3dDevice or m_d3dContext, but do not care about the size of the rendering window.

// These are the resources that depend on the device.void Game::CreateDevice()
{
...

    // TODO: Initialize device dependent objects here (independent of window size)
}

The other function called by Initialize is the CreateResources function which sets up the swapchain (which defaults to a B8G8R8A8_UNORM format), depth buffer (which defaults to a 16-bit D16_FLOAT format for Feature Level 9.1 devices, and a 32-bit D32_FLOAT format otherwise), and rendering viewport. The TODO here is for adding the creation of objects that depend on the size of the rendering window. Note that this function could be creating these objects for the first time, it could be re-creating already existing objects due to a window-size change, or could be creating 'fresh' objects after a Direct3D device-removed or device-reset case.

// Allocate all memory resources that change on a window SizeChanged event.void Game::CreateResources()
{
...
    // TODO: Initialize windows-size dependent objects here
}

The Update method is intended to handle game-world state modification which is typically driven by time passing, simulation, and/or user-input. By default, Update is called once per 'frame' and can have an arbitrary delta-time. This is called a 'variable-step' mode.

If in the Initialize method above you uncomment the TODO code, then each Update will be for a fixed time-step (1/60th of a second), with Update called as many time in a single 'frame' as needed to keep it up-to-date. This is called a 'fixed-step' mode and potentially be more stable for many kinds of simulations.

// Updates the worldvoid Game::Update(DX::StepTimer const& timer)
{
    float elapsedTime = float(timer.GetElapsedSeconds());

    // TODO: Add your game logic here
    elapsedTime;
}

The Render function which should render a single 'frame' of the scene, which ends with a Present of the rendered frame.

// Draws the scenevoid Game::Render()
{
    // Don't try to render anything before the first Update.if (m_timer.GetFrameCount() == 0)
        return;

    Clear();

    // TODO: Add your rendering code here

    Present();
}

The Clear function defaults to a background color of the classic "Cornflower blue".

// Helper method to clear the backbuffersvoid Game::Clear()
{
    // Clear the views
    m_d3dContext->ClearRenderTargetView(m_renderTargetView.Get(),
        Colors::CornflowerBlue);
    m_d3dContext->ClearDepthStencilView(m_depthStencilView.Get(),
        D3D11_CLEAR_DEPTH, 1.0f, 0);
    m_d3dContext->OMSetRenderTargets(1, m_renderTargetView.GetAddressOf(),
        m_depthStencilView.Get());
}

Since we are using ComPtr, most cleanup is automatic when the Game class is destroyed. If Present encounters a device-removed or device-reset (most commonly the driver crashed or was updated), then the application needs to release all Direct3D objects and recreate the device, swapchain, and all Direct3D objects again. Therefore, the TODO in OnDeviceLost should be updated to release your application's Direct3D objects.

void Game::OnDeviceLost()
{
    // TODO: Add Direct3D resource cleanup here

...
}

Smart-pointer

We make use of the Microsoft::WRL::ComPtr smart-pointer for managing the lifetime of the Direct3D 11 COM objects, which is why we make use of ".Get()" in the code above. See ComPtr for more information.

Error handling

Many Direct3D functions return an HRESULT which is the standard for COM APIs. For robustness and easier debugging, it is important that you always check the result of every function that return an HRESULT. If you really can safely assume there is no error condition for a particular function, the function itself will return void instead of HRESULT.

The Win32 game template makes use of the helper function ThrowIfFailed in the DX C++ namespace. This is the same helper that is used by the Windows Store and Windows phone VS templates. This helper throws a C++ exception if the standard FAILED macro returns true for a given HRESULT.

DX::ThrowIfFailed(m_d3dDevice->CreateTexture2D(&depthStencilDesc, nullptr, &depthStencil));

Next lesson: Adding the DirectX Tool Kit

Further reading

http://blogs.msdn.com/b/chuckw/archive/2015/01/06/direct3d-win32-game-visual-studio-template.aspx

http://blogs.msdn.com/b/chuckw/archive/2014/02/05/anatomy-of-direct3d-11-create-device.aspx

http://blogs.msdn.com/b/chuckw/archive/2012/06/20/direct3d-feature-levels.aspx

http://blogs.msdn.com/b/chuckw/archive/2014/12/03/understanding-game-time-revisited.aspx

http://blogs.msdn.com/b/chuckw/archive/2012/11/30/direct3d-sdk-debug-layer-tricks.aspx

http://blogs.msdn.com/b/chuckw/archive/2013/09/10/manifest-madness.aspx

http://msdn.microsoft.com/en-us/library/windows/desktop/ee418798.aspx

Updated Wiki: Version History

$
0
0
NEWS: This project is now hosted on GitHubhttps://github.com/Microsoft/DirectXTK. This site is being maintained for now, but please move to using GitHub.

October 30, 2015
  • DirectXTK for Audio 3D updates
    • breaking change emitters/listeners now use RH coordinates by default
  • GeometricPrimitive support for custom geometry
  • SimpleMath Matrix class improvements
  • DDS support for legacy bumpmap formats (V8U8, Q8W8V8U8, V16U16)
  • Mouse fix for WinRT implementation with multiple buttons pressed
  • Wireframe CommonStates no longer does backface culling
  • Xbox One platform updates
  • Minor code cleanup

August 18, 2015
  • Xbox One platform updates

July 29, 2015
  • Added CreateBox method to GeometricPrimitive
  • Added 'invertn' optional parameter to CreateSphere
  • Updates for Keyboard, Mouse class
  • Fixed bug when loading older SDKMESH models
  • Updated for VS 2015 and Windows 10 SDK RTM
  • Retired VS 2010 and Windows Store 8.0 projects1

July 1, 2015
  • Added Keyboard, Mouse class
  • Support for loading pre-lit models with SDKMESH
  • GamePad implemented using Windows.Gaming.Input for Windows 10
  • DirectXTK for Audio updates for xWMA support with XAudio 2.9
  • Added FindGlyph and GetSpriteSheet methods to SpriteFont

March 27, 2015
  • Added projects for Windows apps Technical Preview
  • GamePad temporarily uses 'null' device for universal Windows application platform

February 25, 2015 (NuGet version 2015.2.25.1)
  • DirectXTK for Audio updates
    • breaking change pitch now defined as -1 to 1 with 0 as the default
    • One-shot Play method with volume, pitch, and pan
    • GetMasterVolume/SetMasterVolume method for AudioEngine
    • Fix for compact wavebank validation
    • Improved voice cleanup and shutdown
  • Minor code cleanup and C++11 =default/=delete usage

January 26, 2015 (NuGet version 2015.1.26.1)
  • GamePad class: emulate XInputEnable behavior for XInput 9.1.0
  • DirectXTK for Audio fix for Stop followed by Play doing a proper restart
  • DirectXTK for Audio fix when using XAudio 2.7 on a system with no audio device
  • Updates for Xbox One platform support
  • Minor code cleanup and C99 printf string conformance

November 24, 2014 (NuGet version 2014.11.24.1, 2014.11.24.2)
  • SimpleMath fix for Matrix operator !=
  • DirectXTK for Audio workaround for XAudio 2.7 on Windows 7 problem
  • Updates for Windows phone 8.1 platform support
  • Updates for Visual Studio 2015 Technical Preview
  • Minor code cleanup

October 28, 2014
  • Model support for loading from VBO files
  • Model render now sets samplers on slots 0,1 by default for dual-texture effects
  • Updates for Xbox One platform support
  • Minor code cleanup

September 5, 2014
  • GamePad class: gamepad controller helper using XInput on Windows, IGamepad for Xbox One
  • SimpleMath updates; Matrix billboard methods; breaking change: Matrix::Identity() -> Matrix::Identity
  • SpriteBatch new optional SetViewport method
  • SpriteFont fix for white-space character rendering optimization
  • DDSTextureLoader fix for auto-gen mipmaps for volume textures
  • Explicit calling-convention annotation for public headers
  • Updates for Xbox One platform support
  • Minor code and project cleanup

July 15, 2014 (NuGet version 2014.7.15.1)
  • DirectXTK for Audio and XWBTool fixes
  • Updates to Xbox One platform support

April 3, 2014
  • Windows phone 8.1 platform support

February 24, 2014
  • DirectXHelper: new utility header with MapGuard and public version of SetDebugObjectName template
  • DDSTextureLoader: Optional support for auto-gen mipmaps
  • DDSTextureLoader/ScreenGrab: support for Direct3D 11 video formats including legacy "YUY2" DDS files
  • GeometricPrimtive: Handedness fix for tetrahedron, octahedron, dodecahedron, and icosahedron
  • SpriteBatch::SetRotation(DXGI_MODE_ROTATION_UNSPECIFIED) to disable viewport matrix
  • XboxDDSTextureLoader: optional forceSRGB parameter

January 24, 2014
  • DirectXTK for Audio updated with voice management and optional mastering volume limiter
  • Added orientation rotation support to SpriteBatch
  • Fixed a resource leak with GetDefaultTexture() used by some Effects
  • Code cleanup (removed DXGI_1_2_FORMATS control define; d2d1.h workaround not needed; ScopedObject typedef removed)

December 24, 2013
  • DirectXTK for Audio
  • Xbox One platform support
  • MakeSpriteFont tool updated with more progress feedback when capturing large fonts
  • Minor updates for .SDKMESH Model loader
  • Fixed bug in .CMO Model loader when handling multiple textures
  • Improved debugging output

October 28, 2013
  • Updated for Visual Studio 2013 and Windows 8.1 SDK RTM
  • Added DGSLEffect, DGSLEffectFactory, VertexPositionNormalTangentColorTexture, and VertexPositionNormalTangentColorTextureSkinning
  • Model loading and effect factories support loading skinned models
  • MakeSpriteFont now has a smooth vs. sharp antialiasing option: /sharp
  • Model loading from CMOs now handles UV transforms for texture coordinates
  • A number of small fixes for EffectFactory
  • Minor code and project cleanup
  • Added NO_D3D11_DEBUG_NAME compilation define to control population of Direct3D debug layer names for debug builds

July 1, 2013
  • VS 2013 Preview projects added and updates for DirectXMath 3.05 vectorcall
  • Added use of sRGB WIC metadata for JPEG, PNG, and TIFF
  • SaveToWIC functions updated with new optional setCustomProps parameter and error check with optional targetFormat

May 30, 2013
  • Added more GeometricPrimitives: Cone, Tetrahedron, Octahedron, Dodecahedron, Icosahedron
  • Updated to support loading new metadata from DDS files (if present)
  • Fixed bug with loading of WIC 32bpp RGBE format images
  • Fixed bug when skipping mipmaps in a 1D or 2D array texture DDS file

February 22, 2013 (NuGet version 2.22.13.23)
  • Added SimpleMath header
  • Fixed bug that prevented properly overriding EffectFactory::CreateTexture
  • Fixed forceSRGB logic in DDSTextureLoader and WICTextureLoader
  • Break circular reference chains when using SpriteBatch with a setCustomShaders lambda
  • Updated projects with /fp:fast for all configs, /arch:SSE2 for Win32 configs
  • Sensibly named .pdb output files
  • Added WIC_USE_FACTORY_PROXY build option (uses WindowsCodecs.dll entrypoint rather than CoCreateInstance)

January 25, 2013
  • GeometricPrimitive support for left-handed coordinates and drawing with custom effects
  • Model, ModelMesh, and ModelMeshPart added with loading of rigid non-animating models from .CMO and .SDKMESH files
  • EffectFactory helper class added

December 11, 2012
  • Ex versions of DDSTextureLoader and WICTextureLoader
  • Removed use of ATL's CComPtr in favor of WRL's ComPtr for all platforms to support VS Express editions
  • Updated VS 2010 project for official 'property sheet' integration for Windows 8.0 SDK
  • Minor fix to CommonStates for Feature Level 9.1
  • Tweaked AlphaTestEffect.cpp to work around ARM NEON compiler codegen bug
  • Added dxguid.lib as a default library for Debug builds to resolve GUID link issues

November 15, 2012
  • Added support for WIC2 when available on Windows 8 and Windows 7 with KB 2670838
  • Cleaned up warning level 4 warnings

October 30, 2012
  • Added project files for Windows phone 8

October 12, 2012
  • Added PrimitiveBatch for drawing user primitives
  • Debug object names for all D3D resources (for PIX and debug layer leak reporting)

October 2, 2012
  • Added ScreenGrab module
  • Added CreateGeoSphere for drawing a geodesic sphere
  • Put DDSTextureLoader and WICTextureLoader into the DirectX C++ namespace

September 7, 2012
  • Renamed project files for better naming consistency
  • Updated WICTextureLoader for Windows 8 96bpp floating-point formats
  • Win32 desktop projects updated to use Windows Vista (0x0600) rather than Windows 7 (0x0601) APIs
  • Tweaked SpriteBatch.cpp to workaround ARM NEON compiler codegen bug

May 31, 2012
  • Updated Metro project for Visual Studio 2012 Release Candidate changes
  • Cleaned up x64 Debug configuration warnings and switched to use "_DEBUG" instead of "DEBUG"
  • Minor fix for DDSTextureLoader's retry fallback that can happen with 10level9 feature levels

May 2, 2012
  • Added SpriteFont implementation and the MakeSpriteFont utility

March 29, 2012
  • WICTextureLoader updated with Windows 8 WIC native pixel formats

March 6, 2012
  • Fix for too much temp memory used by WICTextureLoader
  • Add separate Visual Studio 11 projects for Desktop vs. Metro builds

March 5, 2012
  • Bug fix for SpriteBatch with batches > 2048

February 24, 2012
  • Original release

Updated Wiki: Version History

$
0
0
NEWS: This project is now hosted on GitHubhttps://github.com/Microsoft/DirectXTK. This site is being maintained for now, but please move to using GitHub.

November 30, 2015
  • SimpleMath improvements including Viewport class
  • Fixed bug with Keyboard for OpenBracket and later VK codes
  • Fixed bug with Mouse that reset the scrollwheel on app activate
  • MakeSpriteFont updated with /FastPack and /FeatureLevel switches
  • Updated for VS 2015 Update 1 and Windows 10 SDK (10586)

October 30, 2015
  • DirectXTK for Audio 3D updates
    • breaking change emitters/listeners now use RH coordinates by default
  • GeometricPrimitive support for custom geometry
  • SimpleMath Matrix class improvements
  • DDS support for legacy bumpmap formats (V8U8, Q8W8V8U8, V16U16)
  • Mouse fix for WinRT implementation with multiple buttons pressed
  • Wireframe CommonStates no longer does backface culling
  • Xbox One platform updates
  • Minor code cleanup

August 18, 2015
  • Xbox One platform updates

July 29, 2015
  • Added CreateBox method to GeometricPrimitive
  • Added 'invertn' optional parameter to CreateSphere
  • Updates for Keyboard, Mouse class
  • Fixed bug when loading older SDKMESH models
  • Updated for VS 2015 and Windows 10 SDK RTM
  • Retired VS 2010 and Windows Store 8.0 projects1

July 1, 2015
  • Added Keyboard, Mouse class
  • Support for loading pre-lit models with SDKMESH
  • GamePad implemented using Windows.Gaming.Input for Windows 10
  • DirectXTK for Audio updates for xWMA support with XAudio 2.9
  • Added FindGlyph and GetSpriteSheet methods to SpriteFont

March 27, 2015
  • Added projects for Windows apps Technical Preview
  • GamePad temporarily uses 'null' device for universal Windows application platform

February 25, 2015 (NuGet version 2015.2.25.1)
  • DirectXTK for Audio updates
    • breaking change pitch now defined as -1 to 1 with 0 as the default
    • One-shot Play method with volume, pitch, and pan
    • GetMasterVolume/SetMasterVolume method for AudioEngine
    • Fix for compact wavebank validation
    • Improved voice cleanup and shutdown
  • Minor code cleanup and C++11 =default/=delete usage

January 26, 2015 (NuGet version 2015.1.26.1)
  • GamePad class: emulate XInputEnable behavior for XInput 9.1.0
  • DirectXTK for Audio fix for Stop followed by Play doing a proper restart
  • DirectXTK for Audio fix when using XAudio 2.7 on a system with no audio device
  • Updates for Xbox One platform support
  • Minor code cleanup and C99 printf string conformance

November 24, 2014 (NuGet version 2014.11.24.1, 2014.11.24.2)
  • SimpleMath fix for Matrix operator !=
  • DirectXTK for Audio workaround for XAudio 2.7 on Windows 7 problem
  • Updates for Windows phone 8.1 platform support
  • Updates for Visual Studio 2015 Technical Preview
  • Minor code cleanup

October 28, 2014
  • Model support for loading from VBO files
  • Model render now sets samplers on slots 0,1 by default for dual-texture effects
  • Updates for Xbox One platform support
  • Minor code cleanup

September 5, 2014
  • GamePad class: gamepad controller helper using XInput on Windows, IGamepad for Xbox One
  • SimpleMath updates; Matrix billboard methods; breaking change: Matrix::Identity() -> Matrix::Identity
  • SpriteBatch new optional SetViewport method
  • SpriteFont fix for white-space character rendering optimization
  • DDSTextureLoader fix for auto-gen mipmaps for volume textures
  • Explicit calling-convention annotation for public headers
  • Updates for Xbox One platform support
  • Minor code and project cleanup

July 15, 2014 (NuGet version 2014.7.15.1)
  • DirectXTK for Audio and XWBTool fixes
  • Updates to Xbox One platform support

April 3, 2014
  • Windows phone 8.1 platform support

February 24, 2014
  • DirectXHelper: new utility header with MapGuard and public version of SetDebugObjectName template
  • DDSTextureLoader: Optional support for auto-gen mipmaps
  • DDSTextureLoader/ScreenGrab: support for Direct3D 11 video formats including legacy "YUY2" DDS files
  • GeometricPrimtive: Handedness fix for tetrahedron, octahedron, dodecahedron, and icosahedron
  • SpriteBatch::SetRotation(DXGI_MODE_ROTATION_UNSPECIFIED) to disable viewport matrix
  • XboxDDSTextureLoader: optional forceSRGB parameter

January 24, 2014
  • DirectXTK for Audio updated with voice management and optional mastering volume limiter
  • Added orientation rotation support to SpriteBatch
  • Fixed a resource leak with GetDefaultTexture() used by some Effects
  • Code cleanup (removed DXGI_1_2_FORMATS control define; d2d1.h workaround not needed; ScopedObject typedef removed)

December 24, 2013
  • DirectXTK for Audio
  • Xbox One platform support
  • MakeSpriteFont tool updated with more progress feedback when capturing large fonts
  • Minor updates for .SDKMESH Model loader
  • Fixed bug in .CMO Model loader when handling multiple textures
  • Improved debugging output

October 28, 2013
  • Updated for Visual Studio 2013 and Windows 8.1 SDK RTM
  • Added DGSLEffect, DGSLEffectFactory, VertexPositionNormalTangentColorTexture, and VertexPositionNormalTangentColorTextureSkinning
  • Model loading and effect factories support loading skinned models
  • MakeSpriteFont now has a smooth vs. sharp antialiasing option: /sharp
  • Model loading from CMOs now handles UV transforms for texture coordinates
  • A number of small fixes for EffectFactory
  • Minor code and project cleanup
  • Added NO_D3D11_DEBUG_NAME compilation define to control population of Direct3D debug layer names for debug builds

July 1, 2013
  • VS 2013 Preview projects added and updates for DirectXMath 3.05 vectorcall
  • Added use of sRGB WIC metadata for JPEG, PNG, and TIFF
  • SaveToWIC functions updated with new optional setCustomProps parameter and error check with optional targetFormat

May 30, 2013
  • Added more GeometricPrimitives: Cone, Tetrahedron, Octahedron, Dodecahedron, Icosahedron
  • Updated to support loading new metadata from DDS files (if present)
  • Fixed bug with loading of WIC 32bpp RGBE format images
  • Fixed bug when skipping mipmaps in a 1D or 2D array texture DDS file

February 22, 2013 (NuGet version 2.22.13.23)
  • Added SimpleMath header
  • Fixed bug that prevented properly overriding EffectFactory::CreateTexture
  • Fixed forceSRGB logic in DDSTextureLoader and WICTextureLoader
  • Break circular reference chains when using SpriteBatch with a setCustomShaders lambda
  • Updated projects with /fp:fast for all configs, /arch:SSE2 for Win32 configs
  • Sensibly named .pdb output files
  • Added WIC_USE_FACTORY_PROXY build option (uses WindowsCodecs.dll entrypoint rather than CoCreateInstance)

January 25, 2013
  • GeometricPrimitive support for left-handed coordinates and drawing with custom effects
  • Model, ModelMesh, and ModelMeshPart added with loading of rigid non-animating models from .CMO and .SDKMESH files
  • EffectFactory helper class added

December 11, 2012
  • Ex versions of DDSTextureLoader and WICTextureLoader
  • Removed use of ATL's CComPtr in favor of WRL's ComPtr for all platforms to support VS Express editions
  • Updated VS 2010 project for official 'property sheet' integration for Windows 8.0 SDK
  • Minor fix to CommonStates for Feature Level 9.1
  • Tweaked AlphaTestEffect.cpp to work around ARM NEON compiler codegen bug
  • Added dxguid.lib as a default library for Debug builds to resolve GUID link issues

November 15, 2012
  • Added support for WIC2 when available on Windows 8 and Windows 7 with KB 2670838
  • Cleaned up warning level 4 warnings

October 30, 2012
  • Added project files for Windows phone 8

October 12, 2012
  • Added PrimitiveBatch for drawing user primitives
  • Debug object names for all D3D resources (for PIX and debug layer leak reporting)

October 2, 2012
  • Added ScreenGrab module
  • Added CreateGeoSphere for drawing a geodesic sphere
  • Put DDSTextureLoader and WICTextureLoader into the DirectX C++ namespace

September 7, 2012
  • Renamed project files for better naming consistency
  • Updated WICTextureLoader for Windows 8 96bpp floating-point formats
  • Win32 desktop projects updated to use Windows Vista (0x0600) rather than Windows 7 (0x0601) APIs
  • Tweaked SpriteBatch.cpp to workaround ARM NEON compiler codegen bug

May 31, 2012
  • Updated Metro project for Visual Studio 2012 Release Candidate changes
  • Cleaned up x64 Debug configuration warnings and switched to use "_DEBUG" instead of "DEBUG"
  • Minor fix for DDSTextureLoader's retry fallback that can happen with 10level9 feature levels

May 2, 2012
  • Added SpriteFont implementation and the MakeSpriteFont utility

March 29, 2012
  • WICTextureLoader updated with Windows 8 WIC native pixel formats

March 6, 2012
  • Fix for too much temp memory used by WICTextureLoader
  • Add separate Visual Studio 11 projects for Desktop vs. Metro builds

March 5, 2012
  • Bug fix for SpriteBatch with batches > 2048

February 24, 2012
  • Original release

Updated Wiki: Home

$
0
0
NEWS: This project is now hosted on GitHubhttps://github.com/Microsoft/DirectXTK. This site is being maintained for now, but please move to using GitHub. The documentation on the GitHub project wiki is more up-to-date and complete than the CodePlex version.

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

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

Supported platforms:
  • universal Windows apps for Windows 10
  • Windows Store apps for Windows 8.1 / RT 8.1
  • Windows Phone 8.x
  • Windows desktop
  • Windows 7
  • Windows Vista Service Pack 2 with KB 971644
  • Windows Server equivalents of the above
  • Xbox One

Features:

Contributions
The DirectXTK contributors list will remain closed to ensure high-quality and focused feature set, but we are very interested in any bug-fixes, optimizations, additional features, or other community feedback on this library. Please use the Issue Tracker and feel free to attach code to the issue as needed. Note that any code contributed or released for the DirectXTK project is subject to the MS-PL.

windows8logo.jpg
windowsphone8logo.jpg
xboxonelogo.png

Updated Wiki: Documentation

Updated Wiki: Documentation

Updated Wiki: Documentation


Updated Wiki: Home

$
0
0
NEWS: This project is now hosted on GitHubhttps://github.com/Microsoft/DirectXTK. Please move to using GitHub.

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

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

Supported platforms:
  • universal Windows apps for Windows 10
  • Windows Store apps for Windows 8.1 / RT 8.1
  • Windows Phone 8.x
  • Windows desktop
  • Windows 7
  • Windows Vista Service Pack 2 with KB 971644
  • Windows Server equivalents of the above
  • Xbox One

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

windows8logo.jpg
windowsphone8logo.jpg
xboxonelogo.png

Updated Wiki: Home

$
0
0
NEWS: This project is now hosted on GitHubhttps://github.com/Microsoft/DirectXTK. Please move to using GitHub.

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

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

Supported platforms:
  • universal Windows apps for Windows 10
  • Windows Store apps for Windows 8.1 / RT 8.1
  • Windows Phone 8.x
  • Windows desktop
  • Windows 7
  • Windows Vista Service Pack 2 with KB 971644
  • Windows Server equivalents of the above
  • Xbox One

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

windows8logo.jpg
windowsphone8logo.jpg
xboxonelogo.png

Updated Wiki: Home

$
0
0
NEWS: This project is now hosted on GitHubhttps://github.com/Microsoft/DirectXTK. Please move to using GitHub.

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

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

Supported platforms:
  • Universal Windows Platform apps
  • Windows Store apps for Windows 8.1 / RT 8.1
  • Windows Phone 8.x
  • Windows desktop
  • Windows 7
  • Windows Vista Service Pack 2 with KB 971644
  • Windows Server equivalents of the above
  • Xbox One

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

windows8logo.jpg
windowsphone8logo.jpg
xboxonelogo.png

Updated Wiki: Home

$
0
0
NEWS: This project is now hosted on GitHubhttps://github.com/Microsoft/DirectXTK. Please move to using GitHub.

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

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

Supported platforms:
  • Universal Windows Platform apps
  • Windows Store apps for Windows 8.1 / RT 8.1
  • Windows Phone 8.1
  • Windows desktop
  • Windows 7
  • Windows Vista Service Pack 2 with KB 971644
  • Windows Server equivalents of the above
  • Xbox One

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

windows8logo.jpg
windowsphone8logo.jpg
xboxonelogo.png

Updated Wiki: Home

$
0
0
NEWS: This project is now hosted on GitHubhttps://github.com/Microsoft/DirectXTK. DirectX Tool Kit for DirectX 12 is also on GitHub https://github.com/Microsoft/DirectXTK12. Please move to using GitHub.

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

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

Supported platforms:
  • Universal Windows Platform apps
  • Windows Store apps for Windows 8.1 / RT 8.1
  • Windows Phone 8.1
  • Windows desktop
  • Windows 7
  • Windows Vista Service Pack 2 with KB 971644
  • Windows Server equivalents of the above
  • Xbox One

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

windows8logo.jpg
windowsphone8logo.jpg
xboxonelogo.png

Updated Wiki: Documentation

Viewing all 874 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>