예제 #1
0
	//------------------------------------------------------------------------------------
	void D3D11Texture::Resize( uint32 width, uint32 height )
	{
		_AST(m_usage & eTextureUsage_RenderTarget || m_usage & eTextureUsage_RecreateOnWndResized);

		Destroy();

		m_width = width;
		m_height = height;

		_CreateManual(nullptr);
	}
예제 #2
0
	//-------------------------------------------------------------------------------
	D3D11Texture::D3D11Texture( uint32 width, uint32 height, const char* pTexData, ePixelFormat format, uint32 usage, bool bMipMap )
		: Texture(eTextureType_2D, width, height, 1, format, usage, bMipMap)
		, m_pTexture2D(nullptr)
		, m_pTexture3D(nullptr)
		, m_pRTV(nullptr)
		, m_pSRV(nullptr)
		, m_pDSV(nullptr)
		, m_pTexStaging(nullptr)
	{
		_CreateManual(pTexData);

		if (m_usage & eTextureUsage_RecreateOnWndResized)
		{
			g_pRenderSys->AddResizableTexture(this);
		}
	}
예제 #3
0
//-------------------------------------------------------------------------------
D3D11Texture::D3D11Texture( uint32 width, uint32 height, const char* pTexData, ePixelFormat format, uint32 usage, bool bMipMap )
    :m_pTexture2D(nullptr)
    ,m_pTexture3D(nullptr)
    ,m_pRenderSystem(g_env.pRenderSystem)
    ,m_rtView(nullptr)
    ,m_pSRV(nullptr)
    ,m_pDSV(nullptr)
    ,m_width(width)
    ,m_height(height)
    ,m_usage(usage)
    ,m_texType(eTextureType_2D)
    ,m_bMipMap(bMipMap)
    ,m_texFormat(format)
{
    m_pd3dDevice = m_pRenderSystem->GetDevice();
    if (m_pd3dDevice)
        m_pd3dDevice->AddRef();

    _CreateManual(pTexData);

    if (m_usage & eTextureUsage_RecreateOnWndResized)
        m_pRenderSystem->AddResizableTexture(this);
}