mirror of
https://github.com/wolfpld/tracy.git
synced 2026-10-20 15:50:48 +00:00
Add 2D mesh debug interface.
This commit is contained in:
@@ -58,11 +58,15 @@
|
||||
#define TracyAllocS(x,y,z)
|
||||
#define TracyFreeS(x,y)
|
||||
|
||||
#define TracyMeshTri(v0,v1,v2,v3,v4,v5)
|
||||
#define TracyMeshEnd
|
||||
|
||||
#else
|
||||
|
||||
#include "client/TracyLock.hpp"
|
||||
#include "client/TracyProfiler.hpp"
|
||||
#include "client/TracyScoped.hpp"
|
||||
#include "client/TracyMesh.hpp"
|
||||
|
||||
#if defined TRACY_HAS_CALLSTACK && defined TRACY_CALLSTACK
|
||||
# define ZoneNamed( varname, active ) static const tracy::SourceLocationData TracyConcat(__tracy_source_location,__LINE__) { nullptr, __FUNCTION__, __FILE__, (uint32_t)__LINE__, 0 }; tracy::ScopedZone varname( &TracyConcat(__tracy_source_location,__LINE__), TRACY_CALLSTACK, active );
|
||||
@@ -143,6 +147,9 @@
|
||||
# define TracyFreeS( ptr, depth ) TracyFree( ptr )
|
||||
#endif
|
||||
|
||||
#define TracyMeshTri( x0, y0, x1, y1, x2, y2 ) tracy::mesh::MeshTri( x0, y0, x1, y1, x2, y2 )
|
||||
#define TracyMeshEnd tracy::mesh::MeshEnd();
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
40
client/TracyMesh.hpp
Normal file
40
client/TracyMesh.hpp
Normal file
@@ -0,0 +1,40 @@
|
||||
#ifndef __TRACYMESH_HPP__
|
||||
#define __TRACYMESH_HPP__
|
||||
|
||||
#include "TracyProfiler.hpp"
|
||||
|
||||
namespace tracy
|
||||
{
|
||||
namespace mesh
|
||||
{
|
||||
|
||||
static void MeshTri( float x0, float y0, float x1, float y1, float x2, float y2 )
|
||||
{
|
||||
Magic magic;
|
||||
auto token = GetToken();
|
||||
auto& tail = token->get_tail_index();
|
||||
auto item = token->enqueue_begin( magic );
|
||||
MemWrite( &item->hdr.type, QueueType::MeshTri );
|
||||
MemWrite( &item->meshTri.x0, x0 );
|
||||
MemWrite( &item->meshTri.y0, y0 );
|
||||
MemWrite( &item->meshTri.x1, x1 );
|
||||
MemWrite( &item->meshTri.y1, y1 );
|
||||
MemWrite( &item->meshTri.x2, x2 );
|
||||
MemWrite( &item->meshTri.y2, y2 );
|
||||
tail.store( magic + 1, std::memory_order_release );
|
||||
}
|
||||
|
||||
static void MeshEnd()
|
||||
{
|
||||
Magic magic;
|
||||
auto token = GetToken();
|
||||
auto& tail = token->get_tail_index();
|
||||
auto item = token->enqueue_begin( magic );
|
||||
MemWrite( &item->hdr.type, QueueType::MeshEnd );
|
||||
tail.store( magic + 1, std::memory_order_release );
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -9,7 +9,7 @@
|
||||
namespace tracy
|
||||
{
|
||||
|
||||
enum : uint32_t { ProtocolVersion = 14 };
|
||||
enum : uint32_t { ProtocolVersion = 15 };
|
||||
enum : uint32_t { BroadcastVersion = 0 };
|
||||
|
||||
using lz4sz_t = uint32_t;
|
||||
|
||||
@@ -56,6 +56,8 @@ enum class QueueType : uint8_t
|
||||
CallstackFrameSize,
|
||||
CallstackFrame,
|
||||
SysTimeReport,
|
||||
MeshTri,
|
||||
MeshEnd,
|
||||
StringData,
|
||||
ThreadName,
|
||||
CustomStringData,
|
||||
@@ -297,6 +299,13 @@ struct QueueSysTime
|
||||
float sysTime;
|
||||
};
|
||||
|
||||
struct QueueMeshTri
|
||||
{
|
||||
float x0, y0;
|
||||
float x1, y1;
|
||||
float x2, y2;
|
||||
};
|
||||
|
||||
struct QueueHeader
|
||||
{
|
||||
union
|
||||
@@ -342,6 +351,7 @@ struct QueueItem
|
||||
QueueCallstackFrame callstackFrame;
|
||||
QueueCrashReport crashReport;
|
||||
QueueSysTime sysTime;
|
||||
QueueMeshTri meshTri;
|
||||
};
|
||||
};
|
||||
#pragma pack()
|
||||
@@ -399,6 +409,8 @@ static const size_t QueueDataSize[] = {
|
||||
sizeof( QueueHeader ) + sizeof( QueueCallstackFrameSize ),
|
||||
sizeof( QueueHeader ) + sizeof( QueueCallstackFrame ),
|
||||
sizeof( QueueHeader ) + sizeof( QueueSysTime ),
|
||||
sizeof( QueueHeader ) + sizeof( QueueMeshTri ),
|
||||
sizeof( QueueHeader ), // mesh end
|
||||
// keep all QueueStringTransfer below
|
||||
sizeof( QueueHeader ) + sizeof( QueueStringTransfer ), // string data
|
||||
sizeof( QueueHeader ) + sizeof( QueueStringTransfer ), // thread name
|
||||
|
||||
Reference in New Issue
Block a user