directxtk Issue Tracker Rss Feedhttps://directxtk.codeplex.com/workitem/list/basicdirectxtk Issue Tracker Rss DescriptionCreated Feature: SimpleMath needs billboard matrix functions [1135]http://directxtk.codeplex.com/workitem/1135SimpleMath is modeled after XNA Game Studio math, but currently lacks two functions<br /><br />Matrix::[CreateBillBoard](http://msdn.microsoft.com/en-us/library/Microsoft.Xna.Framework.Matrix.CreateBillboard.aspx)<br /><br />Matrix::[CreateConstrainedBillboard](http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.matrix.createconstrainedbillboard.aspx)<br />walbournMon, 07 Apr 2014 23:24:43 GMTCreated Feature: SimpleMath needs billboard matrix functions [1135] 20140407112443PCreated Feature: Add support for signed-distance field fonts to SpriteFont [1123]http://directxtk.codeplex.com/workitem/1123Chris Green. 2007. "Improved Alpha-Tested Magnification for Vector Textures and Special Effects." SIGGRAPH Course on Advanced Real-Time Rendering in 3D Graphics and Games.<br />walbournTue, 04 Mar 2014 18:31:14 GMTCreated Feature: Add support for signed-distance field fonts to SpriteFont [1123] 20140304063114PClosed Issue: Inside out shapes [1108]http://directxtk.codeplex.com/workitem/1108I've been playing with your toolkit I've noticed that the CreateDodecahedron and CreateIcosahedron functions do not produce correct shapes. I believe I have a fix for the Dodecahedron in GeometricPrimitive line 1334:<br />```<br /> indices.push_back( base );<br /> indices.push_back( base + 1 );<br /> indices.push_back( base + 2 );<br /><br /> indices.push_back( base );<br /> indices.push_back( base + 2 );<br /> indices.push_back( base + 3 );<br /><br /> indices.push_back( base );<br /> indices.push_back( base + 3 );<br /> indices.push_back( base + 4 );<br />```<br /><br />Should be:<br />```<br />		indices.push_back(base + 2);<br />		indices.push_back(base + 1);<br />		indices.push_back(base);<br /><br />		indices.push_back(base + 3);<br />		indices.push_back(base + 2);<br />		indices.push_back(base);<br /> <br />		indices.push_back(base + 4);<br />		indices.push_back(base + 3);<br />		indices.push_back(base);<br />```<br /><br />And for the Icosahedron line (1438) same file:<br />```<br /> indices.push_back( base );<br /> indices.push_back( base + 1 );<br /> indices.push_back( base + 2 );<br />```<br /><br />Should be:<br />```<br />		indices.push_back(base + 2);<br />		indices.push_back(base + 1);<br />		indices.push_back(base);<br />```<br /> <br />Thanks<br /><br />Gareth<br />Comments: Resolved with changeset 34419: DirectXTK: handedness fix for tetrahedron, octahedron, dodecahedron, icosahedron <br />- minor code review fix in platformhelpers.hwalbournFri, 21 Feb 2014 01:32:45 GMTClosed Issue: Inside out shapes [1108] 20140221013245AEdited Issue: Inside out shapes [1108]http://directxtk.codeplex.com/workitem/1108I've been playing with your toolkit I've noticed that the CreateDodecahedron and CreateIcosahedron functions do not produce correct shapes. I believe I have a fix for the Dodecahedron in GeometricPrimitive line 1334:<br />```<br /> indices.push_back( base );<br /> indices.push_back( base + 1 );<br /> indices.push_back( base + 2 );<br /><br /> indices.push_back( base );<br /> indices.push_back( base + 2 );<br /> indices.push_back( base + 3 );<br /><br /> indices.push_back( base );<br /> indices.push_back( base + 3 );<br /> indices.push_back( base + 4 );<br />```<br /><br />Should be:<br />```<br />		indices.push_back(base + 2);<br />		indices.push_back(base + 1);<br />		indices.push_back(base);<br /><br />		indices.push_back(base + 3);<br />		indices.push_back(base + 2);<br />		indices.push_back(base);<br /> <br />		indices.push_back(base + 4);<br />		indices.push_back(base + 3);<br />		indices.push_back(base);<br />```<br /><br />And for the Icosahedron line (1438) same file:<br />```<br /> indices.push_back( base );<br /> indices.push_back( base + 1 );<br /> indices.push_back( base + 2 );<br />```<br /><br />Should be:<br />```<br />		indices.push_back(base + 2);<br />		indices.push_back(base + 1);<br />		indices.push_back(base);<br />```<br /> <br />Thanks<br /><br />Gareth<br />Comments: ** Comment from web user: walbourn ** <p>I think these 4 shapes are backwards...</p><p>* Tetrahedron<br>* Octahedron<br>* Dodecahedron<br>* Icosahedron<br></p>walbournFri, 21 Feb 2014 01:12:52 GMTEdited Issue: Inside out shapes [1108] 20140221011252AReopened Unassigned: Inside out shapes [1108]http://directxtk.codeplex.com/workitem/1108I've been playing with your toolkit I've noticed that the CreateDodecahedron and CreateIcosahedron functions do not produce correct shapes. I believe I have a fix for the Dodecahedron in GeometricPrimitive line 1334:<br />```<br /> indices.push_back( base );<br /> indices.push_back( base + 1 );<br /> indices.push_back( base + 2 );<br /><br /> indices.push_back( base );<br /> indices.push_back( base + 2 );<br /> indices.push_back( base + 3 );<br /><br /> indices.push_back( base );<br /> indices.push_back( base + 3 );<br /> indices.push_back( base + 4 );<br />```<br /><br />Should be:<br />```<br />		indices.push_back(base + 2);<br />		indices.push_back(base + 1);<br />		indices.push_back(base);<br /><br />		indices.push_back(base + 3);<br />		indices.push_back(base + 2);<br />		indices.push_back(base);<br /> <br />		indices.push_back(base + 4);<br />		indices.push_back(base + 3);<br />		indices.push_back(base);<br />```<br /><br />And for the Icosahedron line (1438) same file:<br />```<br /> indices.push_back( base );<br /> indices.push_back( base + 1 );<br /> indices.push_back( base + 2 );<br />```<br /><br />Should be:<br />```<br />		indices.push_back(base + 2);<br />		indices.push_back(base + 1);<br />		indices.push_back(base);<br />```<br /> <br />Thanks<br /><br />Gareth<br />walbournFri, 21 Feb 2014 01:10:03 GMTReopened Unassigned: Inside out shapes [1108] 20140221011003ACommented Feature: Limited support for texture format conversion [993]http://directxtk.codeplex.com/workitem/993DirectXTK is intended to be light-weight and fast for runtime use. DirectXTex provides general texture processing support including full format conversion support.<br /><br />DirectXTK currently has no runtime conversion support except when loading a WIC file. There are cases where some simple conversions would be very helpful, and going to DirectXTex might be overkill.<br /><br />This would be a simple D3DX11LoadTextureFromTexture style of function that uses WIC to do the conversions, given the limitations of the WIC pixel format to DXGI format mappings.<br />Comments: ** Comment from web user: walbourn ** <p>Note that this function would be impacted by a number of known issues with WIC that are worked around in DirectXTex by implementing custom filters:</p><p>* WIC assumes all UNORM formats are sRGB and all _FLOAT formats are linear and applies a color space transform when doing such conversions. <br>* Resizing operations with high bit-depth and XR formats are limited to Fant filtering, as other modes.<br>* The function will need to use a work-around to support cases where the alpha channel is not actually transparency data since WIC does all operations with premultiplied alpha</p>walbournTue, 18 Feb 2014 19:07:02 GMTCommented Feature: Limited support for texture format conversion [993] 20140218070702PCommented Unassigned: Inside out shapes [1108]http://directxtk.codeplex.com/workitem/1108I've been playing with your toolkit I've noticed that the CreateDodecahedron and CreateIcosahedron functions do not produce correct shapes. I believe I have a fix for the Dodecahedron in GeometricPrimitive line 1334:<br />```<br /> indices.push_back( base );<br /> indices.push_back( base + 1 );<br /> indices.push_back( base + 2 );<br /><br /> indices.push_back( base );<br /> indices.push_back( base + 2 );<br /> indices.push_back( base + 3 );<br /><br /> indices.push_back( base );<br /> indices.push_back( base + 3 );<br /> indices.push_back( base + 4 );<br />```<br /><br />Should be:<br />```<br />		indices.push_back(base + 2);<br />		indices.push_back(base + 1);<br />		indices.push_back(base);<br /><br />		indices.push_back(base + 3);<br />		indices.push_back(base + 2);<br />		indices.push_back(base);<br /> <br />		indices.push_back(base + 4);<br />		indices.push_back(base + 3);<br />		indices.push_back(base);<br />```<br /><br />And for the Icosahedron line (1438) same file:<br />```<br /> indices.push_back( base );<br /> indices.push_back( base + 1 );<br /> indices.push_back( base + 2 );<br />```<br /><br />Should be:<br />```<br />		indices.push_back(base + 2);<br />		indices.push_back(base + 1);<br />		indices.push_back(base);<br />```<br /> <br />Thanks<br /><br />Gareth<br />Comments: ** Comment from web user: walbourn ** <p>Of course, it would also appear 'inside out' if you were using right-handed view coordinates, but where explicitly passing 'false' as the 'rhcoords' parameter.</p><p>See the [docs](https://directxtk.codeplex.com/wikipage?title=GeometricPrimitive) on this class as well.</p>walbournTue, 11 Feb 2014 19:02:34 GMTCommented Unassigned: Inside out shapes [1108] 20140211070234PClosed Unassigned: Inside out shapes [1108]http://directxtk.codeplex.com/workitem/1108I've been playing with your toolkit I've noticed that the CreateDodecahedron and CreateIcosahedron functions do not produce correct shapes. I believe I have a fix for the Dodecahedron in GeometricPrimitive line 1334:<br />```<br /> indices.push_back( base );<br /> indices.push_back( base + 1 );<br /> indices.push_back( base + 2 );<br /><br /> indices.push_back( base );<br /> indices.push_back( base + 2 );<br /> indices.push_back( base + 3 );<br /><br /> indices.push_back( base );<br /> indices.push_back( base + 3 );<br /> indices.push_back( base + 4 );<br />```<br /><br />Should be:<br />```<br />		indices.push_back(base + 2);<br />		indices.push_back(base + 1);<br />		indices.push_back(base);<br /><br />		indices.push_back(base + 3);<br />		indices.push_back(base + 2);<br />		indices.push_back(base);<br /> <br />		indices.push_back(base + 4);<br />		indices.push_back(base + 3);<br />		indices.push_back(base);<br />```<br /><br />And for the Icosahedron line (1438) same file:<br />```<br /> indices.push_back( base );<br /> indices.push_back( base + 1 );<br /> indices.push_back( base + 2 );<br />```<br /><br />Should be:<br />```<br />		indices.push_back(base + 2);<br />		indices.push_back(base + 1);<br />		indices.push_back(base);<br />```<br /> <br />Thanks<br /><br />Gareth<br />Comments: This is the difference between left-handed and right-handed coordinates. If the bool rhcoords parameter (which defaults to true) is set to false, then all the windings are flipped internally.<br /><br />If they are appearing 'inside out' then you are using left-handed view coordinates, but are passing 'true' as the rhcoords parameter to the GeometricPrimitive:Create* methods.walbournTue, 11 Feb 2014 19:00:25 GMTClosed Unassigned: Inside out shapes [1108] 20140211070025PCreated Unassigned: Inside out shapes [1108]http://directxtk.codeplex.com/workitem/1108I've been playing with your toolkit I've noticed that the CreateDodecahedron and CreateIcosahedron functions do not produce correct shapes. I believe I have a fix for the Dodecahedron in GeometricPrimitive line 1334:<br />```<br /> indices.push_back( base );<br /> indices.push_back( base + 1 );<br /> indices.push_back( base + 2 );<br /><br /> indices.push_back( base );<br /> indices.push_back( base + 2 );<br /> indices.push_back( base + 3 );<br /><br /> indices.push_back( base );<br /> indices.push_back( base + 3 );<br /> indices.push_back( base + 4 );<br />```<br /><br />Should be:<br />```<br />		indices.push_back(base + 2);<br />		indices.push_back(base + 1);<br />		indices.push_back(base);<br /><br />		indices.push_back(base + 3);<br />		indices.push_back(base + 2);<br />		indices.push_back(base);<br /> <br />		indices.push_back(base + 4);<br />		indices.push_back(base + 3);<br />		indices.push_back(base);<br />```<br /><br />And for the Icosahedron line (1438) same file:<br />```<br /> indices.push_back( base );<br /> indices.push_back( base + 1 );<br /> indices.push_back( base + 2 );<br />```<br /><br />Should be:<br />```<br />		indices.push_back(base + 2);<br />		indices.push_back(base + 1);<br />		indices.push_back(base);<br />```<br /> <br />Thanks<br /><br />Gareth<br />GarethRichardsSun, 09 Feb 2014 23:48:17 GMTCreated Unassigned: Inside out shapes [1108] 20140209114817PCommented Feature: Voice reuse for one-shots [1067]http://directxtk.codeplex.com/workitem/1067DirectXTK for Audio currently allocates a new XAudio2 voice every time a one-shot is played, and destroys it later. This works, but is a potentially expensive operation.<br /><br />For PCM, ADPCM, and XMA2 voice reuse is fairly straight-forward making use of the IXaudio2 SetSourceSampleRate.<br /><br />xWMA is more difficult to reuse, so I'm likely to skip supporting it.<br />Comments: ** Comment from web user: walbourn ** <p>There are known issues with xWMA and SetSourceSampleRate with XAudio 2.7 and XAudio on Xbox One. xWMA is not supported on other platforms. Therefore, 'voice reuse' is not implemented for xWMA.</p>walbournWed, 22 Jan 2014 22:04:36 GMTCommented Feature: Voice reuse for one-shots [1067] 20140122100436PClosed Issue: Error building Desktop 2012 [889]http://directxtk.codeplex.com/workitem/889Hi, <br /><br />when I try to build the toolkit (VS 2012, Win 7), the file wincodec.h throws an error: <br /><br />"D2D1_PIXEL_FORMAT" is undefined<br /><br />Can anyone help?<br /><br />Cheers<br /><br />James<br />Comments: Resolved with changeset 33374: Removed d2d1.h workaround as this was caused by a case of incorrect mixing of DXSDK and Windows 8.x SDKwalbournWed, 15 Jan 2014 21:18:19 GMTClosed Issue: Error building Desktop 2012 [889] 20140115091819PCommented Issue: Error building Desktop 2012 [889]http://directxtk.codeplex.com/workitem/889Hi, <br /><br />when I try to build the toolkit (VS 2012, Win 7), the file wincodec.h throws an error: <br /><br />"D2D1_PIXEL_FORMAT" is undefined<br /><br />Can anyone help?<br /><br />Cheers<br /><br />James<br />Comments: ** Comment from web user: walbourn ** <p>Workaround is not required as this was a build-configuration problem.</p>walbournWed, 15 Jan 2014 21:18:03 GMTCommented Issue: Error building Desktop 2012 [889] 20140115091803PReopened Issue: Error building Desktop 2012 [889]http://directxtk.codeplex.com/workitem/889Hi, <br /><br />when I try to build the toolkit (VS 2012, Win 7), the file wincodec.h throws an error: <br /><br />"D2D1_PIXEL_FORMAT" is undefined<br /><br />Can anyone help?<br /><br />Cheers<br /><br />James<br />walbournWed, 15 Jan 2014 21:17:47 GMTReopened Issue: Error building Desktop 2012 [889] 20140115091747PCommented Issue: Error building Desktop 2012 [889]http://directxtk.codeplex.com/workitem/889Hi, <br /><br />when I try to build the toolkit (VS 2012, Win 7), the file wincodec.h throws an error: <br /><br />"D2D1_PIXEL_FORMAT" is undefined<br /><br />Can anyone help?<br /><br />Cheers<br /><br />James<br />Comments: ** Comment from web user: walbourn ** <p>One more note: You likely do not need to use the legacy DirectX SDK at all if you use the latest Effects 11 framework available on [CodePlex](http://go.microsoft.com/fwlink/p/?LinkId=271568) (that versions of Effects 11 has no dependencies at all on the legacy Direct X SDK).</p>walbournWed, 15 Jan 2014 07:39:29 GMTCommented Issue: Error building Desktop 2012 [889] 20140115073929ACommented Issue: Error building Desktop 2012 [889]http://directxtk.codeplex.com/workitem/889Hi, <br /><br />when I try to build the toolkit (VS 2012, Win 7), the file wincodec.h throws an error: <br /><br />"D2D1_PIXEL_FORMAT" is undefined<br /><br />Can anyone help?<br /><br />Cheers<br /><br />James<br />Comments: ** Comment from web user: walbourn ** <p>__Was the reference to the DXSDK in your vcxproj settings or somewhere else?__</p><p>When using the Windows 8.x SDK in combination with the DirectX SDK, you must list the Windows SDK headers first per [MSDN](http://msdn.microsoft.com/en-us/library/windows/desktop/ee663275.aspx). This is the reverse of the long-standing guidance to put the DirectX SDK first since the Windows 8.x SDK is now more up-to-date than the DirectX SDK.</p><p>```<br>$(IncludePath);$(DXSDK_DIR)Include<br>$(LibraryPath);$(DXSDK_DIR)Lib\x86<br>$(LibraryPath);$(DXSDK_DIR)Lib\x64<br>```</p>walbournWed, 15 Jan 2014 07:38:14 GMTCommented Issue: Error building Desktop 2012 [889] 20140115073814ACommented Issue: Error building Desktop 2012 [889]http://directxtk.codeplex.com/workitem/889Hi, <br /><br />when I try to build the toolkit (VS 2012, Win 7), the file wincodec.h throws an error: <br /><br />"D2D1_PIXEL_FORMAT" is undefined<br /><br />Can anyone help?<br /><br />Cheers<br /><br />James<br />Comments: ** Comment from web user: jacobsgriffith ** <p>Okay I had to add the windows SDK before the legacy DirectX SDK in the include paths for the wincodec.h to find the pixel_format type.</p><p>$(WindowsSDK_IncludePath);C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include;</p><p></p><p></p>jacobsgriffithWed, 15 Jan 2014 06:09:28 GMTCommented Issue: Error building Desktop 2012 [889] 20140115060928ACommented Issue: Error building Desktop 2012 [889]http://directxtk.codeplex.com/workitem/889Hi, <br /><br />when I try to build the toolkit (VS 2012, Win 7), the file wincodec.h throws an error: <br /><br />"D2D1_PIXEL_FORMAT" is undefined<br /><br />Can anyone help?<br /><br />Cheers<br /><br />James<br />Comments: ** Comment from web user: jacobsgriffith ** <p>I'm having this same issue on vs 2013.</p><p>For me I speculate the issue is caused by adding my CEGUI libraries which have been compiled with DirectX SDK June 2010 and the Effects 11 framework.</p><p>I'll post back if I find a solution</p>jacobsgriffithWed, 15 Jan 2014 06:01:53 GMTCommented Issue: Error building Desktop 2012 [889] 20140115060153AClosed Feature: DirectXTK for Audio should support a volume limiter on the master voice [1071]http://directxtk.codeplex.com/workitem/1071To avoid distortion and clipping artifacts, use of a mastering volume limiter on the mastering voice is recommended, particularly when using 3D positional audio. This would be creating an instance of FXMasteringLimiter attached to the master voice.<br />Comments: Resolved with changeset 32752: DirectXTK for Audio: optional mastering volume limiter<br />- fixed a few missing newlines in DebugTrace statementswalbournTue, 31 Dec 2013 20:34:41 GMTClosed Feature: DirectXTK for Audio should support a volume limiter on the master voice [1071] 20131231083441PClosed Feature: Voice reuse for one-shots [1067]http://directxtk.codeplex.com/workitem/1067DirectXTK for Audio currently allocates a new XAudio2 voice every time a one-shot is played, and destroys it later. This works, but is a potentially expensive operation.<br /><br />For PCM, ADPCM, and XMA2 voice reuse is fairly straight-forward making use of the IXaudio2 SetSourceSampleRate.<br /><br />xWMA is more difficult to reuse, so I'm likely to skip supporting it.<br />Comments: Resolved with changeset 32743: DirectXTK for Audio: voice reuse for oneshots (PCM, ADPCM, XMA2)<br />- Added flag SoundEffectInstance_NoSetPitch for voices<br />- Added optional voice limit enforcementwalbournMon, 30 Dec 2013 23:21:46 GMTClosed Feature: Voice reuse for one-shots [1067] 20131230112146PEdited Feature: DirectXTK for Audio should support a volume limiter on the master voice [1071]http://directxtk.codeplex.com/workitem/1071To avoid distortion and clipping artifacts, use of a mastering volume limiter on the mastering voice is recommended, particularly when using 3D positional audio. This would be creating an instance of FXMasteringLimiter attached to the master voice.<br />walbournSun, 29 Dec 2013 08:01:37 GMTEdited Feature: DirectXTK for Audio should support a volume limiter on the master voice [1071] 20131229080137A