本文整理汇总了C++中GraphicsDevice::castD3D11方法的典型用法代码示例。如果您正苦于以下问题:C++ GraphicsDevice::castD3D11方法的具体用法?C++ GraphicsDevice::castD3D11怎么用?C++ GraphicsDevice::castD3D11使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GraphicsDevice
的用法示例。
在下文中一共展示了GraphicsDevice::castD3D11方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: reset
void D3D11RenderTarget::load(GraphicsDevice &g, const UINT width, const UINT height)
{
m_graphics = &g.castD3D11();
m_width = width;
m_height = height;
g.castD3D11().registerAsset(this);
reset();
}
示例2: init
void AssetRenderer::init(GraphicsDevice &g)
{
m_graphics = &g.castD3D11();
m_shaders.init(g);
m_shaders.registerShader("../../shaders/modelRendererColor.shader", "basicColor");
m_shaders.registerShader("../../shaders/modelRendererTexture.shader", "basicTexture");
m_constants.init(g);
m_sphere.load(g, ml::shapes::sphere(1.0f, vec3f::origin));
m_cylinder.load(g, ml::shapes::cylinder(0.01f, 1.0f, 2, 15, ml::vec4f(1.0f, 1.0f, 1.0f, 1.0f)));
m_box.load(g, ml::shapes::box(1.0f));
}
示例3: sizeof
void ml::D3D11TriMesh::initVB(GraphicsDevice &g)
{
if (m_triMesh.getVertices().size() == 0) return;
auto &device = g.castD3D11().getDevice();
D3D11_BUFFER_DESC bufferDesc;
ZeroMemory( &bufferDesc, sizeof(bufferDesc) );
bufferDesc.Usage = D3D11_USAGE_DEFAULT;
bufferDesc.ByteWidth = sizeof(TriMeshf::Vertex<float>) * (UINT)m_triMesh.getVertices().size();
bufferDesc.BindFlags = D3D11_BIND_VERTEX_BUFFER;
bufferDesc.CPUAccessFlags = 0;
D3D11_SUBRESOURCE_DATA data;
ZeroMemory( &data, sizeof(data) );
data.pSysMem = &m_triMesh.getVertices()[0];
D3D_VALIDATE(device.CreateBuffer( &bufferDesc, &data, &m_vertexBuffer ));
}
示例4:
void ml::D3D11GeometryShader::init(
GraphicsDevice& g,
const std::string& filename,
const std::string& entryPoint,
const std::string& shaderModel,
const std::vector<std::pair<std::string, std::string>>& shaderMacros)
{
m_graphics = &g.castD3D11();
releaseGPU();
SAFE_RELEASE(m_blob);
m_filename = filename;
//g.castD3D11().registerAsset(this);
m_blob = D3D11Utility::CompileShader(m_filename, entryPoint, shaderModel, shaderMacros);
MLIB_ASSERT_STR(m_blob != nullptr, "CompileShader failed");
createGPU();
}
示例5: MLIB_EXCEPTION
void ml::D3D11TriMesh::initVB(GraphicsDevice &g)
{
if (m_triMesh.getVertices().size() == 0) return;
auto &device = g.castD3D11().getDevice();
size_t byteSize = sizeof(TriMeshf::Vertex) * m_triMesh.getVertices().size();
if (byteSize > std::numeric_limits<UINT>::max()) {
throw MLIB_EXCEPTION("buffer size too big " + std::to_string(byteSize) + ", while max is " + std::to_string(std::numeric_limits<UINT>::max()));
}
D3D11_BUFFER_DESC bufferDesc;
ZeroMemory( &bufferDesc, sizeof(bufferDesc) );
bufferDesc.Usage = D3D11_USAGE_DEFAULT;
bufferDesc.ByteWidth = (UINT)byteSize;
bufferDesc.BindFlags = D3D11_BIND_VERTEX_BUFFER;
bufferDesc.CPUAccessFlags = 0;
D3D11_SUBRESOURCE_DATA data;
ZeroMemory( &data, sizeof(data) );
data.pSysMem = &m_triMesh.getVertices()[0];
D3D_VALIDATE(device.CreateBuffer( &bufferDesc, &data, &m_vertexBuffer ));
}
示例6:
void D3D11ShaderManager::init(GraphicsDevice &g)
{
m_graphics = &g.castD3D11();
}
示例7:
void D3D11Canvas2D::init(GraphicsDevice &g)
{
m_graphics = &g.castD3D11();
m_graphics->registerAsset(this); //register to get resize, reset, and release events
}