当我们用DX11画一个东西时要传入VS 过程是这样子的
CompileShaderFromFile('Tutorial04.fx', 'VS', 'vs_4_0', pVSBlob) ;
g_pd3dDevice.CreateVertexShader(pVSBlob.GetBufferPointer(), pVSBlob.GetBufferSize(), nil, g_pVertexShader);
g_pImmediateContext.VSSetShader(g_pVertexShader, nil, 0);
如果我们HOOK进游戏的DrawIndexed函数想在里面得到游戏的VS对象
g_Real_ImmContext.VSGetShader(game_pVertexShader,......)
现在得到VS对象game_pVertexShader了但如何得到他的数据
也就是传入的pVSBlob.GetBufferPointer(), pVSBlob.GetBufferSize(),
如何通过game_pVertexShader得到pVSBlob.GetBufferPointer(), pVSBlob.GetBufferSize(),
在DX9下可以可以很容易通过VS对象ppShader得到shader数据_Code,_CodeLen
Device.GetVertexShader(ppShader);
ppShader.GetFunction(nil,_CodeLen);
GetMem(_Code,_CodeLen);
ppShader.GetFunction(_Code,_CodeLen);
有大牛知道在DX11下如何得的吗?谢谢!