| 92 | namespace Tr2ImageIOHelpers |
| 93 | { |
| 94 | bool Create2DTexture( ImageIO::HostBitmap& bitmap, Tr2TextureAL& out, uint32_t& memoryUse, Tr2PrimaryRenderContext& renderContext, Tr2RenderContextEnum::BufferUsage usage ) |
| 95 | { |
| 96 | CCP_STATS_ZONE( __FUNCTION__ ); |
| 97 | |
| 98 | if( !bitmap.IsValid() ) |
| 99 | { |
| 100 | return false; |
| 101 | } |
| 102 | |
| 103 | BeTimer create; |
| 104 | |
| 105 | const unsigned trueMipLevelCount = bitmap.GetTrueMipCount(); |
| 106 | |
| 107 | std::vector<Tr2SubresourceData> initData( trueMipLevelCount * bitmap.GetArraySize() ); |
| 108 | |
| 109 | for( unsigned j = 0; j < bitmap.GetArraySize(); ++j ) |
| 110 | { |
| 111 | for( unsigned i = 0; i != trueMipLevelCount; ++i ) |
| 112 | { |
| 113 | Tr2SubresourceData& srd = initData[i + j * trueMipLevelCount]; |
| 114 | |
| 115 | srd.m_sysMem = const_cast<char*>( bitmap.GetMipRawData( i, j ) ); |
| 116 | srd.m_sysMemSlicePitch = bitmap.GetMipSize( i ); |
| 117 | srd.m_sysMemPitch = bitmap.GetMipPitch( i ); |
| 118 | |
| 119 | if( !srd.m_sysMem ) |
| 120 | { |
| 121 | return false; |
| 122 | } |
| 123 | |
| 124 | memoryUse += srd.m_sysMemSlicePitch; |
| 125 | } |
| 126 | } |
| 127 | |
| 128 | return !FAILED( out.Create( bitmap, Tr2GpuUsage::SHADER_RESOURCE, Tr2CpuUsage::READ, &initData[0], renderContext ) ); |
| 129 | } |
| 130 | |
| 131 | bool CreateTexture( ImageIO::HostBitmap& bitmap, Tr2TextureAL& out, uint32_t& memoryUse, Tr2PrimaryRenderContext& renderContext, Tr2RenderContextEnum::BufferUsage usage ) |
| 132 | { |
no test coverage detected