gpt4 book ai didi

c++ - 引用如何发送D3D Device(DirectX/C++编程)

转载 作者:搜寻专家 更新时间:2023-10-31 00:45:42 28 4
gpt4 key购买 nike

H1。我试图将我的代码分离到不同的 .cpp.h 文件中,以使它们更容易查找、查看和理解。这是我现在要做的:我有一个 Meshes.cpp 至极是我的主要 .cpp 源文件。在 Render 函数 ( Render() ) 中,我必须调用一个名为 SetupMatrices 的函数:

这是我的“d3dGeneral.cpp”文件:

// Begining of the "d3dGeneral.cpp"
#include "DXUT.h"

VOID SetupMatrices( LPDIRECT3DDEVICE9 *PDev )
{
D3DXMATRIXA16 matProj;
D3DXMatrixPerspectiveFovLH( &matProj,
D3DX_PI / 4,
1.777777777777778f,
1.0f,
1000.0f );
PDev->SetTransform( D3DTS_PROJECTION, &matProj ); // The problem is here......
}
//Enging of the "d3dGeneral.cpp"

这是我的“Meshes.cpp”文件:(这是主要的 cpp 文件)

// Begining of the "Meshes.cpp" file.
#include "DXUT.h"
#include "XMesh.h"
#include "Camera.h"
#include "d3dGeneral.cpp"

...
...
//Usualy SetupMatrices is found here.
...
...

VOID Render()
{
SetupMatrices( &g_pd3dDevice );
...
...
...
}
INT WINAPI wWinMain( HINSTANCE hInst, HINSTANCE, LPWSTR, int nCmdShow)
{
...
...
...
Render();
...
...
...
}
// End of the "Meshes.cpp" file

名为DXUT.h 的头文件包含其他常规包含。所以,当我这样做时,我得到一个错误:

错误 2 错误 C2227:'->SetTransform' 的左侧必须指向类/结构/union/泛型类型 c:\users\catt\desktop\deneme\d3dgeneral.cpp 74 MeshClass

我知道那是什么意思,但我不知道如何避免它。看起来我的指针有问题。我也试过像这样使用 PDev:

*PDev->SetTransform( D3DTS_PROJECTION, &matProj );  // ???

我知道我不必在该函数中使用带引用的 d3dDevice,但我还有一个函数 Cleanup。我想我需要为它提供引用,因为它必须清理真实设备本身而不是它的拷贝 8)。我希望我正确地解释了自己。如果你能帮助我,那就太棒了。感谢您抽出时间...

最佳答案

你试过这个吗:

(*PDev)->SetTransform( D3DTS_PROJECTION, &matProj ); 

关于c++ - 引用如何发送D3D Device(DirectX/C++编程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6321803/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com