标签: directx

D3D12 CreateHeap对齐,MSDN使用1024还是1000来定义KB

我正在尝试在 DirectX12 中使用CreateHeapand 。PlacedResources然而,对于 CreateHeap 来说,它需要一个D3D12_HEAP_DESC“应用程序应该传递SizeInBytes(的字段D3D12_HEAP_DESC)值,该值是有效对齐的倍数”的地方。然后他们去显示一个对齐D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT #defined as 64KB.,其中说 64KB 是对齐。

Microsoft DirectX12 是否使用 65536 字节作为 64KB 或 64000 字节的定义(因此基本上 1024 或 1000 字节是 Microsoft 的 KB 定义)?我不想浪费任何字节,而且我不知道在哪里可以找到微软这些类型单位的定义。正如维基百科显示1024 KB作为千字节的传统单位,因此微软标准是否是最新的也是一个问题。

directx msdn units-of-measurement visual-c++ directx-12

2
推荐指数
1
解决办法
143
查看次数

使程序基于计时器而不是帧速率依赖?

我有一个游戏引擎作为课程的一部分工作.目前,它的渲染依赖于帧速率,一个要求是转向基于计时器的依赖.我不知道如何确定它依赖于帧速率的位置.我不知道该找什么.我意识到我需要以某种方式合并一个计时器(GetTickCount?)来实现这一目标,但我不确定更新频率的频率.

我不打算交代码,可能只是一些有用的指导方针?

c++ directx

1
推荐指数
1
解决办法
1805
查看次数

错误C2440:'初始化':无法从'const wchar_t [9]'转换为'LPCSTR'

当我将以下内容添加到我的代码中时.

// Define the input layout
D3D10_INPUT_ELEMENT_DESC layout[] =
{
    { L"POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D10_INPUT_PER_VERTEX_DATA, 0 },  
};
UINT numElements = sizeof(layout)/sizeof(layout[0]);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

1>c:\users\numerical25\desktop\intro todirectx\msdntutorials\tutorial0\tutorial\tutorial\main.cpp(43) : error C2440: 'initializing' : cannot convert from 'const wchar_t [9]' to 'LPCSTR'
Run Code Online (Sandbox Code Playgroud)

错误直接指向该行代码.如果我删除代码,一切都正确编译.

c c++ directx

1
推荐指数
1
解决办法
7563
查看次数

C++语法问题

什么是| 意思?

m_pD3DDevice->SetFVF(D3DFVF_XYZ | D3DFVF_DIFFUSE);
Run Code Online (Sandbox Code Playgroud)

c++ directx

1
推荐指数
2
解决办法
278
查看次数

带有D3DX9的C++ - 内存大小以10 MB /秒的速度增长 - 为什么?

我正在研究3D引擎作为学校项目.我已经安装了虚拟泄漏检测器来摆脱内存泄漏(并且它工作,因为我不再获得任何这些转储).最近,我不小心让我的应用程序运行了5分钟...而我的电脑变得很慢.我通过注释掉行等来跟踪这个问题,但是我无法找到为什么在关闭应用程序之前C++不会释放我已清除的内存.

问题:"内部"内存泄漏,看起来C++只是在应用程序关闭后才删除内容

代码: 我的渲染代码(在pastebin Yz79Ck0b)

注意:我知道我不应该每次创建一个新的Mesh,但这不应该导致这个问题,对吧?我的IDE是Visual Studio 2008,我正在使用WIN32项目.当我取出纹理和模型时,我有0字节的内存增长.

c++ directx 3d

1
推荐指数
1
解决办法
337
查看次数

RenderTargetView到ShaderResourceView

我来自XNA,在那里我可以轻松创建一个rendertarget并将其用作简单的"Texture2D".我创建了一个ID3D11RenderTargetView对象和一个ID3D11ShaderResourceView对象.我将我的精灵绘制到渲染目标,然后将其用作ShaderResourceView将其发送到着色器.

我尝试查询rendertarget的界面,如:

ID3D11ShaderResourceView *resource= NULL;
renderTargetobject->QueryInterface<ID3D11ShaderResourceView >(&resource);
Run Code Online (Sandbox Code Playgroud)

上面的代码没有为"资源"对象生成任何可用的值,我想每帧发送到我的着色器(我试图做一个简单的反射).

directx resources shader directx-11 rendertarget

1
推荐指数
1
解决办法
2783
查看次数

在Direct2D应用程序中处理HRESULT

在Kenny Kerr的msdn杂志关于成像和Direct2D的文章中,他经常使用HR()宏.

在他的Windows Imaging Component文章中 - http://msdn.microsoft.com/en-gb/magazine/cc500647.aspx

他写 -

最后,WIC API使用HRESULT来描述错误.本文中的示例使用HR宏来清楚地标识方法返回需要检查的HRESULT的位置.您可以使用自己的错误处理策略替换它 - 无论是抛出异常还是自己返回HRESULT.

HR(decoder.CoCreateInstance(CLSID_WICTiffDecoder));
Run Code Online (Sandbox Code Playgroud)

然而肯尼没有表现出他的定义HR().我是一名C++初学者,我正在尝试发现并理解代码的细节.我想知道他的实现HR()是什么,以便我可以考虑如何最好地处理HRESULT我的程序.我已经搜索了一个定义,但似乎没有这些特定文章的源代码.

在了解macros我的同时,我发现了这些最近提出使用inline函数而不是宏的文档-

http://msdn.microsoft.com/en-us/library/vstudio/ttsbh614.aspx

http://msdn.microsoft.com/en-us/library/vstudio/z8y1yy88.aspx

谁能告诉我Kenny如何定义他的HR()宏?它实际上做了什么?

我的Direct2D程序应如何处理HRESULT?正确使用HRESULTs以使程序可靠且有弹性的方法是什么?

c++ directx hresult direct2d

1
推荐指数
1
解决办法
682
查看次数

在针对Win8.1 + Metro时使用SharpDX保存Texture2D?

我正在尝试将用户生成的Texture2D保存到磁盘,但是在定位DirectX11.1/Win8.1/Metro时看起来无法实现此标准的标准方法.没有ToStream/FromStream,也没有用于将纹理写入磁盘的DX11方法.

任何想法或建议?

c# directx directx-11 sharpdx windows-8.1

1
推荐指数
1
解决办法
1790
查看次数

使用GeForce 960M在笔记本电脑上初始化D3D12调试接口失败

当我尝试使用标志DXGI_CREATE_FACTORY_DEBUG调用D3D12GetDebugInterface或CreateDXGIFactory2时,我的笔记本电脑上的呼叫失败,但我的桌面上没有.其他调用在笔记本电脑上正常工作,我可以渲染东西 - 我无法初始化调试层.台式机有一个老式的GeForce 650 Ti,笔记本电脑是戴尔XPS15笔记本电脑(最新款),配备GeForce GTX 960M.两者都有最新的驱动程序(361.43).什么想法可能会出错?

我首先在NVIDIA devtalk论坛上发布,但是交叉发布到stackoverflow,因为官方的NVIDIA论坛似乎已经死了.

windows directx graphics direct3d direct3d12

1
推荐指数
1
解决办法
876
查看次数

Directx是否将cUDA库用于nvidia显卡?

就像标题所说的那样,directx是否会以任何方式使用引擎盖下的nvidia卡的CUDA库/扩展?

基本上,引导下的directx库实际上是通过CUDA库调用CUDA内核吗?

directx cuda nvidia libraries

1
推荐指数
1
解决办法
1312
查看次数