摘要: 默认情况下,一个线程的栈要预留1M的内存空间 而一个进程中可用的内存空间只有2G,所以理论上一个进程中最多可以开2048个线程 但是内存当然不可能完全拿来作线程的栈,所以实际数目要比这个值要小。 你也可以通过连接时修改默认栈大小,将其改的比较小,这样就可以多开一些线程。 如将默认栈的大小改成512K,这样理论上最多就可以开4096个线程。 即使物理内存再大,一个进程中可以起的线程总要受到2GB这个内存空间的限制。 比方说你的机器装了64GB物理内存,但每个进程的内存空间还是4GB,其中用户态可用的还是2GB。 如果是同一台机器内的话,能起多少线程也是受内存限制的。每个线程对象都要站用非页面内存 阅读全文
posted @ 2011-12-15 19:38 oayx 阅读(28342) 评论(0) 推荐(0) 编辑
摘要: 我的观点基于以下几点:若显卡不支持非2的次幂纹理,则:1:若使用IDirect3DDevice9::CreateTexture创建非2的次幂尺寸图像将失败2:若使用D3DXCreateTexture创建非2的次幂图像将被扩充成2的次幂3:若使用D3DXCreateTextureFromFileInMemoryEx创建非2的次幂图像将被扩充成2的次幂(就算用了D3DX_DEFAULT_NONPOW2也没用)只有一个函数比较特殊:D3DXCreateTextureFromFileEx,用它创建图像可以完美支持非2的次幂图像,但实际游戏中很少用这个函数,故总体上,创建一个非2的次幂纹理,还是显卡说了 阅读全文
posted @ 2011-12-15 09:55 oayx 阅读(2043) 评论(0) 推荐(0) 编辑
摘要: 一 今天碰到一个问题,UI有个界面模糊,其他界面正常,原因是:美术给的图片非2的N次方,而用D3DXCreateTextureFromFileEx创建纹理时,大小设置的是D3DX_DEFAULT,这样D3D默认会把问了创建为2的N次方,也就是会放大纹理。但是使用时又会按原始大小使用,相当于又把创建的纹理缩小,导致模糊的产生二 修改方式1 D3DXCreateTextureFromFileEx使用D3DX_DEFAULT_NONPOW2设置大小2 美术修改图片到2的N次方大小三 其他1 D3DX_DEFAULT_NONPOW2有些显卡可能不支持,需要检测设备能力2 D3DX_DEFAULT_NO 阅读全文
posted @ 2011-12-15 09:48 oayx 阅读(913) 评论(0) 推荐(0) 编辑