当前位置: 首页>>代码示例>>C++>>正文


C++ GraphicsDevice::getDeviceData方法代码示例

本文整理汇总了C++中GraphicsDevice::getDeviceData方法的典型用法代码示例。如果您正苦于以下问题:C++ GraphicsDevice::getDeviceData方法的具体用法?C++ GraphicsDevice::getDeviceData怎么用?C++ GraphicsDevice::getDeviceData使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在GraphicsDevice的用法示例。


在下文中一共展示了GraphicsDevice::getDeviceData方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: initialize

bool IndexBuffer::initialize(GraphicsDevice& device, UsageType usage, 
                        void* initialData, unsigned int size)
{
    assert(data.buffer == nullptr);
    assert(device.getDeviceData().d3dContext != nullptr);

    ID3D11Device* d3dDevice = device.getDeviceData().d3dDevice;

    D3D11_BUFFER_DESC bufferDesc;
    bufferDesc.BindFlags = D3D11_BIND_INDEX_BUFFER;
    bufferDesc.CPUAccessFlags = 0;
    bufferDesc.MiscFlags = 0;
    bufferDesc.ByteWidth = size;
    bufferDesc.StructureByteStride = 0;
    bufferDesc.Usage = static_cast<D3D11_USAGE>(usage);
    if(usage == UsageType::Dynamic)
        bufferDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;

    D3D11_SUBRESOURCE_DATA bufferData;
    bufferData.pSysMem = initialData;
    bufferData.SysMemPitch = 0;
    bufferData.SysMemSlicePitch = 0;

    D3D11_SUBRESOURCE_DATA* bufferDataPtr = nullptr;

    if(initialData != nullptr)
        bufferDataPtr = &bufferData;

    if(FAILED(d3dDevice->CreateBuffer(&bufferDesc, bufferDataPtr, &data.buffer)))
    {
        release();
        return false;
    }

    data.context = device.getDeviceData().d3dContext;

    return true;
}
开发者ID:bmenke92,项目名称:GameLib-Legacy,代码行数:38,代码来源:Win32IndexBuffer.cpp

示例2: initialize

bool SamplerState::initialize(GraphicsDevice& device, SamplerStateDescription desc)
{
    D3D11_SAMPLER_DESC samplerDesc;
    samplerDesc.AddressU = static_cast<D3D11_TEXTURE_ADDRESS_MODE>(desc.addressU);
    samplerDesc.AddressV = static_cast<D3D11_TEXTURE_ADDRESS_MODE>(desc.addressV);
    samplerDesc.AddressW = static_cast<D3D11_TEXTURE_ADDRESS_MODE>(desc.addressW);
    samplerDesc.ComparisonFunc = D3D11_COMPARISON_NEVER;
    samplerDesc.MaxAnisotropy = desc.maxAnisotropy;
    samplerDesc.MaxLOD = desc.maxMip;
    samplerDesc.MinLOD = desc.minMip;
    samplerDesc.MipLODBias = desc.mipBias;

    if(desc.minFilter == SamplerFilter::Anisotropic || desc.magFilter == SamplerFilter::Anisotropic ||
        desc.mipFilter == SamplerFilter::Anisotropic)
            samplerDesc.Filter = D3D11_FILTER_ANISOTROPIC;


    if(desc.minFilter == desc.magFilter && desc.minFilter == desc.mipFilter)
    {
        switch(desc.minFilter)
        {
        case SamplerFilter::Point:
            samplerDesc.Filter = D3D11_FILTER_MIN_MAG_MIP_POINT;
            break;
        case SamplerFilter::Linear:
            samplerDesc.Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR;
            break;
        }
    }
    else if(desc.minFilter == desc.magFilter)
    {
        switch(desc.minFilter)
        {
        case SamplerFilter::Point:
            samplerDesc.Filter = D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR;
            break;
        case SamplerFilter::Linear:
            samplerDesc.Filter = D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT;
            break;
        }
    }
    else if(desc.magFilter == desc.mipFilter)
    {
        switch(desc.minFilter)
        {
        case SamplerFilter::Point:
            samplerDesc.Filter = D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR;
            break;
        case SamplerFilter::Linear:
            samplerDesc.Filter = D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT;
            break;
        }
    }
    else
    {
        switch(desc.minFilter)
        {
        case SamplerFilter::Point:
            samplerDesc.Filter = D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT;
            break;
        case SamplerFilter::Linear:
            samplerDesc.Filter = D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR;
            break;
        }
    }

    if(FAILED(device.getDeviceData().d3dDevice->CreateSamplerState(&samplerDesc, &data.samplerState)))
        return false;

    return true;
}
开发者ID:bmenke92,项目名称:GameLib-Legacy,代码行数:71,代码来源:Win32SamplerState.cpp


注:本文中的GraphicsDevice::getDeviceData方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。