最近研究 D3D,搜了一个教材跟着学:http://www.rastertek.com/dx11s2tut04.html
用 x64 的配置运行,完美,过了几天需要用 x86 测试,结果一运行,程序崩溃……
赶紧排查问题,x64 的 Debug、Release 都是可以的,而 x86 则是 Debug 可以,Release 才会崩。
开发环境是 VS2015,编译时曾经遇到一些错误和警告,是 UMU 自己消灭掉了,最后有一类警告应该是关键:
warning C4316: 'SystemClass': object allocated on the heap may not be aligned 16
原因是 XMMATRIX 需要 16 字节对齐,但代码的作者把它塞在几个类里,然后去 new 这些类了……
尝试把这些类从 heap 改为 stack,问题解决!
八哥太多,不能轻易放任警告!
来源:oschina
链接:https://my.oschina.net/u/725292/blog/1553339