本文整理汇总了C++中GraphicsDevice::GetD3DDevice方法的典型用法代码示例。如果您正苦于以下问题:C++ GraphicsDevice::GetD3DDevice方法的具体用法?C++ GraphicsDevice::GetD3DDevice怎么用?C++ GraphicsDevice::GetD3DDevice使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GraphicsDevice
的用法示例。
在下文中一共展示了GraphicsDevice::GetD3DDevice方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Create
GameAsset* ShaderEffect::Create(StreamReader& reader, GameAsset* existingInstance)
{
GraphicsDevice* graphicsDevice = static_cast<GraphicsDevice*>(reader.ReadModule(GraphicsDevice::ClassID));
reader.ReadInt(); // NOT USED
const int codeLength = reader.ReadInt();
byte* code = BBStackAlloc(byte, codeLength);
reader.Read(code, codeLength);
ID3DXEffect* handle = nullptr;
ID3DXBuffer* errorBuffer = nullptr;
HRESULT result = D3DXCreateEffect(graphicsDevice->GetD3DDevice(),
code, codeLength,
NULL, NULL, D3DXSHADER_OPTIMIZATION_LEVEL3, 0, &handle, &errorBuffer);
if (result != D3D_OK)
{
Log::Error("ShaderEffect", Int::ToString(result).CStr());
if (errorBuffer)
Log::Error("ShaderEffect", reinterpret_cast<const char*>(errorBuffer->GetBufferPointer()));
}
if (existingInstance == nullptr)
existingInstance = new ShaderEffect(graphicsDevice);
static_cast<ShaderEffect*>(existingInstance)->Setup(handle);
BBStackFree(code);
return existingInstance;
}