- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 HLSL D3D11 中的 CBuffer 没有更新感到非常沮丧,初始值是在应用程序启动时设置的,但更新是不行的,使用了 UpdateSubResource,还尝试了 ID3D11DeviceContext::Map 和 ID3D11DeviceContext::UnMap。
注意:使用 D3D11_USAGE_DYNAMIC 和 D3D11_CPU_ACCESS_WRITE 设置 CBuffer。
我的 ID3D11Buffer(常量缓冲区)在查询大小时只返回 4 个字节....听起来像是问题的一部分
struct VS_CBUFFER_DATA
{
XMFLOAT4X4 world;
XMFLOAT4X4 view;
XMFLOAT4X4 projection;
VS_CBUFFER_DATA()
{
XMStoreFloat4x4(&world, DirectX::XMMatrixIdentity());
XMStoreFloat4x4(&view, DirectX::XMMatrixIdentity());
XMStoreFloat4x4(&projection, DirectX::XMMatrixIdentity());
}
};
D3D11_BUFFER_DESC cbufferDesc;
memset(&cbufferDesc, 0, sizeof(cbufferDesc));
cbufferDesc.BindFlags = D3D11_BIND_CONSTANT_BUFFER
cbufferDesc.Usage = D3D11_USAGE_DYNAMIC;
cbufferDesc.ByteWidth = sizeof(m_CBufferData);
cbufferDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
cbufferDesc.MiscFlags = 0;
cbufferDesc.StructureByteStride = 0;
D3D11_SUBRESOURCE_DATA subdata;
memset(&subdata, 0, sizeof(subdata));
subdata.pSysMem = &m_CBufferData;
if (FAILED(pRendererTemp->CreateBuffer(cbufferDesc
{
OutputDebugString("Failed to create CBuffer!")
goto failed;
}
void Cube::UpdateViewProjection(__in const Renderer* pRenderer, __in const XMFLOAT4X4 &view, __in const XMFLOAT4X4 &proj)
{
D3D11_MAPPED_SUBRESOURCE mappedSubResource;
memset(&mappedSubResource, 0, sizeof(mappedSubResource));
if (SUCCEEDED(pRenderer->GetDevContext()->Map(m_pCBuffer, 0, D3D11_MAP_WRITE_NO_OVERWRITE, 0, &mappedSubResource)))
{
Primitive::UpdateViewProjection(NULL, view, proj);
VS_CBUFFER_DATA* cbData = (VS_CBUFFER_DATA*)&mappedSubResource.pData;
memcpy(cbData, &m_CBufferData, sizeof(cbData));
pRenderer->GetDevContext()->Unmap(m_pCBuffer, 0);
SetBuffers(pRenderer);
}
}
// SHADER.vsh
cbuffer cbMatrixBuffer : register(b0)
{
float4x4 world;
float4x4 view;
float4x4 projection;
};
最佳答案
您的问题出在memcpy
中。这行在这里:
memcpy(cbData, &m_CBufferData, sizeof(cbData));
复制的字节数等于 VS_CBUFFER_DATA
指针的大小,在 32 位系统上为 4 个字节(在 x64 上为 8 个字节)。代码应为:
memcpy(cbData, &m_CBufferData, sizeof(VS_CBUFFER_DATA));
这将复制 48 个字节的数据,而不是 4/8(无论 sizeof(void*)
的计算结果是什么)。
一般来说,避免使用 sizeof
来查询数组的大小,尤其是在指针方面避免使用它(除非您有此需要)。
关于c++ - 恒定缓冲区 DirectX 11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27238214/
要求: 我们在数据库中有值 Chennai Baroda Bangalore New Delhi São Paulo, Lisboa San Jose 等... 所以我想将这些字符串转换成一个唯一的短
我需要通过 TCP 加密和发送数据(每条消息从几百字节到几百兆字节)以 block 从 Java 到 C++ 程序,并且需要发送的大小提前发送数据,以便收件人知道何时停止读取当前消息并处理它,然后等待
我不太知道如何问这个问题,因此我将其作为示例: 想象在一个应用程序中您有一个Country对象。此对象有两个属性:Name和'Bordering Countries'集合。稍后可能会添加更多属性,但这
我们正在尝试使用 IoT 中心、流分析和表存储来处理仪表板上的事件驱动图标(开/关/事件)。我无法让实际过程在 6 秒内完成。流分析的水印恒定为 5 秒。该网站声称即时处理。 https://azur
我正在尝试获取一个 JTabbedPane,其中所有选项卡(实际选项卡,而不是组件)具有相同的宽度(最宽标签所需的最小宽度或恒定宽度)。 我试图覆盖 BasicTabbedPaneUI.getTabB
你好安卓开发者, 我正在使用 OpenGLES 1.0 在 Eclipse 中为 Android 开发一个简单的游戏。我正在使用 Samsung Galaxy S2 Android(2.3) 作为开发
我正在尝试使用 ColorMatrix 为整个图像设置一个恒定的色调值。我的目标是使整个图像看起来颜色相同,而不会失去任何区域的亮度。我找到了一种使用 ColorMatrix 来移动图像的色调值的方法
我最近将我的 Postgres 数据库从 Windows 迁移到 CentOS 6.7。在 Windows 上,数据库从不使用太多 CPU,但在 Linux 上,我看到它使用恒定的 ~30% CPU(
你好,我正在用 SDL2 开发一款很棒的游戏,我添加了一个 FPS 调节器以使其在每台机器上都能流畅运行,但后来我创建了一个示例程序来输出 fps(不是调节,只是输出以查看电流的功率机器运行 ) 我在
我在 IntelliJ IDEA 13.0 中开发了一个应用程序,但是当我在我的设备上运行该应用程序时,它会不断等待调试器(如果我在 Debug模式下运行,调试器连接时没问题)但是如果远离计算机,我无
我想在 stat_密度2 图中绘制多个组,其中 alpha 值与每组中的观察计数相关。然而,由 stat_密度2d 形成的水平似乎已标准化为每组中的观察数量。例如, temp <- rbind(mov
我是一名优秀的程序员,十分优秀!