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

Method ReadFile

trinity/Tr2TextureAnimation.cpp:297–339  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

295}
296
297void Tr2TextureAnimation::ReadFile( void* ctx )
298{
299 CCP_STATS_ZONE( __FUNCTION__ );
300
301 auto request = static_cast<AsyncRequest*>( ctx );
302 IBlueStreamPtr stream;
303 if( !BePaths->GetStreamFromPathW( request->filename.c_str(), &stream ) )
304 {
305 CCP_LOGERR( "Error opening file (%S)", request->filename.c_str() );
306 delete request;
307 return;
308 }
309 if( request->state->cancel )
310 {
311 delete request;
312 return;
313 }
314 size_t size = size_t( stream->GetSize() );
315 request->state->stream.m_data.resize( size );
316 if( stream->Read( request->state->stream.m_data.data(), size ) != size )
317 {
318 CCP_LOGERR( "Error reading file (%S)", request->filename.c_str() );
319 request->state->stream = {};
320 delete request;
321 return;
322 }
323 auto result = request->state->reader.SetStream( &request->state->stream );
324 if( !result )
325 {
326 CCP_LOGERR( "Error reading VTA file (%S): %s", request->filename.c_str(), result.GetErrorMessage().c_str() );
327 request->state->stream = {};
328 delete request;
329 return;
330 }
331
332 if( request->state->cancel )
333 {
334 delete request;
335 return;
336 }
337
338 AddToComputeQueue( &DecodeFirstFrame, request );
339}
340
341void Tr2TextureAnimation::DecodeFirstFrame( void* ctx )
342{

Callers

nothing calls this directly

Calls 3

AddToComputeQueueFunction · 0.85
GetSizeMethod · 0.45
ReadMethod · 0.45

Tested by

no test coverage detected