Added bimg dependency.

This commit is contained in:
Branimir Karadžić
2017-04-03 22:42:27 -07:00
parent 423c655095
commit 8ce85d2462
161 changed files with 257 additions and 62914 deletions

View File

@@ -1014,7 +1014,7 @@ namespace bgfx { namespace d3d12
{
uint16_t support = BGFX_CAPS_FORMAT_TEXTURE_NONE;
const DXGI_FORMAT fmt = isDepth(TextureFormat::Enum(ii) )
const DXGI_FORMAT fmt = bimg::isDepth(bimg::TextureFormat::Enum(ii) )
? s_textureFormat[ii].m_fmtDsv
: s_textureFormat[ii].m_fmt
;
@@ -1448,7 +1448,7 @@ namespace bgfx { namespace d3d12
uint8_t* src;
readback->Map(0, NULL, (void**)&src);
const uint8_t bpp = getBitsPerPixel(TextureFormat::Enum(texture.m_textureFormat) );
const uint8_t bpp = bimg::getBitsPerPixel(bimg::TextureFormat::Enum(texture.m_textureFormat) );
uint8_t* dst = (uint8_t*)_data;
uint32_t dstPitch = srcWidth*bpp/8;
@@ -1606,7 +1606,7 @@ namespace bgfx { namespace d3d12
void* data;
readback->Map(0, NULL, (void**)&data);
imageSwizzleBgra8(
bimg::imageSwizzleBgra8(
data
, width
, height
@@ -3968,14 +3968,14 @@ data.NumQualityLevels = 0;
void TextureD3D12::create(const Memory* _mem, uint32_t _flags, uint8_t _skip)
{
ImageContainer imageContainer;
bimg::ImageContainer imageContainer;
if (imageParse(imageContainer, _mem->data, _mem->size) )
if (bimg::imageParse(imageContainer, _mem->data, _mem->size) )
{
uint8_t numMips = imageContainer.m_numMips;
const uint8_t startLod = uint8_t(bx::uint32_min(_skip, numMips-1) );
numMips -= startLod;
const ImageBlockInfo& blockInfo = getBlockInfo(TextureFormat::Enum(imageContainer.m_format) );
const bimg::ImageBlockInfo& blockInfo = bimg::getBlockInfo(imageContainer.m_format);
const uint32_t textureWidth = bx::uint32_max(blockInfo.blockWidth, imageContainer.m_width >>startLod);
const uint32_t textureHeight = bx::uint32_max(blockInfo.blockHeight, imageContainer.m_height>>startLod);
const uint16_t numLayers = imageContainer.m_numLayers;
@@ -3987,7 +3987,7 @@ data.NumQualityLevels = 0;
m_requestedFormat = uint8_t(imageContainer.m_format);
m_textureFormat = uint8_t(getViableTextureFormat(imageContainer) );
const bool convert = m_textureFormat != m_requestedFormat;
const uint8_t bpp = getBitsPerPixel(TextureFormat::Enum(m_textureFormat) );
const uint8_t bpp = bimg::getBitsPerPixel(bimg::TextureFormat::Enum(m_textureFormat) );
if (imageContainer.m_cubeMap)
{
@@ -4009,7 +4009,7 @@ data.NumQualityLevels = 0;
uint32_t kk = 0;
const bool compressed = isCompressed(TextureFormat::Enum(m_textureFormat) );
const bool compressed = bimg::isCompressed(bimg::TextureFormat::Enum(m_textureFormat) );
const bool swizzle = TextureFormat::BGRA8 == m_textureFormat && 0 != (m_flags&BGFX_TEXTURE_COMPUTE_WRITE);
uint32_t blockWidth = 1;
uint32_t blockHeight = 1;
@@ -4051,8 +4051,8 @@ data.NumQualityLevels = 0;
height = bx::uint32_max(blockHeight, height);
depth = bx::uint32_max(1, depth);
ImageMip mip;
if (imageGetRawData(imageContainer, side, lod+startLod, _mem->data, _mem->size, mip) )
bimg::ImageMip mip;
if (bimg::imageGetRawData(imageContainer, side, lod+startLod, _mem->data, _mem->size, mip) )
{
if (convert)
{
@@ -4060,7 +4060,7 @@ data.NumQualityLevels = 0;
const uint32_t slice = bx::strideAlign(pitch * height, D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT);
uint8_t* temp = (uint8_t*)BX_ALLOC(g_allocator, slice);
imageDecodeToBgra8(temp
bimg::imageDecodeToBgra8(temp
, mip.m_data
, mip.m_width
, mip.m_height
@@ -4078,7 +4078,7 @@ data.NumQualityLevels = 0;
uint32_t slice = bx::strideAlign( (mip.m_height/blockInfo.blockHeight)*pitch, D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT);
uint8_t* temp = (uint8_t*)BX_ALLOC(g_allocator, slice);
imageCopy(temp
bimg::imageCopy(temp
, mip.m_height/blockInfo.blockHeight
, (mip.m_width /blockInfo.blockWidth )*mip.m_blockSize
, mip.m_data
@@ -4096,7 +4096,7 @@ data.NumQualityLevels = 0;
const uint32_t slice = bx::strideAlign(pitch * mip.m_height, D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT);
uint8_t* temp = (uint8_t*)BX_ALLOC(g_allocator, slice);
imageCopy(temp
bimg::imageCopy(temp
, mip.m_height
, mip.m_width*mip.m_bpp / 8
, mip.m_data
@@ -4164,7 +4164,7 @@ data.NumQualityLevels = 0;
D3D12_RESOURCE_STATES state = D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE;
D3D12_CLEAR_VALUE* clearValue = NULL;
if (isDepth(TextureFormat::Enum(m_textureFormat) ) )
if (bimg::isDepth(bimg::TextureFormat::Enum(m_textureFormat) ) )
{
resourceDesc.Format = s_textureFormat[m_textureFormat].m_fmt;
resourceDesc.Flags |= D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL;
@@ -4364,7 +4364,7 @@ data.NumQualityLevels = 0;
setState(_commandList, D3D12_RESOURCE_STATE_COPY_DEST);
const uint32_t subres = _mip + (_side * m_numMips);
const uint32_t bpp = getBitsPerPixel(TextureFormat::Enum(m_textureFormat) );
const uint32_t bpp = bimg::getBitsPerPixel(bimg::TextureFormat::Enum(m_textureFormat) );
const uint32_t rectpitch = _rect.m_width*bpp/8;
const uint32_t srcpitch = UINT16_MAX == _pitch ? rectpitch : _pitch;
@@ -4481,7 +4481,7 @@ data.NumQualityLevels = 0;
m_height = uint32_t(desc.Height);
}
if (isDepth( (TextureFormat::Enum)texture.m_textureFormat) )
if (bimg::isDepth(bimg::TextureFormat::Enum(texture.m_textureFormat) ) )
{
BX_CHECK(!isValid(m_depth), "");
m_depth = handle;
@@ -4489,7 +4489,7 @@ data.NumQualityLevels = 0;
uint32_t dsvDescriptorSize = device->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_DSV);
dsvDescriptor.ptr += (1 + fbhIdx) * dsvDescriptorSize;
const ImageBlockInfo& blockInfo = getBlockInfo(TextureFormat::Enum(texture.m_textureFormat) );
const bimg::ImageBlockInfo& blockInfo = bimg::getBlockInfo(bimg::TextureFormat::Enum(texture.m_textureFormat) );
BX_UNUSED(blockInfo);
D3D12_DEPTH_STENCIL_VIEW_DESC dsvDesc;
@@ -5007,7 +5007,7 @@ data.NumQualityLevels = 0;
srcLocation.Type = D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX;
srcLocation.SubresourceIndex = srcZ*src.m_numMips+blit.m_srcMip;
bool depthStencil = isDepth(TextureFormat::Enum(src.m_textureFormat) );
bool depthStencil = bimg::isDepth(bimg::TextureFormat::Enum(src.m_textureFormat) );
m_commandList->CopyTextureRegion(&dstLocation
, blit.m_dstX
, blit.m_dstY