MCPcopy Create free account
hub / github.com/carbonengine/trinity / Create2DTexture

Function Create2DTexture

trinity/Tr2ImageIOHelpers.cpp:94–129  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

92namespace Tr2ImageIOHelpers
93{
94bool 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
131bool CreateTexture( ImageIO::HostBitmap& bitmap, Tr2TextureAL& out, uint32_t& memoryUse, Tr2PrimaryRenderContext& renderContext, Tr2RenderContextEnum::BufferUsage usage )
132{

Callers 2

CreateTextureFunction · 0.85
DoPrepareMethod · 0.85

Calls 5

GetTrueMipCountMethod · 0.80
GetMipSizeMethod · 0.80
IsValidMethod · 0.45
GetArraySizeMethod · 0.45
CreateMethod · 0.45

Tested by

no test coverage detected