#include "Memory.hpp" #include "ScopedZone.hpp" #include "tracy/TracyC.h" namespace tracy { #ifndef TRACY_ENABLE enum class PlotFormatType : uint8_t { Number, Memory, Percentage }; #endif constexpr static inline bool IsEnabled() { #ifdef TRACY_ENABLE return true; #else return false; #endif } } // namespace tracy PYBIND11_MODULE(TracyClientBindings, m) { m.doc() = "Tracy Client Bindings"; m.def("is_enabled", &tracy::IsEnabled); py::enum_(m, "ColorType") .value("Snow", tracy::Color::Snow) .value("GhostWhite", tracy::Color::GhostWhite) .value("WhiteSmoke", tracy::Color::WhiteSmoke) .value("Gainsboro", tracy::Color::Gainsboro) .value("FloralWhite", tracy::Color::FloralWhite) .value("OldLace", tracy::Color::OldLace) .value("Linen", tracy::Color::Linen) .value("AntiqueWhite", tracy::Color::AntiqueWhite) .value("PapayaWhip", tracy::Color::PapayaWhip) .value("BlanchedAlmond", tracy::Color::BlanchedAlmond) .value("Bisque", tracy::Color::Bisque) .value("PeachPuff", tracy::Color::PeachPuff) .value("NavajoWhite", tracy::Color::NavajoWhite) .value("Moccasin", tracy::Color::Moccasin) .value("Cornsilk", tracy::Color::Cornsilk) .value("Ivory", tracy::Color::Ivory) .value("LemonChiffon", tracy::Color::LemonChiffon) .value("Seashell", tracy::Color::Seashell) .value("Honeydew", tracy::Color::Honeydew) .value("MintCream", tracy::Color::MintCream) .value("Azure", tracy::Color::Azure) .value("AliceBlue", tracy::Color::AliceBlue) .value("Lavender", tracy::Color::Lavender) .value("LavenderBlush", tracy::Color::LavenderBlush) .value("MistyRose", tracy::Color::MistyRose) .value("White", tracy::Color::White) .value("Black", tracy::Color::Black) .value("DarkSlateGray", tracy::Color::DarkSlateGray) .value("DarkSlateGrey", tracy::Color::DarkSlateGrey) .value("DimGray", tracy::Color::DimGray) .value("DimGrey", tracy::Color::DimGrey) .value("SlateGray", tracy::Color::SlateGray) .value("SlateGrey", tracy::Color::SlateGrey) .value("LightSlateGray", tracy::Color::LightSlateGray) .value("LightSlateGrey", tracy::Color::LightSlateGrey) .value("Gray", tracy::Color::Gray) .value("Grey", tracy::Color::Grey) .value("X11Gray", tracy::Color::X11Gray) .value("X11Grey", tracy::Color::X11Grey) .value("WebGray", tracy::Color::WebGray) .value("WebGrey", tracy::Color::WebGrey) .value("LightGrey", tracy::Color::LightGrey) .value("LightGray", tracy::Color::LightGray) .value("MidnightBlue", tracy::Color::MidnightBlue) .value("Navy", tracy::Color::Navy) .value("NavyBlue", tracy::Color::NavyBlue) .value("CornflowerBlue", tracy::Color::CornflowerBlue) .value("DarkSlateBlue", tracy::Color::DarkSlateBlue) .value("SlateBlue", tracy::Color::SlateBlue) .value("MediumSlateBlue", tracy::Color::MediumSlateBlue) .value("LightSlateBlue", tracy::Color::LightSlateBlue) .value("MediumBlue", tracy::Color::MediumBlue) .value("RoyalBlue", tracy::Color::RoyalBlue) .value("Blue", tracy::Color::Blue) .value("DodgerBlue", tracy::Color::DodgerBlue) .value("DeepSkyBlue", tracy::Color::DeepSkyBlue) .value("SkyBlue", tracy::Color::SkyBlue) .value("LightSkyBlue", tracy::Color::LightSkyBlue) .value("SteelBlue", tracy::Color::SteelBlue) .value("LightSteelBlue", tracy::Color::LightSteelBlue) .value("LightBlue", tracy::Color::LightBlue) .value("PowderBlue", tracy::Color::PowderBlue) .value("PaleTurquoise", tracy::Color::PaleTurquoise) .value("DarkTurquoise", tracy::Color::DarkTurquoise) .value("MediumTurquoise", tracy::Color::MediumTurquoise) .value("Turquoise", tracy::Color::Turquoise) .value("Cyan", tracy::Color::Cyan) .value("Aqua", tracy::Color::Aqua) .value("LightCyan", tracy::Color::LightCyan) .value("CadetBlue", tracy::Color::CadetBlue) .value("MediumAquamarine", tracy::Color::MediumAquamarine) .value("Aquamarine", tracy::Color::Aquamarine) .value("DarkGreen", tracy::Color::DarkGreen) .value("DarkOliveGreen", tracy::Color::DarkOliveGreen) .value("DarkSeaGreen", tracy::Color::DarkSeaGreen) .value("SeaGreen", tracy::Color::SeaGreen) .value("MediumSeaGreen", tracy::Color::MediumSeaGreen) .value("LightSeaGreen", tracy::Color::LightSeaGreen) .value("PaleGreen", tracy::Color::PaleGreen) .value("SpringGreen", tracy::Color::SpringGreen) .value("LawnGreen", tracy::Color::LawnGreen) .value("Green", tracy::Color::Green) .value("Lime", tracy::Color::Lime) .value("X11Green", tracy::Color::X11Green) .value("WebGreen", tracy::Color::WebGreen) .value("Chartreuse", tracy::Color::Chartreuse) .value("MediumSpringGreen", tracy::Color::MediumSpringGreen) .value("GreenYellow", tracy::Color::GreenYellow) .value("LimeGreen", tracy::Color::LimeGreen) .value("YellowGreen", tracy::Color::YellowGreen) .value("ForestGreen", tracy::Color::ForestGreen) .value("OliveDrab", tracy::Color::OliveDrab) .value("DarkKhaki", tracy::Color::DarkKhaki) .value("Khaki", tracy::Color::Khaki) .value("PaleGoldenrod", tracy::Color::PaleGoldenrod) .value("LightGoldenrodYellow", tracy::Color::LightGoldenrodYellow) .value("LightYellow", tracy::Color::LightYellow) .value("Yellow", tracy::Color::Yellow) .value("Gold", tracy::Color::Gold) .value("LightGoldenrod", tracy::Color::LightGoldenrod) .value("Goldenrod", tracy::Color::Goldenrod) .value("DarkGoldenrod", tracy::Color::DarkGoldenrod) .value("RosyBrown", tracy::Color::RosyBrown) .value("IndianRed", tracy::Color::IndianRed) .value("SaddleBrown", tracy::Color::SaddleBrown) .value("Sienna", tracy::Color::Sienna) .value("Peru", tracy::Color::Peru) .value("Burlywood", tracy::Color::Burlywood) .value("Beige", tracy::Color::Beige) .value("Wheat", tracy::Color::Wheat) .value("SandyBrown", tracy::Color::SandyBrown) .value("Tan", tracy::Color::Tan) .value("Chocolate", tracy::Color::Chocolate) .value("Firebrick", tracy::Color::Firebrick) .value("Brown", tracy::Color::Brown) .value("DarkSalmon", tracy::Color::DarkSalmon) .value("Salmon", tracy::Color::Salmon) .value("LightSalmon", tracy::Color::LightSalmon) .value("Orange", tracy::Color::Orange) .value("DarkOrange", tracy::Color::DarkOrange) .value("Coral", tracy::Color::Coral) .value("LightCoral", tracy::Color::LightCoral) .value("Tomato", tracy::Color::Tomato) .value("OrangeRed", tracy::Color::OrangeRed) .value("Red", tracy::Color::Red) .value("HotPink", tracy::Color::HotPink) .value("DeepPink", tracy::Color::DeepPink) .value("Pink", tracy::Color::Pink) .value("LightPink", tracy::Color::LightPink) .value("PaleVioletRed", tracy::Color::PaleVioletRed) .value("Maroon", tracy::Color::Maroon) .value("X11Maroon", tracy::Color::X11Maroon) .value("WebMaroon", tracy::Color::WebMaroon) .value("MediumVioletRed", tracy::Color::MediumVioletRed) .value("VioletRed", tracy::Color::VioletRed) .value("Magenta", tracy::Color::Magenta) .value("Fuchsia", tracy::Color::Fuchsia) .value("Violet", tracy::Color::Violet) .value("Plum", tracy::Color::Plum) .value("Orchid", tracy::Color::Orchid) .value("MediumOrchid", tracy::Color::MediumOrchid) .value("DarkOrchid", tracy::Color::DarkOrchid) .value("DarkViolet", tracy::Color::DarkViolet) .value("BlueViolet", tracy::Color::BlueViolet) .value("Purple", tracy::Color::Purple) .value("X11Purple", tracy::Color::X11Purple) .value("WebPurple", tracy::Color::WebPurple) .value("MediumPurple", tracy::Color::MediumPurple) .value("Thistle", tracy::Color::Thistle) .value("Snow1", tracy::Color::Snow1) .value("Snow2", tracy::Color::Snow2) .value("Snow3", tracy::Color::Snow3) .value("Snow4", tracy::Color::Snow4) .value("Seashell1", tracy::Color::Seashell1) .value("Seashell2", tracy::Color::Seashell2) .value("Seashell3", tracy::Color::Seashell3) .value("Seashell4", tracy::Color::Seashell4) .value("AntiqueWhite1", tracy::Color::AntiqueWhite1) .value("AntiqueWhite2", tracy::Color::AntiqueWhite2) .value("AntiqueWhite3", tracy::Color::AntiqueWhite3) .value("AntiqueWhite4", tracy::Color::AntiqueWhite4) .value("Bisque1", tracy::Color::Bisque1) .value("Bisque2", tracy::Color::Bisque2) .value("Bisque3", tracy::Color::Bisque3) .value("Bisque4", tracy::Color::Bisque4) .value("PeachPuff1", tracy::Color::PeachPuff1) .value("PeachPuff2", tracy::Color::PeachPuff2) .value("PeachPuff3", tracy::Color::PeachPuff3) .value("PeachPuff4", tracy::Color::PeachPuff4) .value("NavajoWhite1", tracy::Color::NavajoWhite1) .value("NavajoWhite2", tracy::Color::NavajoWhite2) .value("NavajoWhite3", tracy::Color::NavajoWhite3) .value("NavajoWhite4", tracy::Color::NavajoWhite4) .value("LemonChiffon1", tracy::Color::LemonChiffon1) .value("LemonChiffon2", tracy::Color::LemonChiffon2) .value("LemonChiffon3", tracy::Color::LemonChiffon3) .value("LemonChiffon4", tracy::Color::LemonChiffon4) .value("Cornsilk1", tracy::Color::Cornsilk1) .value("Cornsilk2", tracy::Color::Cornsilk2) .value("Cornsilk3", tracy::Color::Cornsilk3) .value("Cornsilk4", tracy::Color::Cornsilk4) .value("Ivory1", tracy::Color::Ivory1) .value("Ivory2", tracy::Color::Ivory2) .value("Ivory3", tracy::Color::Ivory3) .value("Ivory4", tracy::Color::Ivory4) .value("Honeydew1", tracy::Color::Honeydew1) .value("Honeydew2", tracy::Color::Honeydew2) .value("Honeydew3", tracy::Color::Honeydew3) .value("Honeydew4", tracy::Color::Honeydew4) .value("LavenderBlush1", tracy::Color::LavenderBlush1) .value("LavenderBlush2", tracy::Color::LavenderBlush2) .value("LavenderBlush3", tracy::Color::LavenderBlush3) .value("LavenderBlush4", tracy::Color::LavenderBlush4) .value("MistyRose1", tracy::Color::MistyRose1) .value("MistyRose2", tracy::Color::MistyRose2) .value("MistyRose3", tracy::Color::MistyRose3) .value("MistyRose4", tracy::Color::MistyRose4) .value("Azure1", tracy::Color::Azure1) .value("Azure2", tracy::Color::Azure2) .value("Azure3", tracy::Color::Azure3) .value("Azure4", tracy::Color::Azure4) .value("SlateBlue1", tracy::Color::SlateBlue1) .value("SlateBlue2", tracy::Color::SlateBlue2) .value("SlateBlue3", tracy::Color::SlateBlue3) .value("SlateBlue4", tracy::Color::SlateBlue4) .value("RoyalBlue1", tracy::Color::RoyalBlue1) .value("RoyalBlue2", tracy::Color::RoyalBlue2) .value("RoyalBlue3", tracy::Color::RoyalBlue3) .value("RoyalBlue4", tracy::Color::RoyalBlue4) .value("Blue1", tracy::Color::Blue1) .value("Blue2", tracy::Color::Blue2) .value("Blue3", tracy::Color::Blue3) .value("Blue4", tracy::Color::Blue4) .value("DodgerBlue1", tracy::Color::DodgerBlue1) .value("DodgerBlue2", tracy::Color::DodgerBlue2) .value("DodgerBlue3", tracy::Color::DodgerBlue3) .value("DodgerBlue4", tracy::Color::DodgerBlue4) .value("SteelBlue1", tracy::Color::SteelBlue1) .value("SteelBlue2", tracy::Color::SteelBlue2) .value("SteelBlue3", tracy::Color::SteelBlue3) .value("SteelBlue4", tracy::Color::SteelBlue4) .value("DeepSkyBlue1", tracy::Color::DeepSkyBlue1) .value("DeepSkyBlue2", tracy::Color::DeepSkyBlue2) .value("DeepSkyBlue3", tracy::Color::DeepSkyBlue3) .value("DeepSkyBlue4", tracy::Color::DeepSkyBlue4) .value("SkyBlue1", tracy::Color::SkyBlue1) .value("SkyBlue2", tracy::Color::SkyBlue2) .value("SkyBlue3", tracy::Color::SkyBlue3) .value("SkyBlue4", tracy::Color::SkyBlue4) .value("LightSkyBlue1", tracy::Color::LightSkyBlue1) .value("LightSkyBlue2", tracy::Color::LightSkyBlue2) .value("LightSkyBlue3", tracy::Color::LightSkyBlue3) .value("LightSkyBlue4", tracy::Color::LightSkyBlue4) .value("SlateGray1", tracy::Color::SlateGray1) .value("SlateGray2", tracy::Color::SlateGray2) .value("SlateGray3", tracy::Color::SlateGray3) .value("SlateGray4", tracy::Color::SlateGray4) .value("LightSteelBlue1", tracy::Color::LightSteelBlue1) .value("LightSteelBlue2", tracy::Color::LightSteelBlue2) .value("LightSteelBlue3", tracy::Color::LightSteelBlue3) .value("LightSteelBlue4", tracy::Color::LightSteelBlue4) .value("LightBlue1", tracy::Color::LightBlue1) .value("LightBlue2", tracy::Color::LightBlue2) .value("LightBlue3", tracy::Color::LightBlue3) .value("LightBlue4", tracy::Color::LightBlue4) .value("LightCyan1", tracy::Color::LightCyan1) .value("LightCyan2", tracy::Color::LightCyan2) .value("LightCyan3", tracy::Color::LightCyan3) .value("LightCyan4", tracy::Color::LightCyan4) .value("PaleTurquoise1", tracy::Color::PaleTurquoise1) .value("PaleTurquoise2", tracy::Color::PaleTurquoise2) .value("PaleTurquoise3", tracy::Color::PaleTurquoise3) .value("PaleTurquoise4", tracy::Color::PaleTurquoise4) .value("CadetBlue1", tracy::Color::CadetBlue1) .value("CadetBlue2", tracy::Color::CadetBlue2) .value("CadetBlue3", tracy::Color::CadetBlue3) .value("CadetBlue4", tracy::Color::CadetBlue4) .value("Turquoise1", tracy::Color::Turquoise1) .value("Turquoise2", tracy::Color::Turquoise2) .value("Turquoise3", tracy::Color::Turquoise3) .value("Turquoise4", tracy::Color::Turquoise4) .value("Cyan1", tracy::Color::Cyan1) .value("Cyan2", tracy::Color::Cyan2) .value("Cyan3", tracy::Color::Cyan3) .value("Cyan4", tracy::Color::Cyan4) .value("DarkSlateGray1", tracy::Color::DarkSlateGray1) .value("DarkSlateGray2", tracy::Color::DarkSlateGray2) .value("DarkSlateGray3", tracy::Color::DarkSlateGray3) .value("DarkSlateGray4", tracy::Color::DarkSlateGray4) .value("Aquamarine1", tracy::Color::Aquamarine1) .value("Aquamarine2", tracy::Color::Aquamarine2) .value("Aquamarine3", tracy::Color::Aquamarine3) .value("Aquamarine4", tracy::Color::Aquamarine4) .value("DarkSeaGreen1", tracy::Color::DarkSeaGreen1) .value("DarkSeaGreen2", tracy::Color::DarkSeaGreen2) .value("DarkSeaGreen3", tracy::Color::DarkSeaGreen3) .value("DarkSeaGreen4", tracy::Color::DarkSeaGreen4) .value("SeaGreen1", tracy::Color::SeaGreen1) .value("SeaGreen2", tracy::Color::SeaGreen2) .value("SeaGreen3", tracy::Color::SeaGreen3) .value("SeaGreen4", tracy::Color::SeaGreen4) .value("PaleGreen1", tracy::Color::PaleGreen1) .value("PaleGreen2", tracy::Color::PaleGreen2) .value("PaleGreen3", tracy::Color::PaleGreen3) .value("PaleGreen4", tracy::Color::PaleGreen4) .value("SpringGreen1", tracy::Color::SpringGreen1) .value("SpringGreen2", tracy::Color::SpringGreen2) .value("SpringGreen3", tracy::Color::SpringGreen3) .value("SpringGreen4", tracy::Color::SpringGreen4) .value("Green1", tracy::Color::Green1) .value("Green2", tracy::Color::Green2) .value("Green3", tracy::Color::Green3) .value("Green4", tracy::Color::Green4) .value("Chartreuse1", tracy::Color::Chartreuse1) .value("Chartreuse2", tracy::Color::Chartreuse2) .value("Chartreuse3", tracy::Color::Chartreuse3) .value("Chartreuse4", tracy::Color::Chartreuse4) .value("OliveDrab1", tracy::Color::OliveDrab1) .value("OliveDrab2", tracy::Color::OliveDrab2) .value("OliveDrab3", tracy::Color::OliveDrab3) .value("OliveDrab4", tracy::Color::OliveDrab4) .value("DarkOliveGreen1", tracy::Color::DarkOliveGreen1) .value("DarkOliveGreen2", tracy::Color::DarkOliveGreen2) .value("DarkOliveGreen3", tracy::Color::DarkOliveGreen3) .value("DarkOliveGreen4", tracy::Color::DarkOliveGreen4) .value("Khaki1", tracy::Color::Khaki1) .value("Khaki2", tracy::Color::Khaki2) .value("Khaki3", tracy::Color::Khaki3) .value("Khaki4", tracy::Color::Khaki4) .value("LightGoldenrod1", tracy::Color::LightGoldenrod1) .value("LightGoldenrod2", tracy::Color::LightGoldenrod2) .value("LightGoldenrod3", tracy::Color::LightGoldenrod3) .value("LightGoldenrod4", tracy::Color::LightGoldenrod4) .value("LightYellow1", tracy::Color::LightYellow1) .value("LightYellow2", tracy::Color::LightYellow2) .value("LightYellow3", tracy::Color::LightYellow3) .value("LightYellow4", tracy::Color::LightYellow4) .value("Yellow1", tracy::Color::Yellow1) .value("Yellow2", tracy::Color::Yellow2) .value("Yellow3", tracy::Color::Yellow3) .value("Yellow4", tracy::Color::Yellow4) .value("Gold1", tracy::Color::Gold1) .value("Gold2", tracy::Color::Gold2) .value("Gold3", tracy::Color::Gold3) .value("Gold4", tracy::Color::Gold4) .value("Goldenrod1", tracy::Color::Goldenrod1) .value("Goldenrod2", tracy::Color::Goldenrod2) .value("Goldenrod3", tracy::Color::Goldenrod3) .value("Goldenrod4", tracy::Color::Goldenrod4) .value("DarkGoldenrod1", tracy::Color::DarkGoldenrod1) .value("DarkGoldenrod2", tracy::Color::DarkGoldenrod2) .value("DarkGoldenrod3", tracy::Color::DarkGoldenrod3) .value("DarkGoldenrod4", tracy::Color::DarkGoldenrod4) .value("RosyBrown1", tracy::Color::RosyBrown1) .value("RosyBrown2", tracy::Color::RosyBrown2) .value("RosyBrown3", tracy::Color::RosyBrown3) .value("RosyBrown4", tracy::Color::RosyBrown4) .value("IndianRed1", tracy::Color::IndianRed1) .value("IndianRed2", tracy::Color::IndianRed2) .value("IndianRed3", tracy::Color::IndianRed3) .value("IndianRed4", tracy::Color::IndianRed4) .value("Sienna1", tracy::Color::Sienna1) .value("Sienna2", tracy::Color::Sienna2) .value("Sienna3", tracy::Color::Sienna3) .value("Sienna4", tracy::Color::Sienna4) .value("Burlywood1", tracy::Color::Burlywood1) .value("Burlywood2", tracy::Color::Burlywood2) .value("Burlywood3", tracy::Color::Burlywood3) .value("Burlywood4", tracy::Color::Burlywood4) .value("Wheat1", tracy::Color::Wheat1) .value("Wheat2", tracy::Color::Wheat2) .value("Wheat3", tracy::Color::Wheat3) .value("Wheat4", tracy::Color::Wheat4) .value("Tan1", tracy::Color::Tan1) .value("Tan2", tracy::Color::Tan2) .value("Tan3", tracy::Color::Tan3) .value("Tan4", tracy::Color::Tan4) .value("Chocolate1", tracy::Color::Chocolate1) .value("Chocolate2", tracy::Color::Chocolate2) .value("Chocolate3", tracy::Color::Chocolate3) .value("Chocolate4", tracy::Color::Chocolate4) .value("Firebrick1", tracy::Color::Firebrick1) .value("Firebrick2", tracy::Color::Firebrick2) .value("Firebrick3", tracy::Color::Firebrick3) .value("Firebrick4", tracy::Color::Firebrick4) .value("Brown1", tracy::Color::Brown1) .value("Brown2", tracy::Color::Brown2) .value("Brown3", tracy::Color::Brown3) .value("Brown4", tracy::Color::Brown4) .value("Salmon1", tracy::Color::Salmon1) .value("Salmon2", tracy::Color::Salmon2) .value("Salmon3", tracy::Color::Salmon3) .value("Salmon4", tracy::Color::Salmon4) .value("LightSalmon1", tracy::Color::LightSalmon1) .value("LightSalmon2", tracy::Color::LightSalmon2) .value("LightSalmon3", tracy::Color::LightSalmon3) .value("LightSalmon4", tracy::Color::LightSalmon4) .value("Orange1", tracy::Color::Orange1) .value("Orange2", tracy::Color::Orange2) .value("Orange3", tracy::Color::Orange3) .value("Orange4", tracy::Color::Orange4) .value("DarkOrange1", tracy::Color::DarkOrange1) .value("DarkOrange2", tracy::Color::DarkOrange2) .value("DarkOrange3", tracy::Color::DarkOrange3) .value("DarkOrange4", tracy::Color::DarkOrange4) .value("Coral1", tracy::Color::Coral1) .value("Coral2", tracy::Color::Coral2) .value("Coral3", tracy::Color::Coral3) .value("Coral4", tracy::Color::Coral4) .value("Tomato1", tracy::Color::Tomato1) .value("Tomato2", tracy::Color::Tomato2) .value("Tomato3", tracy::Color::Tomato3) .value("Tomato4", tracy::Color::Tomato4) .value("OrangeRed1", tracy::Color::OrangeRed1) .value("OrangeRed2", tracy::Color::OrangeRed2) .value("OrangeRed3", tracy::Color::OrangeRed3) .value("OrangeRed4", tracy::Color::OrangeRed4) .value("Red1", tracy::Color::Red1) .value("Red2", tracy::Color::Red2) .value("Red3", tracy::Color::Red3) .value("Red4", tracy::Color::Red4) .value("DeepPink1", tracy::Color::DeepPink1) .value("DeepPink2", tracy::Color::DeepPink2) .value("DeepPink3", tracy::Color::DeepPink3) .value("DeepPink4", tracy::Color::DeepPink4) .value("HotPink1", tracy::Color::HotPink1) .value("HotPink2", tracy::Color::HotPink2) .value("HotPink3", tracy::Color::HotPink3) .value("HotPink4", tracy::Color::HotPink4) .value("Pink1", tracy::Color::Pink1) .value("Pink2", tracy::Color::Pink2) .value("Pink3", tracy::Color::Pink3) .value("Pink4", tracy::Color::Pink4) .value("LightPink1", tracy::Color::LightPink1) .value("LightPink2", tracy::Color::LightPink2) .value("LightPink3", tracy::Color::LightPink3) .value("LightPink4", tracy::Color::LightPink4) .value("PaleVioletRed1", tracy::Color::PaleVioletRed1) .value("PaleVioletRed2", tracy::Color::PaleVioletRed2) .value("PaleVioletRed3", tracy::Color::PaleVioletRed3) .value("PaleVioletRed4", tracy::Color::PaleVioletRed4) .value("Maroon1", tracy::Color::Maroon1) .value("Maroon2", tracy::Color::Maroon2) .value("Maroon3", tracy::Color::Maroon3) .value("Maroon4", tracy::Color::Maroon4) .value("VioletRed1", tracy::Color::VioletRed1) .value("VioletRed2", tracy::Color::VioletRed2) .value("VioletRed3", tracy::Color::VioletRed3) .value("VioletRed4", tracy::Color::VioletRed4) .value("Magenta1", tracy::Color::Magenta1) .value("Magenta2", tracy::Color::Magenta2) .value("Magenta3", tracy::Color::Magenta3) .value("Magenta4", tracy::Color::Magenta4) .value("Orchid1", tracy::Color::Orchid1) .value("Orchid2", tracy::Color::Orchid2) .value("Orchid3", tracy::Color::Orchid3) .value("Orchid4", tracy::Color::Orchid4) .value("Plum1", tracy::Color::Plum1) .value("Plum2", tracy::Color::Plum2) .value("Plum3", tracy::Color::Plum3) .value("Plum4", tracy::Color::Plum4) .value("MediumOrchid1", tracy::Color::MediumOrchid1) .value("MediumOrchid2", tracy::Color::MediumOrchid2) .value("MediumOrchid3", tracy::Color::MediumOrchid3) .value("MediumOrchid4", tracy::Color::MediumOrchid4) .value("DarkOrchid1", tracy::Color::DarkOrchid1) .value("DarkOrchid2", tracy::Color::DarkOrchid2) .value("DarkOrchid3", tracy::Color::DarkOrchid3) .value("DarkOrchid4", tracy::Color::DarkOrchid4) .value("Purple1", tracy::Color::Purple1) .value("Purple2", tracy::Color::Purple2) .value("Purple3", tracy::Color::Purple3) .value("Purple4", tracy::Color::Purple4) .value("MediumPurple1", tracy::Color::MediumPurple1) .value("MediumPurple2", tracy::Color::MediumPurple2) .value("MediumPurple3", tracy::Color::MediumPurple3) .value("MediumPurple4", tracy::Color::MediumPurple4) .value("Thistle1", tracy::Color::Thistle1) .value("Thistle2", tracy::Color::Thistle2) .value("Thistle3", tracy::Color::Thistle3) .value("Thistle4", tracy::Color::Thistle4) .value("Gray0", tracy::Color::Gray0) .value("Grey0", tracy::Color::Grey0) .value("Gray1", tracy::Color::Gray1) .value("Grey1", tracy::Color::Grey1) .value("Gray2", tracy::Color::Gray2) .value("Grey2", tracy::Color::Grey2) .value("Gray3", tracy::Color::Gray3) .value("Grey3", tracy::Color::Grey3) .value("Gray4", tracy::Color::Gray4) .value("Grey4", tracy::Color::Grey4) .value("Gray5", tracy::Color::Gray5) .value("Grey5", tracy::Color::Grey5) .value("Gray6", tracy::Color::Gray6) .value("Grey6", tracy::Color::Grey6) .value("Gray7", tracy::Color::Gray7) .value("Grey7", tracy::Color::Grey7) .value("Gray8", tracy::Color::Gray8) .value("Grey8", tracy::Color::Grey8) .value("Gray9", tracy::Color::Gray9) .value("Grey9", tracy::Color::Grey9) .value("Gray10", tracy::Color::Gray10) .value("Grey10", tracy::Color::Grey10) .value("Gray11", tracy::Color::Gray11) .value("Grey11", tracy::Color::Grey11) .value("Gray12", tracy::Color::Gray12) .value("Grey12", tracy::Color::Grey12) .value("Gray13", tracy::Color::Gray13) .value("Grey13", tracy::Color::Grey13) .value("Gray14", tracy::Color::Gray14) .value("Grey14", tracy::Color::Grey14) .value("Gray15", tracy::Color::Gray15) .value("Grey15", tracy::Color::Grey15) .value("Gray16", tracy::Color::Gray16) .value("Grey16", tracy::Color::Grey16) .value("Gray17", tracy::Color::Gray17) .value("Grey17", tracy::Color::Grey17) .value("Gray18", tracy::Color::Gray18) .value("Grey18", tracy::Color::Grey18) .value("Gray19", tracy::Color::Gray19) .value("Grey19", tracy::Color::Grey19) .value("Gray20", tracy::Color::Gray20) .value("Grey20", tracy::Color::Grey20) .value("Gray21", tracy::Color::Gray21) .value("Grey21", tracy::Color::Grey21) .value("Gray22", tracy::Color::Gray22) .value("Grey22", tracy::Color::Grey22) .value("Gray23", tracy::Color::Gray23) .value("Grey23", tracy::Color::Grey23) .value("Gray24", tracy::Color::Gray24) .value("Grey24", tracy::Color::Grey24) .value("Gray25", tracy::Color::Gray25) .value("Grey25", tracy::Color::Grey25) .value("Gray26", tracy::Color::Gray26) .value("Grey26", tracy::Color::Grey26) .value("Gray27", tracy::Color::Gray27) .value("Grey27", tracy::Color::Grey27) .value("Gray28", tracy::Color::Gray28) .value("Grey28", tracy::Color::Grey28) .value("Gray29", tracy::Color::Gray29) .value("Grey29", tracy::Color::Grey29) .value("Gray30", tracy::Color::Gray30) .value("Grey30", tracy::Color::Grey30) .value("Gray31", tracy::Color::Gray31) .value("Grey31", tracy::Color::Grey31) .value("Gray32", tracy::Color::Gray32) .value("Grey32", tracy::Color::Grey32) .value("Gray33", tracy::Color::Gray33) .value("Grey33", tracy::Color::Grey33) .value("Gray34", tracy::Color::Gray34) .value("Grey34", tracy::Color::Grey34) .value("Gray35", tracy::Color::Gray35) .value("Grey35", tracy::Color::Grey35) .value("Gray36", tracy::Color::Gray36) .value("Grey36", tracy::Color::Grey36) .value("Gray37", tracy::Color::Gray37) .value("Grey37", tracy::Color::Grey37) .value("Gray38", tracy::Color::Gray38) .value("Grey38", tracy::Color::Grey38) .value("Gray39", tracy::Color::Gray39) .value("Grey39", tracy::Color::Grey39) .value("Gray40", tracy::Color::Gray40) .value("Grey40", tracy::Color::Grey40) .value("Gray41", tracy::Color::Gray41) .value("Grey41", tracy::Color::Grey41) .value("Gray42", tracy::Color::Gray42) .value("Grey42", tracy::Color::Grey42) .value("Gray43", tracy::Color::Gray43) .value("Grey43", tracy::Color::Grey43) .value("Gray44", tracy::Color::Gray44) .value("Grey44", tracy::Color::Grey44) .value("Gray45", tracy::Color::Gray45) .value("Grey45", tracy::Color::Grey45) .value("Gray46", tracy::Color::Gray46) .value("Grey46", tracy::Color::Grey46) .value("Gray47", tracy::Color::Gray47) .value("Grey47", tracy::Color::Grey47) .value("Gray48", tracy::Color::Gray48) .value("Grey48", tracy::Color::Grey48) .value("Gray49", tracy::Color::Gray49) .value("Grey49", tracy::Color::Grey49) .value("Gray50", tracy::Color::Gray50) .value("Grey50", tracy::Color::Grey50) .value("Gray51", tracy::Color::Gray51) .value("Grey51", tracy::Color::Grey51) .value("Gray52", tracy::Color::Gray52) .value("Grey52", tracy::Color::Grey52) .value("Gray53", tracy::Color::Gray53) .value("Grey53", tracy::Color::Grey53) .value("Gray54", tracy::Color::Gray54) .value("Grey54", tracy::Color::Grey54) .value("Gray55", tracy::Color::Gray55) .value("Grey55", tracy::Color::Grey55) .value("Gray56", tracy::Color::Gray56) .value("Grey56", tracy::Color::Grey56) .value("Gray57", tracy::Color::Gray57) .value("Grey57", tracy::Color::Grey57) .value("Gray58", tracy::Color::Gray58) .value("Grey58", tracy::Color::Grey58) .value("Gray59", tracy::Color::Gray59) .value("Grey59", tracy::Color::Grey59) .value("Gray60", tracy::Color::Gray60) .value("Grey60", tracy::Color::Grey60) .value("Gray61", tracy::Color::Gray61) .value("Grey61", tracy::Color::Grey61) .value("Gray62", tracy::Color::Gray62) .value("Grey62", tracy::Color::Grey62) .value("Gray63", tracy::Color::Gray63) .value("Grey63", tracy::Color::Grey63) .value("Gray64", tracy::Color::Gray64) .value("Grey64", tracy::Color::Grey64) .value("Gray65", tracy::Color::Gray65) .value("Grey65", tracy::Color::Grey65) .value("Gray66", tracy::Color::Gray66) .value("Grey66", tracy::Color::Grey66) .value("Gray67", tracy::Color::Gray67) .value("Grey67", tracy::Color::Grey67) .value("Gray68", tracy::Color::Gray68) .value("Grey68", tracy::Color::Grey68) .value("Gray69", tracy::Color::Gray69) .value("Grey69", tracy::Color::Grey69) .value("Gray70", tracy::Color::Gray70) .value("Grey70", tracy::Color::Grey70) .value("Gray71", tracy::Color::Gray71) .value("Grey71", tracy::Color::Grey71) .value("Gray72", tracy::Color::Gray72) .value("Grey72", tracy::Color::Grey72) .value("Gray73", tracy::Color::Gray73) .value("Grey73", tracy::Color::Grey73) .value("Gray74", tracy::Color::Gray74) .value("Grey74", tracy::Color::Grey74) .value("Gray75", tracy::Color::Gray75) .value("Grey75", tracy::Color::Grey75) .value("Gray76", tracy::Color::Gray76) .value("Grey76", tracy::Color::Grey76) .value("Gray77", tracy::Color::Gray77) .value("Grey77", tracy::Color::Grey77) .value("Gray78", tracy::Color::Gray78) .value("Grey78", tracy::Color::Grey78) .value("Gray79", tracy::Color::Gray79) .value("Grey79", tracy::Color::Grey79) .value("Gray80", tracy::Color::Gray80) .value("Grey80", tracy::Color::Grey80) .value("Gray81", tracy::Color::Gray81) .value("Grey81", tracy::Color::Grey81) .value("Gray82", tracy::Color::Gray82) .value("Grey82", tracy::Color::Grey82) .value("Gray83", tracy::Color::Gray83) .value("Grey83", tracy::Color::Grey83) .value("Gray84", tracy::Color::Gray84) .value("Grey84", tracy::Color::Grey84) .value("Gray85", tracy::Color::Gray85) .value("Grey85", tracy::Color::Grey85) .value("Gray86", tracy::Color::Gray86) .value("Grey86", tracy::Color::Grey86) .value("Gray87", tracy::Color::Gray87) .value("Grey87", tracy::Color::Grey87) .value("Gray88", tracy::Color::Gray88) .value("Grey88", tracy::Color::Grey88) .value("Gray89", tracy::Color::Gray89) .value("Grey89", tracy::Color::Grey89) .value("Gray90", tracy::Color::Gray90) .value("Grey90", tracy::Color::Grey90) .value("Gray91", tracy::Color::Gray91) .value("Grey91", tracy::Color::Grey91) .value("Gray92", tracy::Color::Gray92) .value("Grey92", tracy::Color::Grey92) .value("Gray93", tracy::Color::Gray93) .value("Grey93", tracy::Color::Grey93) .value("Gray94", tracy::Color::Gray94) .value("Grey94", tracy::Color::Grey94) .value("Gray95", tracy::Color::Gray95) .value("Grey95", tracy::Color::Grey95) .value("Gray96", tracy::Color::Gray96) .value("Grey96", tracy::Color::Grey96) .value("Gray97", tracy::Color::Gray97) .value("Grey97", tracy::Color::Grey97) .value("Gray98", tracy::Color::Gray98) .value("Grey98", tracy::Color::Grey98) .value("Gray99", tracy::Color::Gray99) .value("Grey99", tracy::Color::Grey99) .value("Gray100", tracy::Color::Gray100) .value("Grey100", tracy::Color::Grey100) .value("DarkGrey", tracy::Color::DarkGrey) .value("DarkGray", tracy::Color::DarkGray) .value("DarkBlue", tracy::Color::DarkBlue) .value("DarkCyan", tracy::Color::DarkCyan) .value("DarkMagenta", tracy::Color::DarkMagenta) .value("DarkRed", tracy::Color::DarkRed) .value("LightGreen", tracy::Color::LightGreen) .value("Crimson", tracy::Color::Crimson) .value("Indigo", tracy::Color::Indigo) .value("Olive", tracy::Color::Olive) .value("RebeccaPurple", tracy::Color::RebeccaPurple) .value("Silver", tracy::Color::Silver) .value("Teal", tracy::Color::Teal) .export_values(); m.def( "program_name", [](const std::string &name) { if (!tracy::IsEnabled()) return true; auto entry = NameBuffer::Add(name); if (!entry.first) return false; TracySetProgramName(entry.second); return true; }, "name"_a.none(false)); m.def( "thread_name", [](const std::string &name) { if (!tracy::IsEnabled()) return; tracy::SetThreadName(name.c_str()); }, "name"_a.none(false)); m.def( "app_info", [](const std::string &text) { if (!tracy::IsEnabled()) return true; if (text.size() >= std::numeric_limits::max()) return false; TracyAppInfo(text.c_str(), text.size()); return true; }, "text"_a.none(false)); m.def( "message", [](const std::string &message) { if (!tracy::IsEnabled()) return true; if (message.size() >= std::numeric_limits::max()) return false; TracyMessage(message.c_str(), message.size()); return true; }, "message"_a.none(false)); m.def( "message", [](const std::string &message, uint32_t pColor) { if (!tracy::IsEnabled()) return true; if (message.size() >= std::numeric_limits::max()) return false; TracyMessageC(message.c_str(), message.size(), pColor); return true; }, "message"_a.none(false), "color"_a.none(false)); m.def("frame_mark", []() { FrameMark; }); m.def( "frame_mark_start", [](const std::string &name) { if (!tracy::IsEnabled()) return static_cast(0ul); auto entry = NameBuffer::Add(name); if (!entry.first) return static_cast(std::nullopt); FrameMarkStart(entry.second); return entry.first; }, "name"_a.none(false)); m.def( "frame_mark_end", [](std::size_t id) { if (!tracy::IsEnabled()) return true; auto ptr = NameBuffer::Get(id); if (!ptr) return false; FrameMarkEnd(ptr); return true; }, "name"_a.none(false)); m.def( "frame_image", [](const py::bytes &image, uint16_t width, uint16_t height, uint8_t offset = 0, bool flip = false) { if (!tracy::IsEnabled()) return true; if (width % 4 != 0 || height % 4 != 0) return false; TracyCFrameImage(std::string(image).data(), width, height, offset, flip); return true; }, "data"_a.none(false), "width"_a.none(false), "height"_a.none(false), "offset"_a.none(false) = 0, "flip"_a.none(false) = false); py::class_>(m, "_ScopedZone") .def(py::init(), "name"_a, "color"_a.none(false), "depth"_a, "active"_a.none(false), "function"_a.none(false), "file"_a.none(false), "line"_a.none(false)) .def_property_readonly("is_active", &PyScopedZone::IsActive) .def("text", &PyScopedZone::Text, "text"_a.none(false)) .def("text", &PyScopedZone::Text, "text"_a.none(false)) .def("name", &PyScopedZone::Name, "name"_a.none(false)) .def("_color", &PyScopedZone::Color, "color"_a.none(false)) .def("enter", &PyScopedZone::Enter) .def("exit", &PyScopedZone::Exit); m.def("alloc", &MemoryAllocate<>, "ptr"_a.none(false), "size"_a.none(false), "name"_a = static_cast(std::nullopt), "id"_a = static_cast(std::nullopt), "depth"_a = static_cast(std::nullopt)); m.def("alloc", &MemoryAllocate, "object"_a.none(false), "size"_a.none(false), "name"_a = static_cast(std::nullopt), "id"_a = static_cast(std::nullopt), "depth"_a = static_cast(std::nullopt)); m.def("free", &MemoryFree<>, "ptr"_a.none(false), "id"_a = static_cast(std::nullopt), "depth"_a = static_cast(std::nullopt)); m.def("free", &MemoryFree, "object"_a.none(false), "id"_a = static_cast(std::nullopt), "depth"_a = static_cast(std::nullopt)); m.def( "_plot_config", [](const std::string &name, int type, bool step, bool fill, uint32_t color = 0) { if (!tracy::IsEnabled()) return static_cast(0ul); auto entry = NameBuffer::Add(name); if (!entry.first) return static_cast(std::nullopt); TracyCPlotConfig(entry.second, type, step, fill, color); return entry.first; }, "name"_a.none(false), "type"_a.none(false), "step"_a.none(false), "fill"_a.none(false), "color"_a.none(false)); py::enum_(m, "PlotFormatType") .value("Number", tracy::PlotFormatType::Number) .value("Memory", tracy::PlotFormatType::Memory) .value("Percentage", tracy::PlotFormatType::Percentage) .export_values(); m.def( "plot", [](std::size_t id, double value) { if (!tracy::IsEnabled()) return true; auto ptr = NameBuffer::Get(id); if (!ptr) return false; TracyCPlot(ptr, value); return true; }, "id"_a.none(false), "value"_a.none(false)); m.def( "plot", [](std::size_t id, float value) { if (!tracy::IsEnabled()) return true; auto ptr = NameBuffer::Get(id); if (!ptr) return false; TracyCPlotF(ptr, value); return true; }, "id"_a.none(false), "value"_a.none(false)); m.def( "plot", [](std::size_t id, int64_t value) { if (!tracy::IsEnabled()) return true; auto ptr = NameBuffer::Get(id); if (!ptr) return false; TracyCPlotI(ptr, value); return true; }, "id"_a.none(false), "value"_a.none(false)); }