mirror of
https://github.com/wolfpld/tracy
synced 2025-04-29 04:23:51 +00:00
Frame image may need flipping.
This commit is contained in:
parent
29fd4b1fe9
commit
37d1457b44
@ -24,7 +24,7 @@
|
||||
#define FrameMarkStart(x)
|
||||
#define FrameMarkEnd(x)
|
||||
|
||||
#define FrameImage(x,y,z,w)
|
||||
#define FrameImage(x,y,z,w,a)
|
||||
|
||||
#define TracyLockable( type, varname ) type varname;
|
||||
#define TracyLockableN( type, varname, desc ) type varname;
|
||||
@ -88,7 +88,7 @@
|
||||
#define FrameMarkStart( name ) tracy::Profiler::SendFrameMark( name, tracy::QueueType::FrameMarkMsgStart );
|
||||
#define FrameMarkEnd( name ) tracy::Profiler::SendFrameMark( name, tracy::QueueType::FrameMarkMsgEnd );
|
||||
|
||||
#define FrameImage( image, width, height, offset ) tracy::Profiler::SendFrameImage( image, width, height, offset );
|
||||
#define FrameImage( image, width, height, offset, flip ) tracy::Profiler::SendFrameImage( image, width, height, offset, flip );
|
||||
|
||||
#define TracyLockable( type, varname ) tracy::Lockable<type> varname { [] () -> const tracy::SourceLocationData* { static const tracy::SourceLocationData srcloc { nullptr, #type " " #varname, __FILE__, __LINE__, 0 }; return &srcloc; }() };
|
||||
#define TracyLockableN( type, varname, desc ) tracy::Lockable<type> varname { [] () -> const tracy::SourceLocationData* { static const tracy::SourceLocationData srcloc { nullptr, desc, __FILE__, __LINE__, 0 }; return &srcloc; }() };
|
||||
|
@ -171,7 +171,7 @@ public:
|
||||
GetProfiler().m_serialLock.unlock();
|
||||
}
|
||||
|
||||
static tracy_force_inline void SendFrameImage( void* image, uint16_t w, uint16_t h, uint8_t offset )
|
||||
static tracy_force_inline void SendFrameImage( void* image, uint16_t w, uint16_t h, uint8_t offset, bool flip )
|
||||
{
|
||||
#ifdef TRACY_ON_DEMAND
|
||||
if( !GetProfiler().IsConnected() ) return;
|
||||
@ -188,6 +188,8 @@ public:
|
||||
MemWrite( &item->frameImage.w, w );
|
||||
MemWrite( &item->frameImage.h, h );
|
||||
MemWrite( &item->frameImage.offset, offset );
|
||||
uint8_t _flip = flip;
|
||||
MemWrite( &item->frameImage.flip, _flip );
|
||||
tail.store( magic + 1, std::memory_order_release );
|
||||
}
|
||||
|
||||
|
@ -106,6 +106,7 @@ struct QueueFrameImage
|
||||
uint16_t w;
|
||||
uint16_t h;
|
||||
uint8_t offset;
|
||||
uint8_t flip;
|
||||
};
|
||||
|
||||
struct QueueSourceLocation
|
||||
|
@ -363,6 +363,7 @@ struct FrameImage
|
||||
uint32_t csz;
|
||||
uint16_t w, h;
|
||||
uint32_t frameRef;
|
||||
uint8_t flip;
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -1250,6 +1250,7 @@ Worker::Worker( FileRead& f, EventType::Type eventMask )
|
||||
s_loadProgress.subProgress.store( i, std::memory_order_relaxed );
|
||||
auto fi = m_slab.Alloc<FrameImage>();
|
||||
f.Read2( fi->w, fi->h );
|
||||
f.Read( fi->flip );
|
||||
const auto sz = fi->w * fi->h / 2;
|
||||
if( tmpbufsz < sz )
|
||||
{
|
||||
@ -3020,6 +3021,7 @@ void Worker::ProcessFrameImage( const QueueFrameImage& ev )
|
||||
fi->w = ev.w;
|
||||
fi->h = ev.h;
|
||||
fi->frameRef = fidx;
|
||||
fi->flip = ev.flip;
|
||||
|
||||
const auto idx = m_data.frameImage.size();
|
||||
m_data.frameImage.push_back( fi );
|
||||
@ -4395,6 +4397,7 @@ void Worker::Write( FileWrite& f )
|
||||
{
|
||||
f.Write( &fi->w, sizeof( fi->w ) );
|
||||
f.Write( &fi->h, sizeof( fi->h ) );
|
||||
f.Write( &fi->flip, sizeof( fi->flip ) );
|
||||
const auto image = UnpackFrameImage( *fi );
|
||||
f.Write( image, fi->w * fi->h / 2 );
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user