这几天看了本directx的书,一步步学。刚看到初始化directx的一系列对象。下面的代码有问题,请高手指点。
窗口模式设为全屏则运行正常,改成窗口就会出现错误。
Dim Dx8 As DirectX8
Dim D3D8 As Direct3D8
Dim D3DDev As Direct3DDevice8
Dim d3DCp As D3DCAPS8
Dim D3DPp As D3DPRESENT_PARAMETERS
Private Sub main()
Dim vp As Long
Set Dx8 = New DirectX8
Set D3D8 = Dx8.Direct3DCreate()
D3D8.GetDeviceCaps D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, d3DCp
If d3DCp.DevCaps And D3DDEVCAPS_HWTRANSFORMANDLIGHT Then
vp = D3DCREATE_HARDWARE_VERTEXPROCESSING
Else
vp = D3DCREATE_SOFTWARE_VERTEXPROCESSING
End If
With D3DPp
.BackBufferWidth = 1366
.BackBufferHeight = 768
.BackBufferFormat = D3DFMT_A8R8G8B8
.BackBufferCount = 1
.MultiSampleType = D3DMULTISAMPLE_NONE
.SwapEffect = D3DSWAPEFFECT_DISCARD
.hDeviceWindow = Form2.hWnd
.Windowed = 0 '全屏的话下面的创建语句能成功
‘改成1窗口就出现自动化错误。
’是窗口模式不能用1表示,还是要用别的方法?
.EnableAutoDepthStencil = 0
.AutoDepthStencilFormat = D3DFMT_D24S8
.flags = 0
.FullScreen_RefreshRateInHz = 0
.FullScreen_PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE
End With
Set D3DDev = D3D8.CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, Form2.hWnd, vp, D3DPp)
End '刚看到创建设备对象,释放的代码还不会写,直接结束了
End Sub
关于VB中directx3D,新手求教
答案:2 悬赏:60 手机版
解决时间 2021-02-14 15:35
- 提问者网友:wodetian
- 2021-02-13 18:30
最佳答案
- 五星知识达人网友:轻熟杀无赦
- 2021-02-13 19:18
忘记了,似乎要在调用CreateDevice是带入窗体模式为普通窗口的参数,或者是D3DPp.Flags填写窗体模式的参数,看msnd去吧,肯定有写
全部回答
- 1楼网友:傲气稳了全场
- 2021-02-13 19:26
搜一下:关于VB中directx3D,新手求教
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯