diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..d81535a --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,275 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "cc" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "libc", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chlorine" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75476fe966a8af7c0ceae2a3e514afa87d4451741fcdfab8bfaa07ad301842ec" + +[[package]] +name = "imgui" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "122d677d0efcd64ca15f12907beaf46b26bbd2cdc855ee5b227f29cf50f75bb5" +dependencies = [ + "bitflags", + "cfg-if", + "imgui-sys", + "mint", + "parking_lot 0.12.1", +] + +[[package]] +name = "imgui-sys" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d785272a57cb8058a53a1e6f376f48e2ec4f40fbc6a9bb197dabf7b6b59c03bf" +dependencies = [ + "cc", + "cfg-if", + "chlorine", + "mint", +] + +[[package]] +name = "implot" +version = "0.11.0" +dependencies = [ + "bitflags", + "imgui", + "implot-sys", + "parking_lot 0.11.2", + "rustversion", +] + +[[package]] +name = "implot-sys" +version = "0.11.0" +dependencies = [ + "cc", + "imgui-sys", + "libc", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "libc" +version = "0.2.148" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b" + +[[package]] +name = "lock_api" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "mint" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e53debba6bda7a793e5f99b8dacf19e626084f525f7829104ba9898f367d85ff" + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.6", +] + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.8", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "winapi", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.3.5", + "smallvec", + "windows-targets", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags", +] + +[[package]] +name = "rustversion" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "smallvec" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" diff --git a/Cargo.toml b/Cargo.toml index 9a9d6b2..c0f0d94 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "implot" -version = "0.6.0" +version = "0.11.0" edition = "2018" authors = ["Sandro Merkli", "implot-rs contributors"] description = "Rust bindings to https://github.com/epezent/implot" @@ -11,8 +11,8 @@ categories = ["gui", "api-bindings"] readme = "README.md" [dependencies] -implot-sys = { version = "0.6.0", path = "implot-sys" } -imgui = { version = "0.8.0" } +implot-sys = { version = "0.11.0", path = "implot-sys" } +imgui = { version = "0.11.0", features = ["docking"] } bitflags = "1.0" parking_lot = "0.11" rustversion = "1.0.4" diff --git a/implot-sys-bindgen/Cargo.lock b/implot-sys-bindgen/Cargo.lock new file mode 100644 index 0000000..3dff508 --- /dev/null +++ b/implot-sys-bindgen/Cargo.lock @@ -0,0 +1,380 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "aho-corasick" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea5d730647d4fadd988536d06fecce94b7b4f2a7efdae548f1cf4b63205518ab" +dependencies = [ + "memchr", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi", +] + +[[package]] +name = "bindgen" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd4865004a46a0aafb2a0a5eb19d3c9fc46ee5f063a6cfc605c69ac9ecf5263d" +dependencies = [ + "bitflags", + "cexpr", + "clang-sys", + "clap", + "env_logger", + "lazy_static", + "lazycell", + "log", + "peeking_take_while", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "which", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "cc" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "libc", +] + +[[package]] +name = "cexpr" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chlorine" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75476fe966a8af7c0ceae2a3e514afa87d4451741fcdfab8bfaa07ad301842ec" + +[[package]] +name = "clang-sys" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "clap" +version = "2.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +dependencies = [ + "ansi_term", + "atty", + "bitflags", + "strsim", + "textwrap", + "unicode-width", + "vec_map", +] + +[[package]] +name = "env_logger" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3" +dependencies = [ + "atty", + "humantime", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "imgui-sys" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d785272a57cb8058a53a1e6f376f48e2ec4f40fbc6a9bb197dabf7b6b59c03bf" +dependencies = [ + "cc", + "cfg-if", + "chlorine", + "mint", +] + +[[package]] +name = "implot-sys-bindgen" +version = "0.3.0" +dependencies = [ + "bindgen", + "imgui-sys", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "libc" +version = "0.2.148" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b" + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "memchr" +version = "2.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c" + +[[package]] +name = "mint" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e53debba6bda7a793e5f99b8dacf19e626084f525f7829104ba9898f367d85ff" + +[[package]] +name = "nom" +version = "5.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08959a387a676302eebf4ddbcbc611da04285579f76f88ee0506c63b1a61dd4b" +dependencies = [ + "memchr", + "version_check", +] + +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + +[[package]] +name = "proc-macro2" +version = "1.0.67" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "regex" +version = "1.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "shlex" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" + +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + +[[package]] +name = "termcolor" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-width" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "which" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d011071ae14a2f6671d0b74080ae0cd8ebf3a6f8c9589a2cd45f23126fe29724" +dependencies = [ + "libc", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" diff --git a/implot-sys-bindgen/Cargo.toml b/implot-sys-bindgen/Cargo.toml index e024f0a..d8a4138 100644 --- a/implot-sys-bindgen/Cargo.toml +++ b/implot-sys-bindgen/Cargo.toml @@ -6,4 +6,4 @@ edition = "2018" [dependencies] bindgen = "0.57" -imgui-sys = { version = "0.8.0" } +imgui-sys = { version = "0.11.0", features = ["docking"] } diff --git a/implot-sys-bindgen/src/main.rs b/implot-sys-bindgen/src/main.rs index 9e52ba7..89165b4 100644 --- a/implot-sys-bindgen/src/main.rs +++ b/implot-sys-bindgen/src/main.rs @@ -6,67 +6,88 @@ use std::{env, io::Write, path::PathBuf}; // to git so people don't have to install clang just to use implot-rs. fn main() { - let cwd = env::current_dir().expect("Could not read current directory"); - let sys_crate_path = cwd - .join("..") - .join("implot-sys") - .canonicalize() - .expect("Could not find sys crate directory"); + let cwd = env::current_dir().expect("Could not read current directory"); + let sys_crate_path = cwd + .join("..") + .join("implot-sys") + .canonicalize() + .expect("Could not find sys crate directory"); - let cimgui_include_path = PathBuf::from( - env::var_os("DEP_IMGUI_THIRD_PARTY").expect("DEP_IMGUI_THIRD_PARTY not defined"), - ); + let cimgui_include_path = PathBuf::from( + env::var_os("DEP_IMGUI_THIRD_PARTY").expect("DEP_IMGUI_THIRD_PARTY not defined"), + ); - let bindings = Builder::default() - .header( - cimgui_include_path - .join("cimgui.h") - .to_str() - .expect("Could not convert cimgui.h path to string"), - ) - .header( - sys_crate_path - .join("third-party") - .join("cimplot") - .join("cimplot.h") - .to_str() - .expect("Could not turn cimplot.h path into string"), - ) - .parse_callbacks(Box::new(CargoCallbacks)) - .clang_arg("-DCIMGUI_DEFINE_ENUMS_AND_STRUCTS=1") - // Reuse the imgui types that implot requires from imgui_sys so we don't define - // our own new types. - .raw_line("pub use imgui_sys::{ImVec2, ImVec4, ImGuiCond, ImTextureID};") - .raw_line("pub use imgui_sys::{ImGuiContext, ImGuiKeyModFlags, ImDrawList};") - .raw_line("pub use imgui_sys::{ImGuiMouseButton, ImGuiDragDropFlags};") - .whitelist_recursively(false) - .whitelist_function("ImPlot.*") - .whitelist_type("ImPlot.*") - // We do want to create bindings for the scalar typedefs - .whitelist_type("Im[U|S][0-9]{1,2}") - // Remove some functions that would take a variable-argument list - .blacklist_function("ImPlot_AnnotateVVec4") - .blacklist_function("ImPlot_AnnotateVStr") - .blacklist_function("ImPlot_AnnotateClampedVVec4") - .blacklist_function("ImPlot_AnnotateClampedVStr") - .generate() - .expect("Unable to generate bindings"); + println!("{}", cimgui_include_path.display()); - // The above type re-export shenanigans make bindgen unable to derive Copy, Clone and Debug on - // some types, but they would work - we hence manually re-add them here. - let mut bindings_string = bindings.to_string(); - ["ImPlotInputMap", "ImPlotStyle"].iter().for_each(|name| { - bindings_string = bindings_string.replace( - &format!("pub struct {}", name), - &format!("#[derive(Clone, Copy, Debug)]\npub struct {}", name), - ); - }); + let bindings = Builder::default() + .header( + cimgui_include_path + .join("cimgui.h") + .to_str() + .expect("Could not convert cimgui.h path to string"), + ) + .header( + sys_crate_path + .join("third-party") + .join("cimplot") + .join("cimplot.h") + .to_str() + .expect("Could not turn cimplot.h path into string"), + ) + .parse_callbacks(Box::new(CargoCallbacks)) + .clang_arg("-DCIMGUI_DEFINE_ENUMS_AND_STRUCTS=1") + .clang_arg(format!("-I{}", cimgui_include_path.display())) + // Reuse the imgui types that implot requires from imgui_sys so we don't define + // our own new types. + .raw_line("pub use imgui_sys::{ImVec2, ImVector_ImU32, ImVec4, ImGuiCond, ImTextureID};") + .raw_line("pub use imgui_sys::{ImGuiTextBuffer, ImGuiStorage, ImWchar, ImGuiTextRange};") + .raw_line("pub use imgui_sys::{ImGuiStoragePair, ImDrawCmd, *};") + .raw_line("pub use imgui_sys::{ImGuiContext, ImGuiKey, ImDrawList};") + .raw_line("pub use imgui_sys::{ImGuiMouseButton, ImGuiDragDropFlags};") + .raw_line("use libc::time_t;") + .whitelist_recursively(false) + .whitelist_function("ImPlot.*") + .whitelist_type("ImPlot.*") + // We do want to create bindings for the scalar typedefs + .whitelist_type("Im[U|S][0-9]{1,2}") + .whitelist_type("ImAxis") + .whitelist_var("ImAxis_") + .whitelist_type("ImPool_.+") + .whitelist_type("ImVector_.+") + .whitelist_type("tm") + // Remove some functions that would take a variable-argument list + .blacklist_function("ImPlot_AnnotateVVec4") + .blacklist_function("ImPlot_AnnotateVStr") + .blacklist_function("ImPlot_AnnotateClampedVVec4") + .blacklist_function("ImPlot_AnnotateClampedVStr") + .blacklist_type("ImVector_ImU32") + .blacklist_function("ImPlot_MkGmtTime") + .blacklist_function("ImPlot_GetGmtTime") + .blacklist_function("ImPlot_MkLocTime") + .blacklist_function("ImPlot_GetLocTime") + .blacklist_function("ImPlot_AnnotationV") + .blacklist_function("ImPlot_TagXV") + .blacklist_function("ImPlot_TagYV") + .blacklist_function("ImPlotAnnotationCollection_AppendV") + .blacklist_function("ImPlotTagCollection_AppendV") + .generate() + .expect("Unable to generate bindings"); - // Finally we write the bindings to a file. - let out_path = sys_crate_path.join("src"); - let mut out_file = - std::fs::File::create(&out_path.join("bindings.rs")).expect("Could not open bindings file"); - out_file - .write_all(&bindings_string.into_bytes()[..]) - .expect("Couldn't write bindings"); + // The above type re-export shenanigans make bindgen unable to derive Copy, Clone and Debug on + // some types, but they would work - we hence manually re-add them here. + let mut bindings_string = bindings.to_string(); + ["ImPlotInputMap", "ImPlotStyle"].iter().for_each(|name| { + bindings_string = bindings_string.replace( + &format!("pub struct {}", name), + &format!("#[derive(Clone, Copy, Debug)]\npub struct {}", name), + ); + }); + + // Finally we write the bindings to a file. + let out_path = sys_crate_path.join("src"); + let mut out_file = + std::fs::File::create(&out_path.join("bindings.rs")).expect("Could not open bindings file"); + out_file + .write_all(&bindings_string.into_bytes()[..]) + .expect("Couldn't write bindings"); } diff --git a/implot-sys/Cargo.toml b/implot-sys/Cargo.toml index 749f284..3c5a7f1 100644 --- a/implot-sys/Cargo.toml +++ b/implot-sys/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "implot-sys" -version = "0.6.0" +version = "0.11.0" edition = "2018" authors = ["Sandro Merkli", "implot-rs contributors"] description = "Raw FFI bindings to implot" @@ -12,7 +12,8 @@ build = "build.rs" links = "implot" [dependencies] -imgui-sys = "0.8.0" +imgui-sys = { version = "0.11.0", features = ["docking"] } +libc = "0.2.148" [build-dependencies] cc = "1.0" diff --git a/implot-sys/src/bindings.rs b/implot-sys/src/bindings.rs index 102f59f..4ffb67f 100644 --- a/implot-sys/src/bindings.rs +++ b/implot-sys/src/bindings.rs @@ -1,59 +1,3416 @@ /* automatically generated by rust-bindgen 0.57.0 */ -pub use imgui_sys::{ImVec2, ImVec4, ImGuiCond, ImTextureID}; -pub use imgui_sys::{ImGuiContext, ImGuiKeyModFlags, ImDrawList}; +pub use imgui_sys::{ImVec2, ImVector_ImU32, ImVec4, ImGuiCond, ImTextureID}; +pub use imgui_sys::{ImGuiTextBuffer, ImGuiStorage, ImWchar, ImGuiTextRange}; +pub use imgui_sys::{ImGuiStoragePair, ImDrawCmd, *}; +pub use imgui_sys::{ImGuiContext, ImGuiKey, ImDrawList}; pub use imgui_sys::{ImGuiMouseButton, ImGuiDragDropFlags}; +use libc::time_t; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_const_charPtr { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut *const ::std::os::raw::c_char, +} +#[test] +fn bindgen_test_layout_ImVector_const_charPtr() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_const_charPtr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_const_charPtr)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_const_charPtr), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_const_charPtr), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_const_charPtr), + "::", + stringify!(Data) + ) + ); +} pub type ImS8 = ::std::os::raw::c_schar; pub type ImU8 = ::std::os::raw::c_uchar; pub type ImS16 = ::std::os::raw::c_short; pub type ImU16 = ::std::os::raw::c_ushort; pub type ImS32 = ::std::os::raw::c_int; pub type ImU32 = ::std::os::raw::c_uint; -pub type ImS64 = i64; -pub type ImU64 = u64; +pub type ImS64 = ::std::os::raw::c_longlong; +pub type ImU64 = ::std::os::raw::c_ulonglong; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct ImPlotContext { - _unused: [u8; 0], +pub struct ImVector_ImWchar { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImWchar, } +#[test] +fn bindgen_test_layout_ImVector_ImWchar() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImWchar)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImWchar)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImWchar), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImWchar), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImWchar), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiTextRange { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiTextRange, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiTextRange() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiTextRange)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiTextRange)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiTextRange), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiTextRange), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiTextRange), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_char { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ::std::os::raw::c_char, +} +#[test] +fn bindgen_test_layout_ImVector_char() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_char)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_char)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_char), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_char), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_char), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiStoragePair { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiStoragePair, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiStoragePair() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiStoragePair)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiStoragePair)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiStoragePair), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiStoragePair), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiStoragePair), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImDrawCmd { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImDrawCmd, +} +#[test] +fn bindgen_test_layout_ImVector_ImDrawCmd() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImDrawCmd)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImDrawCmd)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImDrawCmd), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImDrawCmd), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImDrawCmd), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImDrawIdx { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImDrawIdx, +} +#[test] +fn bindgen_test_layout_ImVector_ImDrawIdx() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImDrawIdx)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImDrawIdx)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImDrawIdx), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImDrawIdx), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImDrawIdx), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImDrawChannel { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImDrawChannel, +} +#[test] +fn bindgen_test_layout_ImVector_ImDrawChannel() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImDrawChannel)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImDrawChannel)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImDrawChannel), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImDrawChannel), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImDrawChannel), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImDrawVert { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImDrawVert, +} +#[test] +fn bindgen_test_layout_ImVector_ImDrawVert() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImDrawVert)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImDrawVert)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImDrawVert), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImDrawVert), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImDrawVert), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImVec4 { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImVec4, +} +#[test] +fn bindgen_test_layout_ImVector_ImVec4() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImVec4)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImVec4)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImVec4), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImVec4), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImVec4), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImTextureID { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImTextureID, +} +#[test] +fn bindgen_test_layout_ImVector_ImTextureID() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImTextureID)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImTextureID)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImTextureID), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImTextureID), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImTextureID), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImVec2 { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImVec2, +} +#[test] +fn bindgen_test_layout_ImVector_ImVec2() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImVec2)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImVec2)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImVec2), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImVec2), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImVec2), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImFontPtr { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut *mut ImFont, +} +#[test] +fn bindgen_test_layout_ImVector_ImFontPtr() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImFontPtr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImFontPtr)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImFontPtr), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImFontPtr), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImFontPtr), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImFontAtlasCustomRect { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImFontAtlasCustomRect, +} +#[test] +fn bindgen_test_layout_ImVector_ImFontAtlasCustomRect() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImFontAtlasCustomRect)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImFontAtlasCustomRect)) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Size as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImFontAtlasCustomRect), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImFontAtlasCustomRect), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Data as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImFontAtlasCustomRect), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImFontConfig { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImFontConfig, +} +#[test] +fn bindgen_test_layout_ImVector_ImFontConfig() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImFontConfig)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImFontConfig)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImFontConfig), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImFontConfig), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImFontConfig), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_float { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut f32, +} +#[test] +fn bindgen_test_layout_ImVector_float() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_float)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_float)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_float), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_float), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_float), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImFontGlyph { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImFontGlyph, +} +#[test] +fn bindgen_test_layout_ImVector_ImFontGlyph() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImFontGlyph)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImFontGlyph)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImFontGlyph), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImFontGlyph), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImFontGlyph), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiPlatformMonitor { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiPlatformMonitor, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiPlatformMonitor() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiPlatformMonitor)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiPlatformMonitor)) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Size as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiPlatformMonitor), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiPlatformMonitor), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Data as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiPlatformMonitor), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiViewportPtr { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut *mut ImGuiViewport, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiViewportPtr() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiViewportPtr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiViewportPtr)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiViewportPtr), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiViewportPtr), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiViewportPtr), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_int { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout_ImVector_int() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_int)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_int)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_int), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_int), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_int), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImDrawListPtr { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut *mut ImDrawList, +} +#[test] +fn bindgen_test_layout_ImVector_ImDrawListPtr() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImDrawListPtr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImDrawListPtr)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImDrawListPtr), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImDrawListPtr), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImDrawListPtr), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiKeyRoutingData { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiKeyRoutingData, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiKeyRoutingData() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiKeyRoutingData)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiKeyRoutingData)) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Size as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiKeyRoutingData), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiKeyRoutingData), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Data as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiKeyRoutingData), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiListClipperRange { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiListClipperRange, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiListClipperRange() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiListClipperRange)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiListClipperRange)) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Size as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiListClipperRange), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiListClipperRange), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Data as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiListClipperRange), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiOldColumnData { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiOldColumnData, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiOldColumnData() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiOldColumnData)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiOldColumnData)) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Size as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiOldColumnData), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiOldColumnData), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Data as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiOldColumnData), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiWindowPtr { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut *mut ImGuiWindow, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiWindowPtr() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiWindowPtr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiWindowPtr)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiWindowPtr), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiWindowPtr), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiWindowPtr), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiDockRequest { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiDockRequest, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiDockRequest() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiDockRequest)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiDockRequest)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiDockRequest), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiDockRequest), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiDockRequest), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiDockNodeSettings { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiDockNodeSettings, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiDockNodeSettings() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiDockNodeSettings)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiDockNodeSettings)) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Size as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiDockNodeSettings), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiDockNodeSettings), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Data as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiDockNodeSettings), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiStackLevelInfo { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiStackLevelInfo, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiStackLevelInfo() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiStackLevelInfo)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiStackLevelInfo)) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Size as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiStackLevelInfo), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiStackLevelInfo), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Data as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiStackLevelInfo), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiInputEvent { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiInputEvent, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiInputEvent() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiInputEvent)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiInputEvent)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiInputEvent), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiInputEvent), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiInputEvent), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiWindowStackData { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiWindowStackData, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiWindowStackData() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiWindowStackData)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiWindowStackData)) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Size as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiWindowStackData), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiWindowStackData), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Data as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiWindowStackData), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiColorMod { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiColorMod, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiColorMod() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiColorMod)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiColorMod)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiColorMod), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiColorMod), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiColorMod), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiStyleMod { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiStyleMod, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiStyleMod() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiStyleMod)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiStyleMod)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiStyleMod), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiStyleMod), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiStyleMod), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiID { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiID, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiID() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiID)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiID)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiID), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiID), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiID), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiItemFlags { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiItemFlags, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiItemFlags() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiItemFlags)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiItemFlags)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiItemFlags), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiItemFlags), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiItemFlags), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiGroupData { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiGroupData, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiGroupData() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiGroupData)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiGroupData)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiGroupData), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiGroupData), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiGroupData), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiPopupData { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiPopupData, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiPopupData() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiPopupData)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiPopupData)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiPopupData), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiPopupData), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiPopupData), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiViewportPPtr { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut *mut ImGuiViewportP, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiViewportPPtr() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiViewportPPtr)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiViewportPPtr)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiViewportPPtr), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiViewportPPtr), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiViewportPPtr), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_unsigned_char { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ::std::os::raw::c_uchar, +} +#[test] +fn bindgen_test_layout_ImVector_unsigned_char() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_unsigned_char)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_unsigned_char)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_unsigned_char), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_unsigned_char), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_unsigned_char), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiListClipperData { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiListClipperData, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiListClipperData() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiListClipperData)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiListClipperData)) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Size as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiListClipperData), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiListClipperData), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Data as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiListClipperData), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiTableTempData { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiTableTempData, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiTableTempData() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiTableTempData)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiTableTempData)) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Size as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiTableTempData), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiTableTempData), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Data as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiTableTempData), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiTable { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiTable, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiTable() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiTable)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiTable)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiTable), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiTable), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiTable), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +pub struct ImPool_ImGuiTable { + pub Buf: ImVector_ImGuiTable, + pub Map: ImGuiStorage, + pub FreeIdx: ImPoolIdx, + pub AliveCount: ImPoolIdx, +} +#[test] +fn bindgen_test_layout_ImPool_ImGuiTable() { + assert_eq!( + ::std::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(ImPool_ImGuiTable)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImPool_ImGuiTable)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Buf as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPool_ImGuiTable), + "::", + stringify!(Buf) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Map as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ImPool_ImGuiTable), + "::", + stringify!(Map) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).FreeIdx as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(ImPool_ImGuiTable), + "::", + stringify!(FreeIdx) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).AliveCount as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(ImPool_ImGuiTable), + "::", + stringify!(AliveCount) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiTabBar { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiTabBar, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiTabBar() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiTabBar)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiTabBar)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiTabBar), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiTabBar), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiTabBar), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +pub struct ImPool_ImGuiTabBar { + pub Buf: ImVector_ImGuiTabBar, + pub Map: ImGuiStorage, + pub FreeIdx: ImPoolIdx, + pub AliveCount: ImPoolIdx, +} +#[test] +fn bindgen_test_layout_ImPool_ImGuiTabBar() { + assert_eq!( + ::std::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(ImPool_ImGuiTabBar)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImPool_ImGuiTabBar)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Buf as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPool_ImGuiTabBar), + "::", + stringify!(Buf) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Map as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ImPool_ImGuiTabBar), + "::", + stringify!(Map) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).FreeIdx as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(ImPool_ImGuiTabBar), + "::", + stringify!(FreeIdx) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).AliveCount as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(ImPool_ImGuiTabBar), + "::", + stringify!(AliveCount) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiPtrOrIndex { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiPtrOrIndex, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiPtrOrIndex() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiPtrOrIndex)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiPtrOrIndex)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiPtrOrIndex), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiPtrOrIndex), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiPtrOrIndex), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiShrinkWidthItem { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiShrinkWidthItem, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiShrinkWidthItem() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiShrinkWidthItem)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiShrinkWidthItem)) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Size as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiShrinkWidthItem), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiShrinkWidthItem), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Data as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiShrinkWidthItem), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiSettingsHandler { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiSettingsHandler, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiSettingsHandler() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiSettingsHandler)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiSettingsHandler)) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Size as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiSettingsHandler), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiSettingsHandler), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Data as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiSettingsHandler), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiContextHook { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiContextHook, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiContextHook() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiContextHook)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiContextHook)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiContextHook), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiContextHook), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiContextHook), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiOldColumns { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiOldColumns, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiOldColumns() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiOldColumns)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiOldColumns)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiOldColumns), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiOldColumns), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiOldColumns), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiTabItem { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiTabItem, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiTabItem() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiTabItem)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiTabItem)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiTabItem), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiTabItem), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiTabItem), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiTableInstanceData { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiTableInstanceData, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiTableInstanceData() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiTableInstanceData)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImGuiTableInstanceData)) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Size as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiTableInstanceData), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ + as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiTableInstanceData), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Data as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiTableInstanceData), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImGuiTableColumnSortSpecs { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImGuiTableColumnSortSpecs, +} +#[test] +fn bindgen_test_layout_ImVector_ImGuiTableColumnSortSpecs() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImGuiTableColumnSortSpecs)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(ImVector_ImGuiTableColumnSortSpecs) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Size as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiTableColumnSortSpecs), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ + as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiTableColumnSortSpecs), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Data as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImGuiTableColumnSortSpecs), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct tm { + pub tm_sec: ::std::os::raw::c_int, + pub tm_min: ::std::os::raw::c_int, + pub tm_hour: ::std::os::raw::c_int, + pub tm_mday: ::std::os::raw::c_int, + pub tm_mon: ::std::os::raw::c_int, + pub tm_year: ::std::os::raw::c_int, + pub tm_wday: ::std::os::raw::c_int, + pub tm_yday: ::std::os::raw::c_int, + pub tm_isdst: ::std::os::raw::c_int, + pub tm_gmtoff: ::std::os::raw::c_long, + pub tm_zone: *const ::std::os::raw::c_char, +} +#[test] +fn bindgen_test_layout_tm() { + assert_eq!( + ::std::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(tm)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(tm)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).tm_sec as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(tm), + "::", + stringify!(tm_sec) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).tm_min as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(tm), + "::", + stringify!(tm_min) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).tm_hour as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(tm), + "::", + stringify!(tm_hour) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).tm_mday as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(tm), + "::", + stringify!(tm_mday) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).tm_mon as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(tm), + "::", + stringify!(tm_mon) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).tm_year as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(tm), + "::", + stringify!(tm_year) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).tm_wday as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(tm), + "::", + stringify!(tm_wday) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).tm_yday as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(tm), + "::", + stringify!(tm_yday) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).tm_isdst as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(tm), + "::", + stringify!(tm_isdst) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).tm_gmtoff as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(tm), + "::", + stringify!(tm_gmtoff) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).tm_zone as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(tm), + "::", + stringify!(tm_zone) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImPlotAxisColor { + _unused: [u8; 0], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImS16 { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImS16, +} +#[test] +fn bindgen_test_layout_ImVector_ImS16() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImS16)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImS16)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImS16), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImS16), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImS16), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImS32 { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImS32, +} +#[test] +fn bindgen_test_layout_ImVector_ImS32() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImS32)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImS32)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImS32), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImS32), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImS32), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImS64 { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImS64, +} +#[test] +fn bindgen_test_layout_ImVector_ImS64() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImS64)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImS64)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImS64), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImS64), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImS64), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImS8 { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImS8, +} +#[test] +fn bindgen_test_layout_ImVector_ImS8() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImS8)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImS8)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImS8), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImS8), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImS8), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImU16 { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImU16, +} +#[test] +fn bindgen_test_layout_ImVector_ImU16() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImU16)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImU16)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImU16), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImU16), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImU16), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImU64 { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImU64, +} +#[test] +fn bindgen_test_layout_ImVector_ImU64() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImU64)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImU64)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImU64), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImU64), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImU64), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImU8 { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImU8, +} +#[test] +fn bindgen_test_layout_ImVector_ImU8() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImU8)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImU8)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImU8), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImU8), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImU8), + "::", + stringify!(Data) + ) + ); +} +pub type ImAxis = ::std::os::raw::c_int; pub type ImPlotFlags = ::std::os::raw::c_int; pub type ImPlotAxisFlags = ::std::os::raw::c_int; +pub type ImPlotSubplotFlags = ::std::os::raw::c_int; +pub type ImPlotLegendFlags = ::std::os::raw::c_int; +pub type ImPlotMouseTextFlags = ::std::os::raw::c_int; +pub type ImPlotDragToolFlags = ::std::os::raw::c_int; +pub type ImPlotColormapScaleFlags = ::std::os::raw::c_int; +pub type ImPlotItemFlags = ::std::os::raw::c_int; +pub type ImPlotLineFlags = ::std::os::raw::c_int; +pub type ImPlotScatterFlags = ::std::os::raw::c_int; +pub type ImPlotStairsFlags = ::std::os::raw::c_int; +pub type ImPlotShadedFlags = ::std::os::raw::c_int; +pub type ImPlotBarsFlags = ::std::os::raw::c_int; +pub type ImPlotBarGroupsFlags = ::std::os::raw::c_int; +pub type ImPlotErrorBarsFlags = ::std::os::raw::c_int; +pub type ImPlotStemsFlags = ::std::os::raw::c_int; +pub type ImPlotInfLinesFlags = ::std::os::raw::c_int; +pub type ImPlotPieChartFlags = ::std::os::raw::c_int; +pub type ImPlotHeatmapFlags = ::std::os::raw::c_int; +pub type ImPlotHistogramFlags = ::std::os::raw::c_int; +pub type ImPlotDigitalFlags = ::std::os::raw::c_int; +pub type ImPlotImageFlags = ::std::os::raw::c_int; +pub type ImPlotTextFlags = ::std::os::raw::c_int; +pub type ImPlotDummyFlags = ::std::os::raw::c_int; +pub type ImPlotCond = ::std::os::raw::c_int; pub type ImPlotCol = ::std::os::raw::c_int; pub type ImPlotStyleVar = ::std::os::raw::c_int; +pub type ImPlotScale = ::std::os::raw::c_int; pub type ImPlotMarker = ::std::os::raw::c_int; pub type ImPlotColormap = ::std::os::raw::c_int; pub type ImPlotLocation = ::std::os::raw::c_int; -pub type ImPlotOrientation = ::std::os::raw::c_int; -pub type ImPlotYAxis = ::std::os::raw::c_int; +pub type ImPlotBin = ::std::os::raw::c_int; pub const ImPlotFlags__ImPlotFlags_None: ImPlotFlags_ = 0; pub const ImPlotFlags__ImPlotFlags_NoTitle: ImPlotFlags_ = 1; pub const ImPlotFlags__ImPlotFlags_NoLegend: ImPlotFlags_ = 2; -pub const ImPlotFlags__ImPlotFlags_NoMenus: ImPlotFlags_ = 4; -pub const ImPlotFlags__ImPlotFlags_NoBoxSelect: ImPlotFlags_ = 8; -pub const ImPlotFlags__ImPlotFlags_NoMousePos: ImPlotFlags_ = 16; -pub const ImPlotFlags__ImPlotFlags_NoHighlight: ImPlotFlags_ = 32; +pub const ImPlotFlags__ImPlotFlags_NoMouseText: ImPlotFlags_ = 4; +pub const ImPlotFlags__ImPlotFlags_NoInputs: ImPlotFlags_ = 8; +pub const ImPlotFlags__ImPlotFlags_NoMenus: ImPlotFlags_ = 16; +pub const ImPlotFlags__ImPlotFlags_NoBoxSelect: ImPlotFlags_ = 32; pub const ImPlotFlags__ImPlotFlags_NoChild: ImPlotFlags_ = 64; -pub const ImPlotFlags__ImPlotFlags_Equal: ImPlotFlags_ = 128; -pub const ImPlotFlags__ImPlotFlags_YAxis2: ImPlotFlags_ = 256; -pub const ImPlotFlags__ImPlotFlags_YAxis3: ImPlotFlags_ = 512; -pub const ImPlotFlags__ImPlotFlags_Query: ImPlotFlags_ = 1024; -pub const ImPlotFlags__ImPlotFlags_Crosshairs: ImPlotFlags_ = 2048; -pub const ImPlotFlags__ImPlotFlags_AntiAliased: ImPlotFlags_ = 4096; -pub const ImPlotFlags__ImPlotFlags_CanvasOnly: ImPlotFlags_ = 31; +pub const ImPlotFlags__ImPlotFlags_NoFrame: ImPlotFlags_ = 128; +pub const ImPlotFlags__ImPlotFlags_Equal: ImPlotFlags_ = 256; +pub const ImPlotFlags__ImPlotFlags_Crosshairs: ImPlotFlags_ = 512; +pub const ImPlotFlags__ImPlotFlags_CanvasOnly: ImPlotFlags_ = 55; pub type ImPlotFlags_ = ::std::os::raw::c_uint; pub const ImPlotAxisFlags__ImPlotAxisFlags_None: ImPlotAxisFlags_ = 0; -pub const ImPlotAxisFlags__ImPlotAxisFlags_NoGridLines: ImPlotAxisFlags_ = 1; -pub const ImPlotAxisFlags__ImPlotAxisFlags_NoTickMarks: ImPlotAxisFlags_ = 2; -pub const ImPlotAxisFlags__ImPlotAxisFlags_NoTickLabels: ImPlotAxisFlags_ = 4; -pub const ImPlotAxisFlags__ImPlotAxisFlags_LogScale: ImPlotAxisFlags_ = 8; -pub const ImPlotAxisFlags__ImPlotAxisFlags_Time: ImPlotAxisFlags_ = 16; -pub const ImPlotAxisFlags__ImPlotAxisFlags_Invert: ImPlotAxisFlags_ = 32; -pub const ImPlotAxisFlags__ImPlotAxisFlags_LockMin: ImPlotAxisFlags_ = 64; -pub const ImPlotAxisFlags__ImPlotAxisFlags_LockMax: ImPlotAxisFlags_ = 128; -pub const ImPlotAxisFlags__ImPlotAxisFlags_Lock: ImPlotAxisFlags_ = 192; -pub const ImPlotAxisFlags__ImPlotAxisFlags_NoDecorations: ImPlotAxisFlags_ = 7; +pub const ImPlotAxisFlags__ImPlotAxisFlags_NoLabel: ImPlotAxisFlags_ = 1; +pub const ImPlotAxisFlags__ImPlotAxisFlags_NoGridLines: ImPlotAxisFlags_ = 2; +pub const ImPlotAxisFlags__ImPlotAxisFlags_NoTickMarks: ImPlotAxisFlags_ = 4; +pub const ImPlotAxisFlags__ImPlotAxisFlags_NoTickLabels: ImPlotAxisFlags_ = 8; +pub const ImPlotAxisFlags__ImPlotAxisFlags_NoInitialFit: ImPlotAxisFlags_ = 16; +pub const ImPlotAxisFlags__ImPlotAxisFlags_NoMenus: ImPlotAxisFlags_ = 32; +pub const ImPlotAxisFlags__ImPlotAxisFlags_NoSideSwitch: ImPlotAxisFlags_ = 64; +pub const ImPlotAxisFlags__ImPlotAxisFlags_NoHighlight: ImPlotAxisFlags_ = 128; +pub const ImPlotAxisFlags__ImPlotAxisFlags_Opposite: ImPlotAxisFlags_ = 256; +pub const ImPlotAxisFlags__ImPlotAxisFlags_Foreground: ImPlotAxisFlags_ = 512; +pub const ImPlotAxisFlags__ImPlotAxisFlags_Invert: ImPlotAxisFlags_ = 1024; +pub const ImPlotAxisFlags__ImPlotAxisFlags_AutoFit: ImPlotAxisFlags_ = 2048; +pub const ImPlotAxisFlags__ImPlotAxisFlags_RangeFit: ImPlotAxisFlags_ = 4096; +pub const ImPlotAxisFlags__ImPlotAxisFlags_PanStretch: ImPlotAxisFlags_ = 8192; +pub const ImPlotAxisFlags__ImPlotAxisFlags_LockMin: ImPlotAxisFlags_ = 16384; +pub const ImPlotAxisFlags__ImPlotAxisFlags_LockMax: ImPlotAxisFlags_ = 32768; +pub const ImPlotAxisFlags__ImPlotAxisFlags_Lock: ImPlotAxisFlags_ = 49152; +pub const ImPlotAxisFlags__ImPlotAxisFlags_NoDecorations: ImPlotAxisFlags_ = 15; +pub const ImPlotAxisFlags__ImPlotAxisFlags_AuxDefault: ImPlotAxisFlags_ = 258; pub type ImPlotAxisFlags_ = ::std::os::raw::c_uint; +pub const ImPlotSubplotFlags__ImPlotSubplotFlags_None: ImPlotSubplotFlags_ = 0; +pub const ImPlotSubplotFlags__ImPlotSubplotFlags_NoTitle: ImPlotSubplotFlags_ = 1; +pub const ImPlotSubplotFlags__ImPlotSubplotFlags_NoLegend: ImPlotSubplotFlags_ = 2; +pub const ImPlotSubplotFlags__ImPlotSubplotFlags_NoMenus: ImPlotSubplotFlags_ = 4; +pub const ImPlotSubplotFlags__ImPlotSubplotFlags_NoResize: ImPlotSubplotFlags_ = 8; +pub const ImPlotSubplotFlags__ImPlotSubplotFlags_NoAlign: ImPlotSubplotFlags_ = 16; +pub const ImPlotSubplotFlags__ImPlotSubplotFlags_ShareItems: ImPlotSubplotFlags_ = 32; +pub const ImPlotSubplotFlags__ImPlotSubplotFlags_LinkRows: ImPlotSubplotFlags_ = 64; +pub const ImPlotSubplotFlags__ImPlotSubplotFlags_LinkCols: ImPlotSubplotFlags_ = 128; +pub const ImPlotSubplotFlags__ImPlotSubplotFlags_LinkAllX: ImPlotSubplotFlags_ = 256; +pub const ImPlotSubplotFlags__ImPlotSubplotFlags_LinkAllY: ImPlotSubplotFlags_ = 512; +pub const ImPlotSubplotFlags__ImPlotSubplotFlags_ColMajor: ImPlotSubplotFlags_ = 1024; +pub type ImPlotSubplotFlags_ = ::std::os::raw::c_uint; +pub const ImPlotLegendFlags__ImPlotLegendFlags_None: ImPlotLegendFlags_ = 0; +pub const ImPlotLegendFlags__ImPlotLegendFlags_NoButtons: ImPlotLegendFlags_ = 1; +pub const ImPlotLegendFlags__ImPlotLegendFlags_NoHighlightItem: ImPlotLegendFlags_ = 2; +pub const ImPlotLegendFlags__ImPlotLegendFlags_NoHighlightAxis: ImPlotLegendFlags_ = 4; +pub const ImPlotLegendFlags__ImPlotLegendFlags_NoMenus: ImPlotLegendFlags_ = 8; +pub const ImPlotLegendFlags__ImPlotLegendFlags_Outside: ImPlotLegendFlags_ = 16; +pub const ImPlotLegendFlags__ImPlotLegendFlags_Horizontal: ImPlotLegendFlags_ = 32; +pub const ImPlotLegendFlags__ImPlotLegendFlags_Sort: ImPlotLegendFlags_ = 64; +pub type ImPlotLegendFlags_ = ::std::os::raw::c_uint; +pub const ImPlotMouseTextFlags__ImPlotMouseTextFlags_None: ImPlotMouseTextFlags_ = 0; +pub const ImPlotMouseTextFlags__ImPlotMouseTextFlags_NoAuxAxes: ImPlotMouseTextFlags_ = 1; +pub const ImPlotMouseTextFlags__ImPlotMouseTextFlags_NoFormat: ImPlotMouseTextFlags_ = 2; +pub const ImPlotMouseTextFlags__ImPlotMouseTextFlags_ShowAlways: ImPlotMouseTextFlags_ = 4; +pub type ImPlotMouseTextFlags_ = ::std::os::raw::c_uint; +pub const ImPlotDragToolFlags__ImPlotDragToolFlags_None: ImPlotDragToolFlags_ = 0; +pub const ImPlotDragToolFlags__ImPlotDragToolFlags_NoCursors: ImPlotDragToolFlags_ = 1; +pub const ImPlotDragToolFlags__ImPlotDragToolFlags_NoFit: ImPlotDragToolFlags_ = 2; +pub const ImPlotDragToolFlags__ImPlotDragToolFlags_NoInputs: ImPlotDragToolFlags_ = 4; +pub const ImPlotDragToolFlags__ImPlotDragToolFlags_Delayed: ImPlotDragToolFlags_ = 8; +pub type ImPlotDragToolFlags_ = ::std::os::raw::c_uint; +pub const ImPlotColormapScaleFlags__ImPlotColormapScaleFlags_None: ImPlotColormapScaleFlags_ = 0; +pub const ImPlotColormapScaleFlags__ImPlotColormapScaleFlags_NoLabel: ImPlotColormapScaleFlags_ = 1; +pub const ImPlotColormapScaleFlags__ImPlotColormapScaleFlags_Opposite: ImPlotColormapScaleFlags_ = + 2; +pub const ImPlotColormapScaleFlags__ImPlotColormapScaleFlags_Invert: ImPlotColormapScaleFlags_ = 4; +pub type ImPlotColormapScaleFlags_ = ::std::os::raw::c_uint; +pub const ImPlotItemFlags__ImPlotItemFlags_None: ImPlotItemFlags_ = 0; +pub const ImPlotItemFlags__ImPlotItemFlags_NoLegend: ImPlotItemFlags_ = 1; +pub const ImPlotItemFlags__ImPlotItemFlags_NoFit: ImPlotItemFlags_ = 2; +pub type ImPlotItemFlags_ = ::std::os::raw::c_uint; +pub const ImPlotLineFlags__ImPlotLineFlags_None: ImPlotLineFlags_ = 0; +pub const ImPlotLineFlags__ImPlotLineFlags_Segments: ImPlotLineFlags_ = 1024; +pub const ImPlotLineFlags__ImPlotLineFlags_Loop: ImPlotLineFlags_ = 2048; +pub const ImPlotLineFlags__ImPlotLineFlags_SkipNaN: ImPlotLineFlags_ = 4096; +pub const ImPlotLineFlags__ImPlotLineFlags_NoClip: ImPlotLineFlags_ = 8192; +pub const ImPlotLineFlags__ImPlotLineFlags_Shaded: ImPlotLineFlags_ = 16384; +pub type ImPlotLineFlags_ = ::std::os::raw::c_uint; +pub const ImPlotScatterFlags__ImPlotScatterFlags_None: ImPlotScatterFlags_ = 0; +pub const ImPlotScatterFlags__ImPlotScatterFlags_NoClip: ImPlotScatterFlags_ = 1024; +pub type ImPlotScatterFlags_ = ::std::os::raw::c_uint; +pub const ImPlotStairsFlags__ImPlotStairsFlags_None: ImPlotStairsFlags_ = 0; +pub const ImPlotStairsFlags__ImPlotStairsFlags_PreStep: ImPlotStairsFlags_ = 1024; +pub const ImPlotStairsFlags__ImPlotStairsFlags_Shaded: ImPlotStairsFlags_ = 2048; +pub type ImPlotStairsFlags_ = ::std::os::raw::c_uint; +pub const ImPlotShadedFlags__ImPlotShadedFlags_None: ImPlotShadedFlags_ = 0; +pub type ImPlotShadedFlags_ = ::std::os::raw::c_uint; +pub const ImPlotBarsFlags__ImPlotBarsFlags_None: ImPlotBarsFlags_ = 0; +pub const ImPlotBarsFlags__ImPlotBarsFlags_Horizontal: ImPlotBarsFlags_ = 1024; +pub type ImPlotBarsFlags_ = ::std::os::raw::c_uint; +pub const ImPlotBarGroupsFlags__ImPlotBarGroupsFlags_None: ImPlotBarGroupsFlags_ = 0; +pub const ImPlotBarGroupsFlags__ImPlotBarGroupsFlags_Horizontal: ImPlotBarGroupsFlags_ = 1024; +pub const ImPlotBarGroupsFlags__ImPlotBarGroupsFlags_Stacked: ImPlotBarGroupsFlags_ = 2048; +pub type ImPlotBarGroupsFlags_ = ::std::os::raw::c_uint; +pub const ImPlotErrorBarsFlags__ImPlotErrorBarsFlags_None: ImPlotErrorBarsFlags_ = 0; +pub const ImPlotErrorBarsFlags__ImPlotErrorBarsFlags_Horizontal: ImPlotErrorBarsFlags_ = 1024; +pub type ImPlotErrorBarsFlags_ = ::std::os::raw::c_uint; +pub const ImPlotStemsFlags__ImPlotStemsFlags_None: ImPlotStemsFlags_ = 0; +pub const ImPlotStemsFlags__ImPlotStemsFlags_Horizontal: ImPlotStemsFlags_ = 1024; +pub type ImPlotStemsFlags_ = ::std::os::raw::c_uint; +pub const ImPlotInfLinesFlags__ImPlotInfLinesFlags_None: ImPlotInfLinesFlags_ = 0; +pub const ImPlotInfLinesFlags__ImPlotInfLinesFlags_Horizontal: ImPlotInfLinesFlags_ = 1024; +pub type ImPlotInfLinesFlags_ = ::std::os::raw::c_uint; +pub const ImPlotPieChartFlags__ImPlotPieChartFlags_None: ImPlotPieChartFlags_ = 0; +pub const ImPlotPieChartFlags__ImPlotPieChartFlags_Normalize: ImPlotPieChartFlags_ = 1024; +pub type ImPlotPieChartFlags_ = ::std::os::raw::c_uint; +pub const ImPlotHeatmapFlags__ImPlotHeatmapFlags_None: ImPlotHeatmapFlags_ = 0; +pub const ImPlotHeatmapFlags__ImPlotHeatmapFlags_ColMajor: ImPlotHeatmapFlags_ = 1024; +pub type ImPlotHeatmapFlags_ = ::std::os::raw::c_uint; +pub const ImPlotHistogramFlags__ImPlotHistogramFlags_None: ImPlotHistogramFlags_ = 0; +pub const ImPlotHistogramFlags__ImPlotHistogramFlags_Horizontal: ImPlotHistogramFlags_ = 1024; +pub const ImPlotHistogramFlags__ImPlotHistogramFlags_Cumulative: ImPlotHistogramFlags_ = 2048; +pub const ImPlotHistogramFlags__ImPlotHistogramFlags_Density: ImPlotHistogramFlags_ = 4096; +pub const ImPlotHistogramFlags__ImPlotHistogramFlags_NoOutliers: ImPlotHistogramFlags_ = 8192; +pub const ImPlotHistogramFlags__ImPlotHistogramFlags_ColMajor: ImPlotHistogramFlags_ = 16384; +pub type ImPlotHistogramFlags_ = ::std::os::raw::c_uint; +pub const ImPlotDigitalFlags__ImPlotDigitalFlags_None: ImPlotDigitalFlags_ = 0; +pub type ImPlotDigitalFlags_ = ::std::os::raw::c_uint; +pub const ImPlotImageFlags__ImPlotImageFlags_None: ImPlotImageFlags_ = 0; +pub type ImPlotImageFlags_ = ::std::os::raw::c_uint; +pub const ImPlotTextFlags__ImPlotTextFlags_None: ImPlotTextFlags_ = 0; +pub const ImPlotTextFlags__ImPlotTextFlags_Vertical: ImPlotTextFlags_ = 1024; +pub type ImPlotTextFlags_ = ::std::os::raw::c_uint; +pub const ImPlotDummyFlags__ImPlotDummyFlags_None: ImPlotDummyFlags_ = 0; +pub type ImPlotDummyFlags_ = ::std::os::raw::c_uint; +pub const ImPlotCond__ImPlotCond_None: ImPlotCond_ = 0; +pub const ImPlotCond__ImPlotCond_Always: ImPlotCond_ = 1; +pub const ImPlotCond__ImPlotCond_Once: ImPlotCond_ = 2; +pub type ImPlotCond_ = ::std::os::raw::c_uint; pub const ImPlotCol__ImPlotCol_Line: ImPlotCol_ = 0; pub const ImPlotCol__ImPlotCol_Fill: ImPlotCol_ = 1; pub const ImPlotCol__ImPlotCol_MarkerOutline: ImPlotCol_ = 2; @@ -67,18 +3424,15 @@ pub const ImPlotCol__ImPlotCol_LegendBorder: ImPlotCol_ = 9; pub const ImPlotCol__ImPlotCol_LegendText: ImPlotCol_ = 10; pub const ImPlotCol__ImPlotCol_TitleText: ImPlotCol_ = 11; pub const ImPlotCol__ImPlotCol_InlayText: ImPlotCol_ = 12; -pub const ImPlotCol__ImPlotCol_XAxis: ImPlotCol_ = 13; -pub const ImPlotCol__ImPlotCol_XAxisGrid: ImPlotCol_ = 14; -pub const ImPlotCol__ImPlotCol_YAxis: ImPlotCol_ = 15; -pub const ImPlotCol__ImPlotCol_YAxisGrid: ImPlotCol_ = 16; -pub const ImPlotCol__ImPlotCol_YAxis2: ImPlotCol_ = 17; -pub const ImPlotCol__ImPlotCol_YAxisGrid2: ImPlotCol_ = 18; -pub const ImPlotCol__ImPlotCol_YAxis3: ImPlotCol_ = 19; -pub const ImPlotCol__ImPlotCol_YAxisGrid3: ImPlotCol_ = 20; -pub const ImPlotCol__ImPlotCol_Selection: ImPlotCol_ = 21; -pub const ImPlotCol__ImPlotCol_Query: ImPlotCol_ = 22; -pub const ImPlotCol__ImPlotCol_Crosshairs: ImPlotCol_ = 23; -pub const ImPlotCol__ImPlotCol_COUNT: ImPlotCol_ = 24; +pub const ImPlotCol__ImPlotCol_AxisText: ImPlotCol_ = 13; +pub const ImPlotCol__ImPlotCol_AxisGrid: ImPlotCol_ = 14; +pub const ImPlotCol__ImPlotCol_AxisTick: ImPlotCol_ = 15; +pub const ImPlotCol__ImPlotCol_AxisBg: ImPlotCol_ = 16; +pub const ImPlotCol__ImPlotCol_AxisBgHovered: ImPlotCol_ = 17; +pub const ImPlotCol__ImPlotCol_AxisBgActive: ImPlotCol_ = 18; +pub const ImPlotCol__ImPlotCol_Selection: ImPlotCol_ = 19; +pub const ImPlotCol__ImPlotCol_Crosshairs: ImPlotCol_ = 20; +pub const ImPlotCol__ImPlotCol_COUNT: ImPlotCol_ = 21; pub type ImPlotCol_ = ::std::os::raw::c_uint; pub const ImPlotStyleVar__ImPlotStyleVar_LineWeight: ImPlotStyleVar_ = 0; pub const ImPlotStyleVar__ImPlotStyleVar_Marker: ImPlotStyleVar_ = 1; @@ -109,6 +3463,11 @@ pub const ImPlotStyleVar__ImPlotStyleVar_PlotDefaultSize: ImPlotStyleVar_ = 25; pub const ImPlotStyleVar__ImPlotStyleVar_PlotMinSize: ImPlotStyleVar_ = 26; pub const ImPlotStyleVar__ImPlotStyleVar_COUNT: ImPlotStyleVar_ = 27; pub type ImPlotStyleVar_ = ::std::os::raw::c_uint; +pub const ImPlotScale__ImPlotScale_Linear: ImPlotScale_ = 0; +pub const ImPlotScale__ImPlotScale_Time: ImPlotScale_ = 1; +pub const ImPlotScale__ImPlotScale_Log10: ImPlotScale_ = 2; +pub const ImPlotScale__ImPlotScale_SymLog: ImPlotScale_ = 3; +pub type ImPlotScale_ = ::std::os::raw::c_uint; pub const ImPlotMarker__ImPlotMarker_None: ImPlotMarker_ = -1; pub const ImPlotMarker__ImPlotMarker_Circle: ImPlotMarker_ = 0; pub const ImPlotMarker__ImPlotMarker_Square: ImPlotMarker_ = 1; @@ -122,18 +3481,22 @@ pub const ImPlotMarker__ImPlotMarker_Plus: ImPlotMarker_ = 8; pub const ImPlotMarker__ImPlotMarker_Asterisk: ImPlotMarker_ = 9; pub const ImPlotMarker__ImPlotMarker_COUNT: ImPlotMarker_ = 10; pub type ImPlotMarker_ = ::std::os::raw::c_int; -pub const ImPlotColormap__ImPlotColormap_Default: ImPlotColormap_ = 0; -pub const ImPlotColormap__ImPlotColormap_Deep: ImPlotColormap_ = 1; -pub const ImPlotColormap__ImPlotColormap_Dark: ImPlotColormap_ = 2; -pub const ImPlotColormap__ImPlotColormap_Pastel: ImPlotColormap_ = 3; -pub const ImPlotColormap__ImPlotColormap_Paired: ImPlotColormap_ = 4; -pub const ImPlotColormap__ImPlotColormap_Viridis: ImPlotColormap_ = 5; -pub const ImPlotColormap__ImPlotColormap_Plasma: ImPlotColormap_ = 6; -pub const ImPlotColormap__ImPlotColormap_Hot: ImPlotColormap_ = 7; -pub const ImPlotColormap__ImPlotColormap_Cool: ImPlotColormap_ = 8; -pub const ImPlotColormap__ImPlotColormap_Pink: ImPlotColormap_ = 9; -pub const ImPlotColormap__ImPlotColormap_Jet: ImPlotColormap_ = 10; -pub const ImPlotColormap__ImPlotColormap_COUNT: ImPlotColormap_ = 11; +pub const ImPlotColormap__ImPlotColormap_Deep: ImPlotColormap_ = 0; +pub const ImPlotColormap__ImPlotColormap_Dark: ImPlotColormap_ = 1; +pub const ImPlotColormap__ImPlotColormap_Pastel: ImPlotColormap_ = 2; +pub const ImPlotColormap__ImPlotColormap_Paired: ImPlotColormap_ = 3; +pub const ImPlotColormap__ImPlotColormap_Viridis: ImPlotColormap_ = 4; +pub const ImPlotColormap__ImPlotColormap_Plasma: ImPlotColormap_ = 5; +pub const ImPlotColormap__ImPlotColormap_Hot: ImPlotColormap_ = 6; +pub const ImPlotColormap__ImPlotColormap_Cool: ImPlotColormap_ = 7; +pub const ImPlotColormap__ImPlotColormap_Pink: ImPlotColormap_ = 8; +pub const ImPlotColormap__ImPlotColormap_Jet: ImPlotColormap_ = 9; +pub const ImPlotColormap__ImPlotColormap_Twilight: ImPlotColormap_ = 10; +pub const ImPlotColormap__ImPlotColormap_RdBu: ImPlotColormap_ = 11; +pub const ImPlotColormap__ImPlotColormap_BrBG: ImPlotColormap_ = 12; +pub const ImPlotColormap__ImPlotColormap_PiYG: ImPlotColormap_ = 13; +pub const ImPlotColormap__ImPlotColormap_Spectral: ImPlotColormap_ = 14; +pub const ImPlotColormap__ImPlotColormap_Greys: ImPlotColormap_ = 15; pub type ImPlotColormap_ = ::std::os::raw::c_uint; pub const ImPlotLocation__ImPlotLocation_Center: ImPlotLocation_ = 0; pub const ImPlotLocation__ImPlotLocation_North: ImPlotLocation_ = 1; @@ -145,3643 +3508,9149 @@ pub const ImPlotLocation__ImPlotLocation_NorthEast: ImPlotLocation_ = 9; pub const ImPlotLocation__ImPlotLocation_SouthWest: ImPlotLocation_ = 6; pub const ImPlotLocation__ImPlotLocation_SouthEast: ImPlotLocation_ = 10; pub type ImPlotLocation_ = ::std::os::raw::c_uint; -pub const ImPlotOrientation__ImPlotOrientation_Horizontal: ImPlotOrientation_ = 0; -pub const ImPlotOrientation__ImPlotOrientation_Vertical: ImPlotOrientation_ = 1; -pub type ImPlotOrientation_ = ::std::os::raw::c_uint; -pub const ImPlotYAxis__ImPlotYAxis_1: ImPlotYAxis_ = 0; -pub const ImPlotYAxis__ImPlotYAxis_2: ImPlotYAxis_ = 1; -pub const ImPlotYAxis__ImPlotYAxis_3: ImPlotYAxis_ = 2; -pub type ImPlotYAxis_ = ::std::os::raw::c_uint; +pub const ImPlotBin__ImPlotBin_Sqrt: ImPlotBin_ = -1; +pub const ImPlotBin__ImPlotBin_Sturges: ImPlotBin_ = -2; +pub const ImPlotBin__ImPlotBin_Rice: ImPlotBin_ = -3; +pub const ImPlotBin__ImPlotBin_Scott: ImPlotBin_ = -4; +pub type ImPlotBin_ = ::std::os::raw::c_int; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ImPlotPoint { - pub x: f64, - pub y: f64, + pub x: f64, + pub y: f64, } #[test] fn bindgen_test_layout_ImPlotPoint() { - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ImPlotPoint)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ImPlotPoint)) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).x as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ImPlotPoint), - "::", - stringify!(x) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).y as *const _ as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ImPlotPoint), - "::", - stringify!(y) - ) - ); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImPlotPoint)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImPlotPoint)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).x as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPoint), + "::", + stringify!(x) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).y as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPoint), + "::", + stringify!(y) + ) + ); } #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct ImPlotRange { - pub Min: f64, - pub Max: f64, + pub Min: f64, + pub Max: f64, } #[test] fn bindgen_test_layout_ImPlotRange() { - assert_eq!( - ::std::mem::size_of::(), - 16usize, - concat!("Size of: ", stringify!(ImPlotRange)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ImPlotRange)) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).Min as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ImPlotRange), - "::", - stringify!(Min) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).Max as *const _ as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ImPlotRange), - "::", - stringify!(Max) - ) - ); + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImPlotRange)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImPlotRange)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Min as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPlotRange), + "::", + stringify!(Min) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Max as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImPlotRange), + "::", + stringify!(Max) + ) + ); } #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct ImPlotLimits { - pub X: ImPlotRange, - pub Y: ImPlotRange, +pub struct ImPlotRect { + pub X: ImPlotRange, + pub Y: ImPlotRange, } #[test] -fn bindgen_test_layout_ImPlotLimits() { - assert_eq!( - ::std::mem::size_of::(), - 32usize, - concat!("Size of: ", stringify!(ImPlotLimits)) - ); - assert_eq!( - ::std::mem::align_of::(), - 8usize, - concat!("Alignment of ", stringify!(ImPlotLimits)) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).X as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ImPlotLimits), - "::", - stringify!(X) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).Y as *const _ as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ImPlotLimits), - "::", - stringify!(Y) - ) - ); +fn bindgen_test_layout_ImPlotRect() { + assert_eq!( + ::std::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(ImPlotRect)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImPlotRect)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).X as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPlotRect), + "::", + stringify!(X) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Y as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ImPlotRect), + "::", + stringify!(Y) + ) + ); } #[repr(C)] #[derive(Clone, Copy, Debug)] pub struct ImPlotStyle { - pub LineWeight: f32, - pub Marker: ::std::os::raw::c_int, - pub MarkerSize: f32, - pub MarkerWeight: f32, - pub FillAlpha: f32, - pub ErrorBarSize: f32, - pub ErrorBarWeight: f32, - pub DigitalBitHeight: f32, - pub DigitalBitGap: f32, - pub PlotBorderSize: f32, - pub MinorAlpha: f32, - pub MajorTickLen: ImVec2, - pub MinorTickLen: ImVec2, - pub MajorTickSize: ImVec2, - pub MinorTickSize: ImVec2, - pub MajorGridSize: ImVec2, - pub MinorGridSize: ImVec2, - pub PlotPadding: ImVec2, - pub LabelPadding: ImVec2, - pub LegendPadding: ImVec2, - pub LegendInnerPadding: ImVec2, - pub LegendSpacing: ImVec2, - pub MousePosPadding: ImVec2, - pub AnnotationPadding: ImVec2, - pub FitPadding: ImVec2, - pub PlotDefaultSize: ImVec2, - pub PlotMinSize: ImVec2, - pub Colors: [ImVec4; 24usize], - pub AntiAliasedLines: bool, - pub UseLocalTime: bool, - pub UseISO8601: bool, - pub Use24HourClock: bool, + pub LineWeight: f32, + pub Marker: ::std::os::raw::c_int, + pub MarkerSize: f32, + pub MarkerWeight: f32, + pub FillAlpha: f32, + pub ErrorBarSize: f32, + pub ErrorBarWeight: f32, + pub DigitalBitHeight: f32, + pub DigitalBitGap: f32, + pub PlotBorderSize: f32, + pub MinorAlpha: f32, + pub MajorTickLen: ImVec2, + pub MinorTickLen: ImVec2, + pub MajorTickSize: ImVec2, + pub MinorTickSize: ImVec2, + pub MajorGridSize: ImVec2, + pub MinorGridSize: ImVec2, + pub PlotPadding: ImVec2, + pub LabelPadding: ImVec2, + pub LegendPadding: ImVec2, + pub LegendInnerPadding: ImVec2, + pub LegendSpacing: ImVec2, + pub MousePosPadding: ImVec2, + pub AnnotationPadding: ImVec2, + pub FitPadding: ImVec2, + pub PlotDefaultSize: ImVec2, + pub PlotMinSize: ImVec2, + pub Colors: [ImVec4; 21usize], + pub Colormap: ImPlotColormap, + pub UseLocalTime: bool, + pub UseISO8601: bool, + pub Use24HourClock: bool, } #[test] fn bindgen_test_layout_ImPlotStyle() { - assert_eq!( - ::std::mem::size_of::(), - 560usize, - concat!("Size of: ", stringify!(ImPlotStyle)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(ImPlotStyle)) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).LineWeight as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(LineWeight) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).Marker as *const _ as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(Marker) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).MarkerSize as *const _ as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(MarkerSize) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).MarkerWeight as *const _ as usize }, - 12usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(MarkerWeight) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).FillAlpha as *const _ as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(FillAlpha) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).ErrorBarSize as *const _ as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(ErrorBarSize) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).ErrorBarWeight as *const _ as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(ErrorBarWeight) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).DigitalBitHeight as *const _ as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(DigitalBitHeight) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).DigitalBitGap as *const _ as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(DigitalBitGap) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).PlotBorderSize as *const _ as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(PlotBorderSize) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).MinorAlpha as *const _ as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(MinorAlpha) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).MajorTickLen as *const _ as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(MajorTickLen) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).MinorTickLen as *const _ as usize }, - 52usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(MinorTickLen) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).MajorTickSize as *const _ as usize }, - 60usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(MajorTickSize) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).MinorTickSize as *const _ as usize }, - 68usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(MinorTickSize) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).MajorGridSize as *const _ as usize }, - 76usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(MajorGridSize) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).MinorGridSize as *const _ as usize }, - 84usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(MinorGridSize) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).PlotPadding as *const _ as usize }, - 92usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(PlotPadding) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).LabelPadding as *const _ as usize }, - 100usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(LabelPadding) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).LegendPadding as *const _ as usize }, - 108usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(LegendPadding) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).LegendInnerPadding as *const _ as usize }, - 116usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(LegendInnerPadding) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).LegendSpacing as *const _ as usize }, - 124usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(LegendSpacing) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).MousePosPadding as *const _ as usize }, - 132usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(MousePosPadding) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).AnnotationPadding as *const _ as usize }, - 140usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(AnnotationPadding) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).FitPadding as *const _ as usize }, - 148usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(FitPadding) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).PlotDefaultSize as *const _ as usize }, - 156usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(PlotDefaultSize) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).PlotMinSize as *const _ as usize }, - 164usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(PlotMinSize) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).Colors as *const _ as usize }, - 172usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(Colors) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).AntiAliasedLines as *const _ as usize }, - 556usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(AntiAliasedLines) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).UseLocalTime as *const _ as usize }, - 557usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(UseLocalTime) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).UseISO8601 as *const _ as usize }, - 558usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(UseISO8601) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).Use24HourClock as *const _ as usize }, - 559usize, - concat!( - "Offset of field: ", - stringify!(ImPlotStyle), - "::", - stringify!(Use24HourClock) - ) - ); + assert_eq!( + ::std::mem::size_of::(), + 516usize, + concat!("Size of: ", stringify!(ImPlotStyle)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ImPlotStyle)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).LineWeight as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(LineWeight) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Marker as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(Marker) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).MarkerSize as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(MarkerSize) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).MarkerWeight as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(MarkerWeight) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).FillAlpha as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(FillAlpha) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ErrorBarSize as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(ErrorBarSize) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ErrorBarWeight as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(ErrorBarWeight) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).DigitalBitHeight as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(DigitalBitHeight) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).DigitalBitGap as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(DigitalBitGap) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).PlotBorderSize as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(PlotBorderSize) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).MinorAlpha as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(MinorAlpha) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).MajorTickLen as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(MajorTickLen) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).MinorTickLen as *const _ as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(MinorTickLen) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).MajorTickSize as *const _ as usize }, + 60usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(MajorTickSize) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).MinorTickSize as *const _ as usize }, + 68usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(MinorTickSize) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).MajorGridSize as *const _ as usize }, + 76usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(MajorGridSize) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).MinorGridSize as *const _ as usize }, + 84usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(MinorGridSize) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).PlotPadding as *const _ as usize }, + 92usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(PlotPadding) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).LabelPadding as *const _ as usize }, + 100usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(LabelPadding) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).LegendPadding as *const _ as usize }, + 108usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(LegendPadding) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).LegendInnerPadding as *const _ as usize }, + 116usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(LegendInnerPadding) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).LegendSpacing as *const _ as usize }, + 124usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(LegendSpacing) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).MousePosPadding as *const _ as usize }, + 132usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(MousePosPadding) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).AnnotationPadding as *const _ as usize }, + 140usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(AnnotationPadding) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).FitPadding as *const _ as usize }, + 148usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(FitPadding) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).PlotDefaultSize as *const _ as usize }, + 156usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(PlotDefaultSize) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).PlotMinSize as *const _ as usize }, + 164usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(PlotMinSize) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Colors as *const _ as usize }, + 172usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(Colors) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Colormap as *const _ as usize }, + 508usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(Colormap) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).UseLocalTime as *const _ as usize }, + 512usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(UseLocalTime) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).UseISO8601 as *const _ as usize }, + 513usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(UseISO8601) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Use24HourClock as *const _ as usize }, + 514usize, + concat!( + "Offset of field: ", + stringify!(ImPlotStyle), + "::", + stringify!(Use24HourClock) + ) + ); } #[repr(C)] #[derive(Clone, Copy, Debug)] pub struct ImPlotInputMap { - pub PanButton: ImGuiMouseButton, - pub PanMod: ImGuiKeyModFlags, - pub FitButton: ImGuiMouseButton, - pub ContextMenuButton: ImGuiMouseButton, - pub BoxSelectButton: ImGuiMouseButton, - pub BoxSelectMod: ImGuiKeyModFlags, - pub BoxSelectCancelButton: ImGuiMouseButton, - pub QueryButton: ImGuiMouseButton, - pub QueryMod: ImGuiKeyModFlags, - pub QueryToggleMod: ImGuiKeyModFlags, - pub HorizontalMod: ImGuiKeyModFlags, - pub VerticalMod: ImGuiKeyModFlags, + pub Pan: ImGuiMouseButton, + pub PanMod: ::std::os::raw::c_int, + pub Fit: ImGuiMouseButton, + pub Select: ImGuiMouseButton, + pub SelectCancel: ImGuiMouseButton, + pub SelectMod: ::std::os::raw::c_int, + pub SelectHorzMod: ::std::os::raw::c_int, + pub SelectVertMod: ::std::os::raw::c_int, + pub Menu: ImGuiMouseButton, + pub OverrideMod: ::std::os::raw::c_int, + pub ZoomMod: ::std::os::raw::c_int, + pub ZoomRate: f32, } #[test] fn bindgen_test_layout_ImPlotInputMap() { - assert_eq!( - ::std::mem::size_of::(), - 48usize, - concat!("Size of: ", stringify!(ImPlotInputMap)) - ); - assert_eq!( - ::std::mem::align_of::(), - 4usize, - concat!("Alignment of ", stringify!(ImPlotInputMap)) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).PanButton as *const _ as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(ImPlotInputMap), - "::", - stringify!(PanButton) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).PanMod as *const _ as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(ImPlotInputMap), - "::", - stringify!(PanMod) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).FitButton as *const _ as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(ImPlotInputMap), - "::", - stringify!(FitButton) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).ContextMenuButton as *const _ as usize - }, - 12usize, - concat!( - "Offset of field: ", - stringify!(ImPlotInputMap), - "::", - stringify!(ContextMenuButton) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).BoxSelectButton as *const _ as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(ImPlotInputMap), - "::", - stringify!(BoxSelectButton) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).BoxSelectMod as *const _ as usize }, - 20usize, - concat!( - "Offset of field: ", - stringify!(ImPlotInputMap), - "::", - stringify!(BoxSelectMod) - ) - ); - assert_eq!( - unsafe { - &(*(::std::ptr::null::())).BoxSelectCancelButton as *const _ as usize - }, - 24usize, - concat!( - "Offset of field: ", - stringify!(ImPlotInputMap), - "::", - stringify!(BoxSelectCancelButton) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).QueryButton as *const _ as usize }, - 28usize, - concat!( - "Offset of field: ", - stringify!(ImPlotInputMap), - "::", - stringify!(QueryButton) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).QueryMod as *const _ as usize }, - 32usize, - concat!( - "Offset of field: ", - stringify!(ImPlotInputMap), - "::", - stringify!(QueryMod) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).QueryToggleMod as *const _ as usize }, - 36usize, - concat!( - "Offset of field: ", - stringify!(ImPlotInputMap), - "::", - stringify!(QueryToggleMod) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).HorizontalMod as *const _ as usize }, - 40usize, - concat!( - "Offset of field: ", - stringify!(ImPlotInputMap), - "::", - stringify!(HorizontalMod) - ) - ); - assert_eq!( - unsafe { &(*(::std::ptr::null::())).VerticalMod as *const _ as usize }, - 44usize, - concat!( - "Offset of field: ", - stringify!(ImPlotInputMap), - "::", - stringify!(VerticalMod) - ) - ); -} -extern "C" { - pub fn ImPlotPoint_ImPlotPointNil() -> *mut ImPlotPoint; -} -extern "C" { - pub fn ImPlotPoint_destroy(self_: *mut ImPlotPoint); -} + assert_eq!( + ::std::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(ImPlotInputMap)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ImPlotInputMap)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Pan as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPlotInputMap), + "::", + stringify!(Pan) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).PanMod as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImPlotInputMap), + "::", + stringify!(PanMod) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Fit as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImPlotInputMap), + "::", + stringify!(Fit) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Select as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(ImPlotInputMap), + "::", + stringify!(Select) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).SelectCancel as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ImPlotInputMap), + "::", + stringify!(SelectCancel) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).SelectMod as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(ImPlotInputMap), + "::", + stringify!(SelectMod) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).SelectHorzMod as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(ImPlotInputMap), + "::", + stringify!(SelectHorzMod) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).SelectVertMod as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(ImPlotInputMap), + "::", + stringify!(SelectVertMod) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Menu as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(ImPlotInputMap), + "::", + stringify!(Menu) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).OverrideMod as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(ImPlotInputMap), + "::", + stringify!(OverrideMod) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ZoomMod as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(ImPlotInputMap), + "::", + stringify!(ZoomMod) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ZoomRate as *const _ as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(ImPlotInputMap), + "::", + stringify!(ZoomRate) + ) + ); +} +pub type ImPlotFormatter = ::std::option::Option< + unsafe extern "C" fn( + value: f64, + buff: *mut ::std::os::raw::c_char, + size: ::std::os::raw::c_int, + user_data: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int, +>; +pub type ImPlotGetter = ::std::option::Option< + unsafe extern "C" fn( + idx: ::std::os::raw::c_int, + user_data: *mut ::std::os::raw::c_void, + ) -> ImPlotPoint, +>; +pub type ImPlotTransform = ::std::option::Option< + unsafe extern "C" fn(value: f64, user_data: *mut ::std::os::raw::c_void) -> f64, +>; +pub type ImPlotTimeUnit = ::std::os::raw::c_int; +pub type ImPlotDateFmt = ::std::os::raw::c_int; +pub type ImPlotTimeFmt = ::std::os::raw::c_int; +pub const ImPlotTimeUnit__ImPlotTimeUnit_Us: ImPlotTimeUnit_ = 0; +pub const ImPlotTimeUnit__ImPlotTimeUnit_Ms: ImPlotTimeUnit_ = 1; +pub const ImPlotTimeUnit__ImPlotTimeUnit_S: ImPlotTimeUnit_ = 2; +pub const ImPlotTimeUnit__ImPlotTimeUnit_Min: ImPlotTimeUnit_ = 3; +pub const ImPlotTimeUnit__ImPlotTimeUnit_Hr: ImPlotTimeUnit_ = 4; +pub const ImPlotTimeUnit__ImPlotTimeUnit_Day: ImPlotTimeUnit_ = 5; +pub const ImPlotTimeUnit__ImPlotTimeUnit_Mo: ImPlotTimeUnit_ = 6; +pub const ImPlotTimeUnit__ImPlotTimeUnit_Yr: ImPlotTimeUnit_ = 7; +pub const ImPlotTimeUnit__ImPlotTimeUnit_COUNT: ImPlotTimeUnit_ = 8; +pub type ImPlotTimeUnit_ = ::std::os::raw::c_uint; +pub const ImPlotDateFmt__ImPlotDateFmt_None: ImPlotDateFmt_ = 0; +pub const ImPlotDateFmt__ImPlotDateFmt_DayMo: ImPlotDateFmt_ = 1; +pub const ImPlotDateFmt__ImPlotDateFmt_DayMoYr: ImPlotDateFmt_ = 2; +pub const ImPlotDateFmt__ImPlotDateFmt_MoYr: ImPlotDateFmt_ = 3; +pub const ImPlotDateFmt__ImPlotDateFmt_Mo: ImPlotDateFmt_ = 4; +pub const ImPlotDateFmt__ImPlotDateFmt_Yr: ImPlotDateFmt_ = 5; +pub type ImPlotDateFmt_ = ::std::os::raw::c_uint; +pub const ImPlotTimeFmt__ImPlotTimeFmt_None: ImPlotTimeFmt_ = 0; +pub const ImPlotTimeFmt__ImPlotTimeFmt_Us: ImPlotTimeFmt_ = 1; +pub const ImPlotTimeFmt__ImPlotTimeFmt_SUs: ImPlotTimeFmt_ = 2; +pub const ImPlotTimeFmt__ImPlotTimeFmt_SMs: ImPlotTimeFmt_ = 3; +pub const ImPlotTimeFmt__ImPlotTimeFmt_S: ImPlotTimeFmt_ = 4; +pub const ImPlotTimeFmt__ImPlotTimeFmt_MinSMs: ImPlotTimeFmt_ = 5; +pub const ImPlotTimeFmt__ImPlotTimeFmt_HrMinSMs: ImPlotTimeFmt_ = 6; +pub const ImPlotTimeFmt__ImPlotTimeFmt_HrMinS: ImPlotTimeFmt_ = 7; +pub const ImPlotTimeFmt__ImPlotTimeFmt_HrMin: ImPlotTimeFmt_ = 8; +pub const ImPlotTimeFmt__ImPlotTimeFmt_Hr: ImPlotTimeFmt_ = 9; +pub type ImPlotTimeFmt_ = ::std::os::raw::c_uint; +pub type ImPlotLocator = ::std::option::Option< + unsafe extern "C" fn( + ticker: *mut ImPlotTicker, + range: ImPlotRange, + pixels: f32, + vertical: bool, + formatter: ImPlotFormatter, + formatter_data: *mut ::std::os::raw::c_void, + ), +>; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImPlotDateTimeSpec { + pub Date: ImPlotDateFmt, + pub Time: ImPlotTimeFmt, + pub UseISO8601: bool, + pub Use24HourClock: bool, +} +#[test] +fn bindgen_test_layout_ImPlotDateTimeSpec() { + assert_eq!( + ::std::mem::size_of::(), + 12usize, + concat!("Size of: ", stringify!(ImPlotDateTimeSpec)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ImPlotDateTimeSpec)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Date as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPlotDateTimeSpec), + "::", + stringify!(Date) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Time as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImPlotDateTimeSpec), + "::", + stringify!(Time) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).UseISO8601 as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImPlotDateTimeSpec), + "::", + stringify!(UseISO8601) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Use24HourClock as *const _ as usize + }, + 9usize, + concat!( + "Offset of field: ", + stringify!(ImPlotDateTimeSpec), + "::", + stringify!(Use24HourClock) + ) + ); +} +#[repr(C)] +pub struct ImPlotTime { + pub S: time_t, + pub Us: ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout_ImPlotTime() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImPlotTime)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImPlotTime)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).S as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPlotTime), + "::", + stringify!(S) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Us as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImPlotTime), + "::", + stringify!(Us) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_bool { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut bool, +} +#[test] +fn bindgen_test_layout_ImVector_bool() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_bool)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_bool)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_bool), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_bool), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_bool), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +pub struct ImPlotColormapData { + pub Keys: ImVector_ImU32, + pub KeyCounts: ImVector_int, + pub KeyOffsets: ImVector_int, + pub Tables: ImVector_ImU32, + pub TableSizes: ImVector_int, + pub TableOffsets: ImVector_int, + pub Text: ImGuiTextBuffer, + pub TextOffsets: ImVector_int, + pub Quals: ImVector_bool, + pub Map: ImGuiStorage, + pub Count: ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout_ImPlotColormapData() { + assert_eq!( + ::std::mem::size_of::(), + 168usize, + concat!("Size of: ", stringify!(ImPlotColormapData)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImPlotColormapData)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Keys as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPlotColormapData), + "::", + stringify!(Keys) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).KeyCounts as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ImPlotColormapData), + "::", + stringify!(KeyCounts) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).KeyOffsets as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(ImPlotColormapData), + "::", + stringify!(KeyOffsets) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Tables as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(ImPlotColormapData), + "::", + stringify!(Tables) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).TableSizes as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(ImPlotColormapData), + "::", + stringify!(TableSizes) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).TableOffsets as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(ImPlotColormapData), + "::", + stringify!(TableOffsets) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Text as *const _ as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(ImPlotColormapData), + "::", + stringify!(Text) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).TextOffsets as *const _ as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(ImPlotColormapData), + "::", + stringify!(TextOffsets) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Quals as *const _ as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(ImPlotColormapData), + "::", + stringify!(Quals) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Map as *const _ as usize }, + 144usize, + concat!( + "Offset of field: ", + stringify!(ImPlotColormapData), + "::", + stringify!(Map) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Count as *const _ as usize }, + 160usize, + concat!( + "Offset of field: ", + stringify!(ImPlotColormapData), + "::", + stringify!(Count) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImPlotPointError { + pub X: f64, + pub Y: f64, + pub Neg: f64, + pub Pos: f64, +} +#[test] +fn bindgen_test_layout_ImPlotPointError() { + assert_eq!( + ::std::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(ImPlotPointError)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImPlotPointError)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).X as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPointError), + "::", + stringify!(X) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Y as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPointError), + "::", + stringify!(Y) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Neg as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPointError), + "::", + stringify!(Neg) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Pos as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPointError), + "::", + stringify!(Pos) + ) + ); +} +#[repr(C)] +pub struct ImPlotAnnotation { + pub Pos: ImVec2, + pub Offset: ImVec2, + pub ColorBg: ImU32, + pub ColorFg: ImU32, + pub TextOffset: ::std::os::raw::c_int, + pub Clamp: bool, +} +#[test] +fn bindgen_test_layout_ImPlotAnnotation() { + assert_eq!( + ::std::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(ImPlotAnnotation)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ImPlotAnnotation)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Pos as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAnnotation), + "::", + stringify!(Pos) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Offset as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAnnotation), + "::", + stringify!(Offset) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ColorBg as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAnnotation), + "::", + stringify!(ColorBg) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ColorFg as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAnnotation), + "::", + stringify!(ColorFg) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).TextOffset as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAnnotation), + "::", + stringify!(TextOffset) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Clamp as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAnnotation), + "::", + stringify!(Clamp) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImPlotAnnotation { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImPlotAnnotation, +} +#[test] +fn bindgen_test_layout_ImVector_ImPlotAnnotation() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImPlotAnnotation)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImPlotAnnotation)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotAnnotation), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotAnnotation), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotAnnotation), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +pub struct ImPlotAnnotationCollection { + pub Annotations: ImVector_ImPlotAnnotation, + pub TextBuffer: ImGuiTextBuffer, + pub Size: ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout_ImPlotAnnotationCollection() { + assert_eq!( + ::std::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(ImPlotAnnotationCollection)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImPlotAnnotationCollection)) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Annotations as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAnnotationCollection), + "::", + stringify!(Annotations) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).TextBuffer as *const _ as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAnnotationCollection), + "::", + stringify!(TextBuffer) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAnnotationCollection), + "::", + stringify!(Size) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImPlotTag { + pub Axis: ImAxis, + pub Value: f64, + pub ColorBg: ImU32, + pub ColorFg: ImU32, + pub TextOffset: ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout_ImPlotTag() { + assert_eq!( + ::std::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(ImPlotTag)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImPlotTag)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Axis as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPlotTag), + "::", + stringify!(Axis) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Value as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImPlotTag), + "::", + stringify!(Value) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ColorBg as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ImPlotTag), + "::", + stringify!(ColorBg) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ColorFg as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(ImPlotTag), + "::", + stringify!(ColorFg) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).TextOffset as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(ImPlotTag), + "::", + stringify!(TextOffset) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImPlotTag { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImPlotTag, +} +#[test] +fn bindgen_test_layout_ImVector_ImPlotTag() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImPlotTag)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImPlotTag)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotTag), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotTag), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotTag), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +pub struct ImPlotTagCollection { + pub Tags: ImVector_ImPlotTag, + pub TextBuffer: ImGuiTextBuffer, + pub Size: ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout_ImPlotTagCollection() { + assert_eq!( + ::std::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(ImPlotTagCollection)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImPlotTagCollection)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Tags as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPlotTagCollection), + "::", + stringify!(Tags) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).TextBuffer as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ImPlotTagCollection), + "::", + stringify!(TextBuffer) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(ImPlotTagCollection), + "::", + stringify!(Size) + ) + ); +} +#[repr(C)] +pub struct ImPlotTick { + pub PlotPos: f64, + pub PixelPos: f32, + pub LabelSize: ImVec2, + pub TextOffset: ::std::os::raw::c_int, + pub Major: bool, + pub ShowLabel: bool, + pub Level: ::std::os::raw::c_int, + pub Idx: ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout_ImPlotTick() { + assert_eq!( + ::std::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(ImPlotTick)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImPlotTick)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).PlotPos as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPlotTick), + "::", + stringify!(PlotPos) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).PixelPos as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImPlotTick), + "::", + stringify!(PixelPos) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).LabelSize as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(ImPlotTick), + "::", + stringify!(LabelSize) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).TextOffset as *const _ as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(ImPlotTick), + "::", + stringify!(TextOffset) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Major as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(ImPlotTick), + "::", + stringify!(Major) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ShowLabel as *const _ as usize }, + 25usize, + concat!( + "Offset of field: ", + stringify!(ImPlotTick), + "::", + stringify!(ShowLabel) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Level as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(ImPlotTick), + "::", + stringify!(Level) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Idx as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(ImPlotTick), + "::", + stringify!(Idx) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImPlotTick { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImPlotTick, +} +#[test] +fn bindgen_test_layout_ImVector_ImPlotTick() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImPlotTick)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImPlotTick)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotTick), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotTick), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotTick), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +pub struct ImPlotTicker { + pub Ticks: ImVector_ImPlotTick, + pub TextBuffer: ImGuiTextBuffer, + pub MaxSize: ImVec2, + pub LateSize: ImVec2, + pub Levels: ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout_ImPlotTicker() { + assert_eq!( + ::std::mem::size_of::(), + 56usize, + concat!("Size of: ", stringify!(ImPlotTicker)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImPlotTicker)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Ticks as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPlotTicker), + "::", + stringify!(Ticks) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).TextBuffer as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ImPlotTicker), + "::", + stringify!(TextBuffer) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).MaxSize as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(ImPlotTicker), + "::", + stringify!(MaxSize) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).LateSize as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(ImPlotTicker), + "::", + stringify!(LateSize) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Levels as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(ImPlotTicker), + "::", + stringify!(Levels) + ) + ); +} +#[repr(C)] +pub struct ImPlotAxis { + pub ID: ImGuiID, + pub Flags: ImPlotAxisFlags, + pub PreviousFlags: ImPlotAxisFlags, + pub Range: ImPlotRange, + pub RangeCond: ImPlotCond, + pub Scale: ImPlotScale, + pub FitExtents: ImPlotRange, + pub OrthoAxis: *mut ImPlotAxis, + pub ConstraintRange: ImPlotRange, + pub ConstraintZoom: ImPlotRange, + pub Ticker: ImPlotTicker, + pub Formatter: ImPlotFormatter, + pub FormatterData: *mut ::std::os::raw::c_void, + pub FormatSpec: [::std::os::raw::c_char; 16usize], + pub Locator: ImPlotLocator, + pub LinkedMin: *mut f64, + pub LinkedMax: *mut f64, + pub PickerLevel: ::std::os::raw::c_int, + pub PickerTimeMin: ImPlotTime, + pub PickerTimeMax: ImPlotTime, + pub TransformForward: ImPlotTransform, + pub TransformInverse: ImPlotTransform, + pub TransformData: *mut ::std::os::raw::c_void, + pub PixelMin: f32, + pub PixelMax: f32, + pub ScaleMin: f64, + pub ScaleMax: f64, + pub ScaleToPixel: f64, + pub Datum1: f32, + pub Datum2: f32, + pub HoverRect: ImRect, + pub LabelOffset: ::std::os::raw::c_int, + pub ColorMaj: ImU32, + pub ColorMin: ImU32, + pub ColorTick: ImU32, + pub ColorTxt: ImU32, + pub ColorBg: ImU32, + pub ColorHov: ImU32, + pub ColorAct: ImU32, + pub ColorHiLi: ImU32, + pub Enabled: bool, + pub Vertical: bool, + pub FitThisFrame: bool, + pub HasRange: bool, + pub HasFormatSpec: bool, + pub ShowDefaultTicks: bool, + pub Hovered: bool, + pub Held: bool, +} +#[test] +fn bindgen_test_layout_ImPlotAxis() { + assert_eq!( + ::std::mem::size_of::(), + 376usize, + concat!("Size of: ", stringify!(ImPlotAxis)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImPlotAxis)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ID as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(ID) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Flags as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(Flags) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).PreviousFlags as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(PreviousFlags) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Range as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(Range) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).RangeCond as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(RangeCond) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Scale as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(Scale) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).FitExtents as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(FitExtents) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).OrthoAxis as *const _ as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(OrthoAxis) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ConstraintRange as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(ConstraintRange) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ConstraintZoom as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(ConstraintZoom) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Ticker as *const _ as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(Ticker) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Formatter as *const _ as usize }, + 152usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(Formatter) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).FormatterData as *const _ as usize }, + 160usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(FormatterData) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).FormatSpec as *const _ as usize }, + 168usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(FormatSpec) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Locator as *const _ as usize }, + 184usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(Locator) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).LinkedMin as *const _ as usize }, + 192usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(LinkedMin) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).LinkedMax as *const _ as usize }, + 200usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(LinkedMax) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).PickerLevel as *const _ as usize }, + 208usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(PickerLevel) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).PickerTimeMin as *const _ as usize }, + 216usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(PickerTimeMin) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).PickerTimeMax as *const _ as usize }, + 232usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(PickerTimeMax) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).TransformForward as *const _ as usize }, + 248usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(TransformForward) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).TransformInverse as *const _ as usize }, + 256usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(TransformInverse) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).TransformData as *const _ as usize }, + 264usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(TransformData) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).PixelMin as *const _ as usize }, + 272usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(PixelMin) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).PixelMax as *const _ as usize }, + 276usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(PixelMax) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ScaleMin as *const _ as usize }, + 280usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(ScaleMin) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ScaleMax as *const _ as usize }, + 288usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(ScaleMax) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ScaleToPixel as *const _ as usize }, + 296usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(ScaleToPixel) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Datum1 as *const _ as usize }, + 304usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(Datum1) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Datum2 as *const _ as usize }, + 308usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(Datum2) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).HoverRect as *const _ as usize }, + 312usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(HoverRect) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).LabelOffset as *const _ as usize }, + 328usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(LabelOffset) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ColorMaj as *const _ as usize }, + 332usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(ColorMaj) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ColorMin as *const _ as usize }, + 336usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(ColorMin) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ColorTick as *const _ as usize }, + 340usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(ColorTick) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ColorTxt as *const _ as usize }, + 344usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(ColorTxt) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ColorBg as *const _ as usize }, + 348usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(ColorBg) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ColorHov as *const _ as usize }, + 352usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(ColorHov) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ColorAct as *const _ as usize }, + 356usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(ColorAct) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ColorHiLi as *const _ as usize }, + 360usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(ColorHiLi) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Enabled as *const _ as usize }, + 364usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(Enabled) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Vertical as *const _ as usize }, + 365usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(Vertical) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).FitThisFrame as *const _ as usize }, + 366usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(FitThisFrame) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).HasRange as *const _ as usize }, + 367usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(HasRange) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).HasFormatSpec as *const _ as usize }, + 368usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(HasFormatSpec) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ShowDefaultTicks as *const _ as usize }, + 369usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(ShowDefaultTicks) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Hovered as *const _ as usize }, + 370usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(Hovered) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Held as *const _ as usize }, + 371usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAxis), + "::", + stringify!(Held) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImPlotAlignmentData { + pub Vertical: bool, + pub PadA: f32, + pub PadB: f32, + pub PadAMax: f32, + pub PadBMax: f32, +} +#[test] +fn bindgen_test_layout_ImPlotAlignmentData() { + assert_eq!( + ::std::mem::size_of::(), + 20usize, + concat!("Size of: ", stringify!(ImPlotAlignmentData)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ImPlotAlignmentData)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Vertical as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAlignmentData), + "::", + stringify!(Vertical) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).PadA as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAlignmentData), + "::", + stringify!(PadA) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).PadB as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAlignmentData), + "::", + stringify!(PadB) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).PadAMax as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAlignmentData), + "::", + stringify!(PadAMax) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).PadBMax as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ImPlotAlignmentData), + "::", + stringify!(PadBMax) + ) + ); +} +#[repr(C)] +pub struct ImPlotItem { + pub ID: ImGuiID, + pub Color: ImU32, + pub LegendHoverRect: ImRect, + pub NameOffset: ::std::os::raw::c_int, + pub Show: bool, + pub LegendHovered: bool, + pub SeenThisFrame: bool, +} +#[test] +fn bindgen_test_layout_ImPlotItem() { + assert_eq!( + ::std::mem::size_of::(), + 32usize, + concat!("Size of: ", stringify!(ImPlotItem)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ImPlotItem)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ID as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPlotItem), + "::", + stringify!(ID) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Color as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImPlotItem), + "::", + stringify!(Color) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).LegendHoverRect as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImPlotItem), + "::", + stringify!(LegendHoverRect) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).NameOffset as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(ImPlotItem), + "::", + stringify!(NameOffset) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Show as *const _ as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(ImPlotItem), + "::", + stringify!(Show) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).LegendHovered as *const _ as usize }, + 29usize, + concat!( + "Offset of field: ", + stringify!(ImPlotItem), + "::", + stringify!(LegendHovered) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).SeenThisFrame as *const _ as usize }, + 30usize, + concat!( + "Offset of field: ", + stringify!(ImPlotItem), + "::", + stringify!(SeenThisFrame) + ) + ); +} +#[repr(C)] +pub struct ImPlotLegend { + pub Flags: ImPlotLegendFlags, + pub PreviousFlags: ImPlotLegendFlags, + pub Location: ImPlotLocation, + pub PreviousLocation: ImPlotLocation, + pub Indices: ImVector_int, + pub Labels: ImGuiTextBuffer, + pub Rect: ImRect, + pub Hovered: bool, + pub Held: bool, + pub CanGoInside: bool, +} +#[test] +fn bindgen_test_layout_ImPlotLegend() { + assert_eq!( + ::std::mem::size_of::(), + 72usize, + concat!("Size of: ", stringify!(ImPlotLegend)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImPlotLegend)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Flags as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPlotLegend), + "::", + stringify!(Flags) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).PreviousFlags as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImPlotLegend), + "::", + stringify!(PreviousFlags) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Location as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImPlotLegend), + "::", + stringify!(Location) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).PreviousLocation as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(ImPlotLegend), + "::", + stringify!(PreviousLocation) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Indices as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ImPlotLegend), + "::", + stringify!(Indices) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Labels as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(ImPlotLegend), + "::", + stringify!(Labels) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Rect as *const _ as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(ImPlotLegend), + "::", + stringify!(Rect) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Hovered as *const _ as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(ImPlotLegend), + "::", + stringify!(Hovered) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Held as *const _ as usize }, + 65usize, + concat!( + "Offset of field: ", + stringify!(ImPlotLegend), + "::", + stringify!(Held) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).CanGoInside as *const _ as usize }, + 66usize, + concat!( + "Offset of field: ", + stringify!(ImPlotLegend), + "::", + stringify!(CanGoInside) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImPlotItem { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImPlotItem, +} +#[test] +fn bindgen_test_layout_ImVector_ImPlotItem() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImPlotItem)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImPlotItem)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotItem), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotItem), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotItem), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +pub struct ImPool_ImPlotItem { + pub Buf: ImVector_ImPlotItem, + pub Map: ImGuiStorage, + pub FreeIdx: ImPoolIdx, + pub AliveCount: ImPoolIdx, +} +#[test] +fn bindgen_test_layout_ImPool_ImPlotItem() { + assert_eq!( + ::std::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(ImPool_ImPlotItem)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImPool_ImPlotItem)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Buf as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPool_ImPlotItem), + "::", + stringify!(Buf) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Map as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ImPool_ImPlotItem), + "::", + stringify!(Map) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).FreeIdx as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(ImPool_ImPlotItem), + "::", + stringify!(FreeIdx) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).AliveCount as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(ImPool_ImPlotItem), + "::", + stringify!(AliveCount) + ) + ); +} +#[repr(C)] +pub struct ImPlotItemGroup { + pub ID: ImGuiID, + pub Legend: ImPlotLegend, + pub ItemPool: ImPool_ImPlotItem, + pub ColormapIdx: ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout_ImPlotItemGroup() { + assert_eq!( + ::std::mem::size_of::(), + 128usize, + concat!("Size of: ", stringify!(ImPlotItemGroup)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImPlotItemGroup)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ID as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPlotItemGroup), + "::", + stringify!(ID) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Legend as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImPlotItemGroup), + "::", + stringify!(Legend) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ItemPool as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(ImPlotItemGroup), + "::", + stringify!(ItemPool) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ColormapIdx as *const _ as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(ImPlotItemGroup), + "::", + stringify!(ColormapIdx) + ) + ); +} +#[repr(C)] +pub struct ImPlotPlot { + pub ID: ImGuiID, + pub Flags: ImPlotFlags, + pub PreviousFlags: ImPlotFlags, + pub MouseTextLocation: ImPlotLocation, + pub MouseTextFlags: ImPlotMouseTextFlags, + pub Axes: [ImPlotAxis; 6usize], + pub TextBuffer: ImGuiTextBuffer, + pub Items: ImPlotItemGroup, + pub CurrentX: ImAxis, + pub CurrentY: ImAxis, + pub FrameRect: ImRect, + pub CanvasRect: ImRect, + pub PlotRect: ImRect, + pub AxesRect: ImRect, + pub SelectRect: ImRect, + pub SelectStart: ImVec2, + pub TitleOffset: ::std::os::raw::c_int, + pub JustCreated: bool, + pub Initialized: bool, + pub SetupLocked: bool, + pub FitThisFrame: bool, + pub Hovered: bool, + pub Held: bool, + pub Selecting: bool, + pub Selected: bool, + pub ContextLocked: bool, +} +#[test] +fn bindgen_test_layout_ImPlotPlot() { + assert_eq!( + ::std::mem::size_of::(), + 2536usize, + concat!("Size of: ", stringify!(ImPlotPlot)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImPlotPlot)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ID as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPlot), + "::", + stringify!(ID) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Flags as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPlot), + "::", + stringify!(Flags) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).PreviousFlags as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPlot), + "::", + stringify!(PreviousFlags) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).MouseTextLocation as *const _ as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPlot), + "::", + stringify!(MouseTextLocation) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).MouseTextFlags as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPlot), + "::", + stringify!(MouseTextFlags) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Axes as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPlot), + "::", + stringify!(Axes) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).TextBuffer as *const _ as usize }, + 2280usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPlot), + "::", + stringify!(TextBuffer) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Items as *const _ as usize }, + 2296usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPlot), + "::", + stringify!(Items) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).CurrentX as *const _ as usize }, + 2424usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPlot), + "::", + stringify!(CurrentX) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).CurrentY as *const _ as usize }, + 2428usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPlot), + "::", + stringify!(CurrentY) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).FrameRect as *const _ as usize }, + 2432usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPlot), + "::", + stringify!(FrameRect) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).CanvasRect as *const _ as usize }, + 2448usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPlot), + "::", + stringify!(CanvasRect) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).PlotRect as *const _ as usize }, + 2464usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPlot), + "::", + stringify!(PlotRect) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).AxesRect as *const _ as usize }, + 2480usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPlot), + "::", + stringify!(AxesRect) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).SelectRect as *const _ as usize }, + 2496usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPlot), + "::", + stringify!(SelectRect) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).SelectStart as *const _ as usize }, + 2512usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPlot), + "::", + stringify!(SelectStart) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).TitleOffset as *const _ as usize }, + 2520usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPlot), + "::", + stringify!(TitleOffset) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).JustCreated as *const _ as usize }, + 2524usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPlot), + "::", + stringify!(JustCreated) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Initialized as *const _ as usize }, + 2525usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPlot), + "::", + stringify!(Initialized) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).SetupLocked as *const _ as usize }, + 2526usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPlot), + "::", + stringify!(SetupLocked) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).FitThisFrame as *const _ as usize }, + 2527usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPlot), + "::", + stringify!(FitThisFrame) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Hovered as *const _ as usize }, + 2528usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPlot), + "::", + stringify!(Hovered) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Held as *const _ as usize }, + 2529usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPlot), + "::", + stringify!(Held) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Selecting as *const _ as usize }, + 2530usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPlot), + "::", + stringify!(Selecting) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Selected as *const _ as usize }, + 2531usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPlot), + "::", + stringify!(Selected) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ContextLocked as *const _ as usize }, + 2532usize, + concat!( + "Offset of field: ", + stringify!(ImPlotPlot), + "::", + stringify!(ContextLocked) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImPlotAlignmentData { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImPlotAlignmentData, +} +#[test] +fn bindgen_test_layout_ImVector_ImPlotAlignmentData() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImPlotAlignmentData)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImPlotAlignmentData)) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Size as *const _ as usize + }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotAlignmentData), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotAlignmentData), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Data as *const _ as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotAlignmentData), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImPlotRange { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImPlotRange, +} +#[test] +fn bindgen_test_layout_ImVector_ImPlotRange() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImPlotRange)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImPlotRange)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotRange), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotRange), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotRange), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +pub struct ImPlotSubplot { + pub ID: ImGuiID, + pub Flags: ImPlotSubplotFlags, + pub PreviousFlags: ImPlotSubplotFlags, + pub Items: ImPlotItemGroup, + pub Rows: ::std::os::raw::c_int, + pub Cols: ::std::os::raw::c_int, + pub CurrentIdx: ::std::os::raw::c_int, + pub FrameRect: ImRect, + pub GridRect: ImRect, + pub CellSize: ImVec2, + pub RowAlignmentData: ImVector_ImPlotAlignmentData, + pub ColAlignmentData: ImVector_ImPlotAlignmentData, + pub RowRatios: ImVector_float, + pub ColRatios: ImVector_float, + pub RowLinkData: ImVector_ImPlotRange, + pub ColLinkData: ImVector_ImPlotRange, + pub TempSizes: [f32; 2usize], + pub FrameHovered: bool, + pub HasTitle: bool, +} +#[test] +fn bindgen_test_layout_ImPlotSubplot() { + assert_eq!( + ::std::mem::size_of::(), + 312usize, + concat!("Size of: ", stringify!(ImPlotSubplot)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImPlotSubplot)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ID as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPlotSubplot), + "::", + stringify!(ID) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Flags as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImPlotSubplot), + "::", + stringify!(Flags) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).PreviousFlags as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImPlotSubplot), + "::", + stringify!(PreviousFlags) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Items as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ImPlotSubplot), + "::", + stringify!(Items) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Rows as *const _ as usize }, + 144usize, + concat!( + "Offset of field: ", + stringify!(ImPlotSubplot), + "::", + stringify!(Rows) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Cols as *const _ as usize }, + 148usize, + concat!( + "Offset of field: ", + stringify!(ImPlotSubplot), + "::", + stringify!(Cols) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).CurrentIdx as *const _ as usize }, + 152usize, + concat!( + "Offset of field: ", + stringify!(ImPlotSubplot), + "::", + stringify!(CurrentIdx) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).FrameRect as *const _ as usize }, + 156usize, + concat!( + "Offset of field: ", + stringify!(ImPlotSubplot), + "::", + stringify!(FrameRect) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).GridRect as *const _ as usize }, + 172usize, + concat!( + "Offset of field: ", + stringify!(ImPlotSubplot), + "::", + stringify!(GridRect) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).CellSize as *const _ as usize }, + 188usize, + concat!( + "Offset of field: ", + stringify!(ImPlotSubplot), + "::", + stringify!(CellSize) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).RowAlignmentData as *const _ as usize }, + 200usize, + concat!( + "Offset of field: ", + stringify!(ImPlotSubplot), + "::", + stringify!(RowAlignmentData) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ColAlignmentData as *const _ as usize }, + 216usize, + concat!( + "Offset of field: ", + stringify!(ImPlotSubplot), + "::", + stringify!(ColAlignmentData) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).RowRatios as *const _ as usize }, + 232usize, + concat!( + "Offset of field: ", + stringify!(ImPlotSubplot), + "::", + stringify!(RowRatios) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ColRatios as *const _ as usize }, + 248usize, + concat!( + "Offset of field: ", + stringify!(ImPlotSubplot), + "::", + stringify!(ColRatios) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).RowLinkData as *const _ as usize }, + 264usize, + concat!( + "Offset of field: ", + stringify!(ImPlotSubplot), + "::", + stringify!(RowLinkData) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ColLinkData as *const _ as usize }, + 280usize, + concat!( + "Offset of field: ", + stringify!(ImPlotSubplot), + "::", + stringify!(ColLinkData) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).TempSizes as *const _ as usize }, + 296usize, + concat!( + "Offset of field: ", + stringify!(ImPlotSubplot), + "::", + stringify!(TempSizes) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).FrameHovered as *const _ as usize }, + 304usize, + concat!( + "Offset of field: ", + stringify!(ImPlotSubplot), + "::", + stringify!(FrameHovered) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).HasTitle as *const _ as usize }, + 305usize, + concat!( + "Offset of field: ", + stringify!(ImPlotSubplot), + "::", + stringify!(HasTitle) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImPlotNextPlotData { + pub RangeCond: [ImPlotCond; 6usize], + pub Range: [ImPlotRange; 6usize], + pub HasRange: [bool; 6usize], + pub Fit: [bool; 6usize], + pub LinkedMin: [*mut f64; 6usize], + pub LinkedMax: [*mut f64; 6usize], +} +#[test] +fn bindgen_test_layout_ImPlotNextPlotData() { + assert_eq!( + ::std::mem::size_of::(), + 232usize, + concat!("Size of: ", stringify!(ImPlotNextPlotData)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImPlotNextPlotData)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).RangeCond as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPlotNextPlotData), + "::", + stringify!(RangeCond) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Range as *const _ as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(ImPlotNextPlotData), + "::", + stringify!(Range) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).HasRange as *const _ as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(ImPlotNextPlotData), + "::", + stringify!(HasRange) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Fit as *const _ as usize }, + 126usize, + concat!( + "Offset of field: ", + stringify!(ImPlotNextPlotData), + "::", + stringify!(Fit) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).LinkedMin as *const _ as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(ImPlotNextPlotData), + "::", + stringify!(LinkedMin) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).LinkedMax as *const _ as usize }, + 184usize, + concat!( + "Offset of field: ", + stringify!(ImPlotNextPlotData), + "::", + stringify!(LinkedMax) + ) + ); +} +#[repr(C)] +pub struct ImPlotNextItemData { + pub Colors: [ImVec4; 5usize], + pub LineWeight: f32, + pub Marker: ImPlotMarker, + pub MarkerSize: f32, + pub MarkerWeight: f32, + pub FillAlpha: f32, + pub ErrorBarSize: f32, + pub ErrorBarWeight: f32, + pub DigitalBitHeight: f32, + pub DigitalBitGap: f32, + pub RenderLine: bool, + pub RenderFill: bool, + pub RenderMarkerLine: bool, + pub RenderMarkerFill: bool, + pub HasHidden: bool, + pub Hidden: bool, + pub HiddenCond: ImPlotCond, +} +#[test] +fn bindgen_test_layout_ImPlotNextItemData() { + assert_eq!( + ::std::mem::size_of::(), + 128usize, + concat!("Size of: ", stringify!(ImPlotNextItemData)) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!("Alignment of ", stringify!(ImPlotNextItemData)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Colors as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPlotNextItemData), + "::", + stringify!(Colors) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).LineWeight as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(ImPlotNextItemData), + "::", + stringify!(LineWeight) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Marker as *const _ as usize }, + 84usize, + concat!( + "Offset of field: ", + stringify!(ImPlotNextItemData), + "::", + stringify!(Marker) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).MarkerSize as *const _ as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(ImPlotNextItemData), + "::", + stringify!(MarkerSize) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).MarkerWeight as *const _ as usize }, + 92usize, + concat!( + "Offset of field: ", + stringify!(ImPlotNextItemData), + "::", + stringify!(MarkerWeight) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).FillAlpha as *const _ as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(ImPlotNextItemData), + "::", + stringify!(FillAlpha) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ErrorBarSize as *const _ as usize }, + 100usize, + concat!( + "Offset of field: ", + stringify!(ImPlotNextItemData), + "::", + stringify!(ErrorBarSize) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).ErrorBarWeight as *const _ as usize + }, + 104usize, + concat!( + "Offset of field: ", + stringify!(ImPlotNextItemData), + "::", + stringify!(ErrorBarWeight) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).DigitalBitHeight as *const _ as usize + }, + 108usize, + concat!( + "Offset of field: ", + stringify!(ImPlotNextItemData), + "::", + stringify!(DigitalBitHeight) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).DigitalBitGap as *const _ as usize + }, + 112usize, + concat!( + "Offset of field: ", + stringify!(ImPlotNextItemData), + "::", + stringify!(DigitalBitGap) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).RenderLine as *const _ as usize }, + 116usize, + concat!( + "Offset of field: ", + stringify!(ImPlotNextItemData), + "::", + stringify!(RenderLine) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).RenderFill as *const _ as usize }, + 117usize, + concat!( + "Offset of field: ", + stringify!(ImPlotNextItemData), + "::", + stringify!(RenderFill) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).RenderMarkerLine as *const _ as usize + }, + 118usize, + concat!( + "Offset of field: ", + stringify!(ImPlotNextItemData), + "::", + stringify!(RenderMarkerLine) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).RenderMarkerFill as *const _ as usize + }, + 119usize, + concat!( + "Offset of field: ", + stringify!(ImPlotNextItemData), + "::", + stringify!(RenderMarkerFill) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).HasHidden as *const _ as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(ImPlotNextItemData), + "::", + stringify!(HasHidden) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Hidden as *const _ as usize }, + 121usize, + concat!( + "Offset of field: ", + stringify!(ImPlotNextItemData), + "::", + stringify!(Hidden) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).HiddenCond as *const _ as usize }, + 124usize, + concat!( + "Offset of field: ", + stringify!(ImPlotNextItemData), + "::", + stringify!(HiddenCond) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImPlotPlot { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImPlotPlot, +} +#[test] +fn bindgen_test_layout_ImVector_ImPlotPlot() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImPlotPlot)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImPlotPlot)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotPlot), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotPlot), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotPlot), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +pub struct ImPool_ImPlotPlot { + pub Buf: ImVector_ImPlotPlot, + pub Map: ImGuiStorage, + pub FreeIdx: ImPoolIdx, + pub AliveCount: ImPoolIdx, +} +#[test] +fn bindgen_test_layout_ImPool_ImPlotPlot() { + assert_eq!( + ::std::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(ImPool_ImPlotPlot)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImPool_ImPlotPlot)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Buf as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPool_ImPlotPlot), + "::", + stringify!(Buf) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Map as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ImPool_ImPlotPlot), + "::", + stringify!(Map) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).FreeIdx as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(ImPool_ImPlotPlot), + "::", + stringify!(FreeIdx) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).AliveCount as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(ImPool_ImPlotPlot), + "::", + stringify!(AliveCount) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImPlotSubplot { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImPlotSubplot, +} +#[test] +fn bindgen_test_layout_ImVector_ImPlotSubplot() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImPlotSubplot)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImPlotSubplot)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotSubplot), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotSubplot), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotSubplot), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +pub struct ImPool_ImPlotSubplot { + pub Buf: ImVector_ImPlotSubplot, + pub Map: ImGuiStorage, + pub FreeIdx: ImPoolIdx, + pub AliveCount: ImPoolIdx, +} +#[test] +fn bindgen_test_layout_ImPool_ImPlotSubplot() { + assert_eq!( + ::std::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(ImPool_ImPlotSubplot)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImPool_ImPlotSubplot)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Buf as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPool_ImPlotSubplot), + "::", + stringify!(Buf) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Map as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ImPool_ImPlotSubplot), + "::", + stringify!(Map) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).FreeIdx as *const _ as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(ImPool_ImPlotSubplot), + "::", + stringify!(FreeIdx) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).AliveCount as *const _ as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(ImPool_ImPlotSubplot), + "::", + stringify!(AliveCount) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_ImPlotColormap { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut ImPlotColormap, +} +#[test] +fn bindgen_test_layout_ImVector_ImPlotColormap() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_ImPlotColormap)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_ImPlotColormap)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotColormap), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).Capacity as *const _ as usize + }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotColormap), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_ImPlotColormap), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ImVector_double { + pub Size: ::std::os::raw::c_int, + pub Capacity: ::std::os::raw::c_int, + pub Data: *mut f64, +} +#[test] +fn bindgen_test_layout_ImVector_double() { + assert_eq!( + ::std::mem::size_of::(), + 16usize, + concat!("Size of: ", stringify!(ImVector_double)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImVector_double)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Size as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImVector_double), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Capacity as *const _ as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(ImVector_double), + "::", + stringify!(Capacity) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Data as *const _ as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ImVector_double), + "::", + stringify!(Data) + ) + ); +} +#[repr(C)] +pub struct ImPool_ImPlotAlignmentData { + pub Buf: ImVector_ImPlotAlignmentData, + pub Map: ImGuiStorage, + pub FreeIdx: ImPoolIdx, + pub AliveCount: ImPoolIdx, +} +#[test] +fn bindgen_test_layout_ImPool_ImPlotAlignmentData() { + assert_eq!( + ::std::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(ImPool_ImPlotAlignmentData)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImPool_ImPlotAlignmentData)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Buf as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPool_ImPlotAlignmentData), + "::", + stringify!(Buf) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Map as *const _ as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ImPool_ImPlotAlignmentData), + "::", + stringify!(Map) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).FreeIdx as *const _ as usize + }, + 32usize, + concat!( + "Offset of field: ", + stringify!(ImPool_ImPlotAlignmentData), + "::", + stringify!(FreeIdx) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).AliveCount as *const _ as usize + }, + 36usize, + concat!( + "Offset of field: ", + stringify!(ImPool_ImPlotAlignmentData), + "::", + stringify!(AliveCount) + ) + ); +} +#[repr(C)] +pub struct ImPlotContext { + pub Plots: ImPool_ImPlotPlot, + pub Subplots: ImPool_ImPlotSubplot, + pub CurrentPlot: *mut ImPlotPlot, + pub CurrentSubplot: *mut ImPlotSubplot, + pub CurrentItems: *mut ImPlotItemGroup, + pub CurrentItem: *mut ImPlotItem, + pub PreviousItem: *mut ImPlotItem, + pub CTicker: ImPlotTicker, + pub Annotations: ImPlotAnnotationCollection, + pub Tags: ImPlotTagCollection, + pub ChildWindowMade: bool, + pub Style: ImPlotStyle, + pub ColorModifiers: ImVector_ImGuiColorMod, + pub StyleModifiers: ImVector_ImGuiStyleMod, + pub ColormapData: ImPlotColormapData, + pub ColormapModifiers: ImVector_ImPlotColormap, + pub Tm: tm, + pub TempDouble1: ImVector_double, + pub TempDouble2: ImVector_double, + pub TempInt1: ImVector_int, + pub DigitalPlotItemCnt: ::std::os::raw::c_int, + pub DigitalPlotOffset: ::std::os::raw::c_int, + pub NextPlotData: ImPlotNextPlotData, + pub NextItemData: ImPlotNextItemData, + pub InputMap: ImPlotInputMap, + pub OpenContextThisFrame: bool, + pub MousePosStringBuilder: ImGuiTextBuffer, + pub SortItems: *mut ImPlotItemGroup, + pub AlignmentData: ImPool_ImPlotAlignmentData, + pub CurrentAlignmentH: *mut ImPlotAlignmentData, + pub CurrentAlignmentV: *mut ImPlotAlignmentData, +} +#[test] +fn bindgen_test_layout_ImPlotContext() { + assert_eq!( + ::std::mem::size_of::(), + 1600usize, + concat!("Size of: ", stringify!(ImPlotContext)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(ImPlotContext)) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Plots as *const _ as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(Plots) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Subplots as *const _ as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(Subplots) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).CurrentPlot as *const _ as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(CurrentPlot) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).CurrentSubplot as *const _ as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(CurrentSubplot) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).CurrentItems as *const _ as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(CurrentItems) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).CurrentItem as *const _ as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(CurrentItem) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).PreviousItem as *const _ as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(PreviousItem) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).CTicker as *const _ as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(CTicker) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Annotations as *const _ as usize }, + 176usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(Annotations) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Tags as *const _ as usize }, + 216usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(Tags) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ChildWindowMade as *const _ as usize }, + 256usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(ChildWindowMade) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Style as *const _ as usize }, + 260usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(Style) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ColorModifiers as *const _ as usize }, + 776usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(ColorModifiers) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).StyleModifiers as *const _ as usize }, + 792usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(StyleModifiers) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ColormapData as *const _ as usize }, + 808usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(ColormapData) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).ColormapModifiers as *const _ as usize }, + 976usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(ColormapModifiers) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).Tm as *const _ as usize }, + 992usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(Tm) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).TempDouble1 as *const _ as usize }, + 1048usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(TempDouble1) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).TempDouble2 as *const _ as usize }, + 1064usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(TempDouble2) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).TempInt1 as *const _ as usize }, + 1080usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(TempInt1) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).DigitalPlotItemCnt as *const _ as usize + }, + 1096usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(DigitalPlotItemCnt) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).DigitalPlotOffset as *const _ as usize }, + 1100usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(DigitalPlotOffset) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).NextPlotData as *const _ as usize }, + 1104usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(NextPlotData) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).NextItemData as *const _ as usize }, + 1336usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(NextItemData) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).InputMap as *const _ as usize }, + 1464usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(InputMap) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).OpenContextThisFrame as *const _ as usize + }, + 1512usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(OpenContextThisFrame) + ) + ); + assert_eq!( + unsafe { + &(*(::std::ptr::null::())).MousePosStringBuilder as *const _ as usize + }, + 1520usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(MousePosStringBuilder) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).SortItems as *const _ as usize }, + 1536usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(SortItems) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).AlignmentData as *const _ as usize }, + 1544usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(AlignmentData) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).CurrentAlignmentH as *const _ as usize }, + 1584usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(CurrentAlignmentH) + ) + ); + assert_eq!( + unsafe { &(*(::std::ptr::null::())).CurrentAlignmentV as *const _ as usize }, + 1592usize, + concat!( + "Offset of field: ", + stringify!(ImPlotContext), + "::", + stringify!(CurrentAlignmentV) + ) + ); +} +pub type ImPlotPoint_getter = ::std::option::Option< + unsafe extern "C" fn( + data: *mut ::std::os::raw::c_void, + idx: ::std::os::raw::c_int, + point: *mut ImPlotPoint, + ) -> *mut ::std::os::raw::c_void, +>; +extern "C" { + pub fn ImPlotPoint_ImPlotPoint_Nil() -> *mut ImPlotPoint; +} +extern "C" { + pub fn ImPlotPoint_destroy(self_: *mut ImPlotPoint); +} +extern "C" { + pub fn ImPlotPoint_ImPlotPoint_double(_x: f64, _y: f64) -> *mut ImPlotPoint; +} +extern "C" { + pub fn ImPlotPoint_ImPlotPoint_Vec2(p: ImVec2) -> *mut ImPlotPoint; +} +extern "C" { + pub fn ImPlotRange_ImPlotRange_Nil() -> *mut ImPlotRange; +} +extern "C" { + pub fn ImPlotRange_destroy(self_: *mut ImPlotRange); +} +extern "C" { + pub fn ImPlotRange_ImPlotRange_double(_min: f64, _max: f64) -> *mut ImPlotRange; +} +extern "C" { + pub fn ImPlotRange_Contains(self_: *mut ImPlotRange, value: f64) -> bool; +} +extern "C" { + pub fn ImPlotRange_Size(self_: *mut ImPlotRange) -> f64; +} +extern "C" { + pub fn ImPlotRange_Clamp(self_: *mut ImPlotRange, value: f64) -> f64; +} +extern "C" { + pub fn ImPlotRect_ImPlotRect_Nil() -> *mut ImPlotRect; +} +extern "C" { + pub fn ImPlotRect_destroy(self_: *mut ImPlotRect); +} +extern "C" { + pub fn ImPlotRect_ImPlotRect_double( + x_min: f64, + x_max: f64, + y_min: f64, + y_max: f64, + ) -> *mut ImPlotRect; +} +extern "C" { + pub fn ImPlotRect_Contains_PlotPoInt(self_: *mut ImPlotRect, p: ImPlotPoint) -> bool; +} +extern "C" { + pub fn ImPlotRect_Contains_double(self_: *mut ImPlotRect, x: f64, y: f64) -> bool; +} +extern "C" { + pub fn ImPlotRect_Size(pOut: *mut ImPlotPoint, self_: *mut ImPlotRect); +} +extern "C" { + pub fn ImPlotRect_Clamp_PlotPoInt( + pOut: *mut ImPlotPoint, + self_: *mut ImPlotRect, + p: ImPlotPoint, + ); +} +extern "C" { + pub fn ImPlotRect_Clamp_double(pOut: *mut ImPlotPoint, self_: *mut ImPlotRect, x: f64, y: f64); +} +extern "C" { + pub fn ImPlotRect_Min(pOut: *mut ImPlotPoint, self_: *mut ImPlotRect); +} +extern "C" { + pub fn ImPlotRect_Max(pOut: *mut ImPlotPoint, self_: *mut ImPlotRect); +} +extern "C" { + pub fn ImPlotStyle_ImPlotStyle() -> *mut ImPlotStyle; +} +extern "C" { + pub fn ImPlotStyle_destroy(self_: *mut ImPlotStyle); +} +extern "C" { + pub fn ImPlotInputMap_ImPlotInputMap() -> *mut ImPlotInputMap; +} +extern "C" { + pub fn ImPlotInputMap_destroy(self_: *mut ImPlotInputMap); +} +extern "C" { + pub fn ImPlot_CreateContext() -> *mut ImPlotContext; +} +extern "C" { + pub fn ImPlot_DestroyContext(ctx: *mut ImPlotContext); +} +extern "C" { + pub fn ImPlot_GetCurrentContext() -> *mut ImPlotContext; +} +extern "C" { + pub fn ImPlot_SetCurrentContext(ctx: *mut ImPlotContext); +} +extern "C" { + pub fn ImPlot_SetImGuiContext(ctx: *mut ImGuiContext); +} +extern "C" { + pub fn ImPlot_BeginPlot( + title_id: *const ::std::os::raw::c_char, + size: ImVec2, + flags: ImPlotFlags, + ) -> bool; +} +extern "C" { + pub fn ImPlot_EndPlot(); +} +extern "C" { + pub fn ImPlot_BeginSubplots( + title_id: *const ::std::os::raw::c_char, + rows: ::std::os::raw::c_int, + cols: ::std::os::raw::c_int, + size: ImVec2, + flags: ImPlotSubplotFlags, + row_ratios: *mut f32, + col_ratios: *mut f32, + ) -> bool; +} +extern "C" { + pub fn ImPlot_EndSubplots(); +} +extern "C" { + pub fn ImPlot_SetupAxis( + axis: ImAxis, + label: *const ::std::os::raw::c_char, + flags: ImPlotAxisFlags, + ); +} +extern "C" { + pub fn ImPlot_SetupAxisLimits(axis: ImAxis, v_min: f64, v_max: f64, cond: ImPlotCond); +} +extern "C" { + pub fn ImPlot_SetupAxisLinks(axis: ImAxis, link_min: *mut f64, link_max: *mut f64); +} +extern "C" { + pub fn ImPlot_SetupAxisFormat_Str(axis: ImAxis, fmt: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn ImPlot_SetupAxisFormat_PlotFormatter( + axis: ImAxis, + formatter: ImPlotFormatter, + data: *mut ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn ImPlot_SetupAxisTicks_doublePtr( + axis: ImAxis, + values: *const f64, + n_ticks: ::std::os::raw::c_int, + labels: *const *const ::std::os::raw::c_char, + keep_default: bool, + ); +} +extern "C" { + pub fn ImPlot_SetupAxisTicks_double( + axis: ImAxis, + v_min: f64, + v_max: f64, + n_ticks: ::std::os::raw::c_int, + labels: *const *const ::std::os::raw::c_char, + keep_default: bool, + ); +} +extern "C" { + pub fn ImPlot_SetupAxisScale_PlotScale(axis: ImAxis, scale: ImPlotScale); +} +extern "C" { + pub fn ImPlot_SetupAxisScale_PlotTransform( + axis: ImAxis, + forward: ImPlotTransform, + inverse: ImPlotTransform, + data: *mut ::std::os::raw::c_void, + ); +} +extern "C" { + pub fn ImPlot_SetupAxisLimitsConstraints(axis: ImAxis, v_min: f64, v_max: f64); +} +extern "C" { + pub fn ImPlot_SetupAxisZoomConstraints(axis: ImAxis, z_min: f64, z_max: f64); +} +extern "C" { + pub fn ImPlot_SetupAxes( + x_label: *const ::std::os::raw::c_char, + y_label: *const ::std::os::raw::c_char, + x_flags: ImPlotAxisFlags, + y_flags: ImPlotAxisFlags, + ); +} +extern "C" { + pub fn ImPlot_SetupAxesLimits(x_min: f64, x_max: f64, y_min: f64, y_max: f64, cond: ImPlotCond); +} +extern "C" { + pub fn ImPlot_SetupLegend(location: ImPlotLocation, flags: ImPlotLegendFlags); +} +extern "C" { + pub fn ImPlot_SetupMouseText(location: ImPlotLocation, flags: ImPlotMouseTextFlags); +} +extern "C" { + pub fn ImPlot_SetupFinish(); +} +extern "C" { + pub fn ImPlot_SetNextAxisLimits(axis: ImAxis, v_min: f64, v_max: f64, cond: ImPlotCond); +} +extern "C" { + pub fn ImPlot_SetNextAxisLinks(axis: ImAxis, link_min: *mut f64, link_max: *mut f64); +} +extern "C" { + pub fn ImPlot_SetNextAxisToFit(axis: ImAxis); +} +extern "C" { + pub fn ImPlot_SetNextAxesLimits( + x_min: f64, + x_max: f64, + y_min: f64, + y_max: f64, + cond: ImPlotCond, + ); +} +extern "C" { + pub fn ImPlot_SetNextAxesToFit(); +} +extern "C" { + pub fn ImPlot_PlotLine_FloatPtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const f32, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotLineFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotLine_doublePtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const f64, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotLineFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotLine_S8PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImS8, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotLineFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotLine_U8PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImU8, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotLineFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotLine_S16PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImS16, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotLineFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotLine_U16PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImU16, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotLineFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotLine_S32PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImS32, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotLineFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotLine_U32PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImU32, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotLineFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotLine_S64PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImS64, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotLineFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotLine_U64PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImU64, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotLineFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotLine_FloatPtrFloatPtr( + label_id: *const ::std::os::raw::c_char, + xs: *const f32, + ys: *const f32, + count: ::std::os::raw::c_int, + flags: ImPlotLineFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotLine_doublePtrdoublePtr( + label_id: *const ::std::os::raw::c_char, + xs: *const f64, + ys: *const f64, + count: ::std::os::raw::c_int, + flags: ImPlotLineFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotLine_S8PtrS8Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS8, + ys: *const ImS8, + count: ::std::os::raw::c_int, + flags: ImPlotLineFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotLine_U8PtrU8Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU8, + ys: *const ImU8, + count: ::std::os::raw::c_int, + flags: ImPlotLineFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotLine_S16PtrS16Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS16, + ys: *const ImS16, + count: ::std::os::raw::c_int, + flags: ImPlotLineFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotLine_U16PtrU16Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU16, + ys: *const ImU16, + count: ::std::os::raw::c_int, + flags: ImPlotLineFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotLine_S32PtrS32Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS32, + ys: *const ImS32, + count: ::std::os::raw::c_int, + flags: ImPlotLineFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotLine_U32PtrU32Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU32, + ys: *const ImU32, + count: ::std::os::raw::c_int, + flags: ImPlotLineFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotLine_S64PtrS64Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS64, + ys: *const ImS64, + count: ::std::os::raw::c_int, + flags: ImPlotLineFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotLine_U64PtrU64Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU64, + ys: *const ImU64, + count: ::std::os::raw::c_int, + flags: ImPlotLineFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotLineG( + label_id: *const ::std::os::raw::c_char, + getter: ImPlotPoint_getter, + data: *mut ::std::os::raw::c_void, + count: ::std::os::raw::c_int, + flags: ImPlotLineFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotScatter_FloatPtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const f32, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotScatterFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotScatter_doublePtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const f64, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotScatterFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotScatter_S8PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImS8, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotScatterFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotScatter_U8PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImU8, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotScatterFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotScatter_S16PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImS16, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotScatterFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotScatter_U16PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImU16, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotScatterFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotScatter_S32PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImS32, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotScatterFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotScatter_U32PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImU32, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotScatterFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotScatter_S64PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImS64, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotScatterFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotScatter_U64PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImU64, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotScatterFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotScatter_FloatPtrFloatPtr( + label_id: *const ::std::os::raw::c_char, + xs: *const f32, + ys: *const f32, + count: ::std::os::raw::c_int, + flags: ImPlotScatterFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotScatter_doublePtrdoublePtr( + label_id: *const ::std::os::raw::c_char, + xs: *const f64, + ys: *const f64, + count: ::std::os::raw::c_int, + flags: ImPlotScatterFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotScatter_S8PtrS8Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS8, + ys: *const ImS8, + count: ::std::os::raw::c_int, + flags: ImPlotScatterFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotScatter_U8PtrU8Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU8, + ys: *const ImU8, + count: ::std::os::raw::c_int, + flags: ImPlotScatterFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotScatter_S16PtrS16Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS16, + ys: *const ImS16, + count: ::std::os::raw::c_int, + flags: ImPlotScatterFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotScatter_U16PtrU16Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU16, + ys: *const ImU16, + count: ::std::os::raw::c_int, + flags: ImPlotScatterFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotScatter_S32PtrS32Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS32, + ys: *const ImS32, + count: ::std::os::raw::c_int, + flags: ImPlotScatterFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotScatter_U32PtrU32Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU32, + ys: *const ImU32, + count: ::std::os::raw::c_int, + flags: ImPlotScatterFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotScatter_S64PtrS64Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS64, + ys: *const ImS64, + count: ::std::os::raw::c_int, + flags: ImPlotScatterFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotScatter_U64PtrU64Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU64, + ys: *const ImU64, + count: ::std::os::raw::c_int, + flags: ImPlotScatterFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotScatterG( + label_id: *const ::std::os::raw::c_char, + getter: ImPlotPoint_getter, + data: *mut ::std::os::raw::c_void, + count: ::std::os::raw::c_int, + flags: ImPlotScatterFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotStairs_FloatPtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const f32, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotStairsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStairs_doublePtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const f64, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotStairsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStairs_S8PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImS8, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotStairsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStairs_U8PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImU8, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotStairsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStairs_S16PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImS16, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotStairsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStairs_U16PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImU16, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotStairsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStairs_S32PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImS32, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotStairsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStairs_U32PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImU32, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotStairsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStairs_S64PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImS64, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotStairsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStairs_U64PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImU64, + count: ::std::os::raw::c_int, + xscale: f64, + xstart: f64, + flags: ImPlotStairsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStairs_FloatPtrFloatPtr( + label_id: *const ::std::os::raw::c_char, + xs: *const f32, + ys: *const f32, + count: ::std::os::raw::c_int, + flags: ImPlotStairsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStairs_doublePtrdoublePtr( + label_id: *const ::std::os::raw::c_char, + xs: *const f64, + ys: *const f64, + count: ::std::os::raw::c_int, + flags: ImPlotStairsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStairs_S8PtrS8Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS8, + ys: *const ImS8, + count: ::std::os::raw::c_int, + flags: ImPlotStairsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStairs_U8PtrU8Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU8, + ys: *const ImU8, + count: ::std::os::raw::c_int, + flags: ImPlotStairsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStairs_S16PtrS16Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS16, + ys: *const ImS16, + count: ::std::os::raw::c_int, + flags: ImPlotStairsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStairs_U16PtrU16Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU16, + ys: *const ImU16, + count: ::std::os::raw::c_int, + flags: ImPlotStairsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStairs_S32PtrS32Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS32, + ys: *const ImS32, + count: ::std::os::raw::c_int, + flags: ImPlotStairsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStairs_U32PtrU32Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU32, + ys: *const ImU32, + count: ::std::os::raw::c_int, + flags: ImPlotStairsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStairs_S64PtrS64Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS64, + ys: *const ImS64, + count: ::std::os::raw::c_int, + flags: ImPlotStairsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStairs_U64PtrU64Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU64, + ys: *const ImU64, + count: ::std::os::raw::c_int, + flags: ImPlotStairsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStairsG( + label_id: *const ::std::os::raw::c_char, + getter: ImPlotPoint_getter, + data: *mut ::std::os::raw::c_void, + count: ::std::os::raw::c_int, + flags: ImPlotStairsFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_FloatPtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const f32, + count: ::std::os::raw::c_int, + yref: f64, + xscale: f64, + xstart: f64, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_doublePtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const f64, + count: ::std::os::raw::c_int, + yref: f64, + xscale: f64, + xstart: f64, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_S8PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImS8, + count: ::std::os::raw::c_int, + yref: f64, + xscale: f64, + xstart: f64, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_U8PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImU8, + count: ::std::os::raw::c_int, + yref: f64, + xscale: f64, + xstart: f64, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_S16PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImS16, + count: ::std::os::raw::c_int, + yref: f64, + xscale: f64, + xstart: f64, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_U16PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImU16, + count: ::std::os::raw::c_int, + yref: f64, + xscale: f64, + xstart: f64, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_S32PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImS32, + count: ::std::os::raw::c_int, + yref: f64, + xscale: f64, + xstart: f64, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_U32PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImU32, + count: ::std::os::raw::c_int, + yref: f64, + xscale: f64, + xstart: f64, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_S64PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImS64, + count: ::std::os::raw::c_int, + yref: f64, + xscale: f64, + xstart: f64, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_U64PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImU64, + count: ::std::os::raw::c_int, + yref: f64, + xscale: f64, + xstart: f64, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_FloatPtrFloatPtrInt( + label_id: *const ::std::os::raw::c_char, + xs: *const f32, + ys: *const f32, + count: ::std::os::raw::c_int, + yref: f64, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_doublePtrdoublePtrInt( + label_id: *const ::std::os::raw::c_char, + xs: *const f64, + ys: *const f64, + count: ::std::os::raw::c_int, + yref: f64, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_S8PtrS8PtrInt( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS8, + ys: *const ImS8, + count: ::std::os::raw::c_int, + yref: f64, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_U8PtrU8PtrInt( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU8, + ys: *const ImU8, + count: ::std::os::raw::c_int, + yref: f64, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_S16PtrS16PtrInt( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS16, + ys: *const ImS16, + count: ::std::os::raw::c_int, + yref: f64, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_U16PtrU16PtrInt( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU16, + ys: *const ImU16, + count: ::std::os::raw::c_int, + yref: f64, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_S32PtrS32PtrInt( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS32, + ys: *const ImS32, + count: ::std::os::raw::c_int, + yref: f64, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_U32PtrU32PtrInt( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU32, + ys: *const ImU32, + count: ::std::os::raw::c_int, + yref: f64, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_S64PtrS64PtrInt( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS64, + ys: *const ImS64, + count: ::std::os::raw::c_int, + yref: f64, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_U64PtrU64PtrInt( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU64, + ys: *const ImU64, + count: ::std::os::raw::c_int, + yref: f64, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_FloatPtrFloatPtrFloatPtr( + label_id: *const ::std::os::raw::c_char, + xs: *const f32, + ys1: *const f32, + ys2: *const f32, + count: ::std::os::raw::c_int, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_doublePtrdoublePtrdoublePtr( + label_id: *const ::std::os::raw::c_char, + xs: *const f64, + ys1: *const f64, + ys2: *const f64, + count: ::std::os::raw::c_int, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_S8PtrS8PtrS8Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS8, + ys1: *const ImS8, + ys2: *const ImS8, + count: ::std::os::raw::c_int, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_U8PtrU8PtrU8Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU8, + ys1: *const ImU8, + ys2: *const ImU8, + count: ::std::os::raw::c_int, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_S16PtrS16PtrS16Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS16, + ys1: *const ImS16, + ys2: *const ImS16, + count: ::std::os::raw::c_int, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_U16PtrU16PtrU16Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU16, + ys1: *const ImU16, + ys2: *const ImU16, + count: ::std::os::raw::c_int, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_S32PtrS32PtrS32Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS32, + ys1: *const ImS32, + ys2: *const ImS32, + count: ::std::os::raw::c_int, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_U32PtrU32PtrU32Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU32, + ys1: *const ImU32, + ys2: *const ImU32, + count: ::std::os::raw::c_int, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_S64PtrS64PtrS64Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS64, + ys1: *const ImS64, + ys2: *const ImS64, + count: ::std::os::raw::c_int, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShaded_U64PtrU64PtrU64Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU64, + ys1: *const ImU64, + ys2: *const ImU64, + count: ::std::os::raw::c_int, + flags: ImPlotShadedFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotShadedG( + label_id: *const ::std::os::raw::c_char, + getter1: ImPlotPoint_getter, + data1: *mut ::std::os::raw::c_void, + getter2: ImPlotPoint_getter, + data2: *mut ::std::os::raw::c_void, + count: ::std::os::raw::c_int, + flags: ImPlotShadedFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotBars_FloatPtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const f32, + count: ::std::os::raw::c_int, + bar_size: f64, + shift: f64, + flags: ImPlotBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotBars_doublePtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const f64, + count: ::std::os::raw::c_int, + bar_size: f64, + shift: f64, + flags: ImPlotBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotBars_S8PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImS8, + count: ::std::os::raw::c_int, + bar_size: f64, + shift: f64, + flags: ImPlotBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotBars_U8PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImU8, + count: ::std::os::raw::c_int, + bar_size: f64, + shift: f64, + flags: ImPlotBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotBars_S16PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImS16, + count: ::std::os::raw::c_int, + bar_size: f64, + shift: f64, + flags: ImPlotBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotBars_U16PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImU16, + count: ::std::os::raw::c_int, + bar_size: f64, + shift: f64, + flags: ImPlotBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotBars_S32PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImS32, + count: ::std::os::raw::c_int, + bar_size: f64, + shift: f64, + flags: ImPlotBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotBars_U32PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImU32, + count: ::std::os::raw::c_int, + bar_size: f64, + shift: f64, + flags: ImPlotBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotBars_S64PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImS64, + count: ::std::os::raw::c_int, + bar_size: f64, + shift: f64, + flags: ImPlotBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotBars_U64PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImU64, + count: ::std::os::raw::c_int, + bar_size: f64, + shift: f64, + flags: ImPlotBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotBars_FloatPtrFloatPtr( + label_id: *const ::std::os::raw::c_char, + xs: *const f32, + ys: *const f32, + count: ::std::os::raw::c_int, + bar_size: f64, + flags: ImPlotBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotBars_doublePtrdoublePtr( + label_id: *const ::std::os::raw::c_char, + xs: *const f64, + ys: *const f64, + count: ::std::os::raw::c_int, + bar_size: f64, + flags: ImPlotBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotBars_S8PtrS8Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS8, + ys: *const ImS8, + count: ::std::os::raw::c_int, + bar_size: f64, + flags: ImPlotBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotBars_U8PtrU8Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU8, + ys: *const ImU8, + count: ::std::os::raw::c_int, + bar_size: f64, + flags: ImPlotBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotBars_S16PtrS16Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS16, + ys: *const ImS16, + count: ::std::os::raw::c_int, + bar_size: f64, + flags: ImPlotBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotBars_U16PtrU16Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU16, + ys: *const ImU16, + count: ::std::os::raw::c_int, + bar_size: f64, + flags: ImPlotBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotBars_S32PtrS32Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS32, + ys: *const ImS32, + count: ::std::os::raw::c_int, + bar_size: f64, + flags: ImPlotBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotBars_U32PtrU32Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU32, + ys: *const ImU32, + count: ::std::os::raw::c_int, + bar_size: f64, + flags: ImPlotBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotBars_S64PtrS64Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS64, + ys: *const ImS64, + count: ::std::os::raw::c_int, + bar_size: f64, + flags: ImPlotBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotBars_U64PtrU64Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU64, + ys: *const ImU64, + count: ::std::os::raw::c_int, + bar_size: f64, + flags: ImPlotBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotBarsG( + label_id: *const ::std::os::raw::c_char, + getter: ImPlotPoint_getter, + data: *mut ::std::os::raw::c_void, + count: ::std::os::raw::c_int, + bar_size: f64, + flags: ImPlotBarsFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotBarGroups_FloatPtr( + label_ids: *const *const ::std::os::raw::c_char, + values: *const f32, + item_count: ::std::os::raw::c_int, + group_count: ::std::os::raw::c_int, + group_size: f64, + shift: f64, + flags: ImPlotBarGroupsFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotBarGroups_doublePtr( + label_ids: *const *const ::std::os::raw::c_char, + values: *const f64, + item_count: ::std::os::raw::c_int, + group_count: ::std::os::raw::c_int, + group_size: f64, + shift: f64, + flags: ImPlotBarGroupsFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotBarGroups_S8Ptr( + label_ids: *const *const ::std::os::raw::c_char, + values: *const ImS8, + item_count: ::std::os::raw::c_int, + group_count: ::std::os::raw::c_int, + group_size: f64, + shift: f64, + flags: ImPlotBarGroupsFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotBarGroups_U8Ptr( + label_ids: *const *const ::std::os::raw::c_char, + values: *const ImU8, + item_count: ::std::os::raw::c_int, + group_count: ::std::os::raw::c_int, + group_size: f64, + shift: f64, + flags: ImPlotBarGroupsFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotBarGroups_S16Ptr( + label_ids: *const *const ::std::os::raw::c_char, + values: *const ImS16, + item_count: ::std::os::raw::c_int, + group_count: ::std::os::raw::c_int, + group_size: f64, + shift: f64, + flags: ImPlotBarGroupsFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotBarGroups_U16Ptr( + label_ids: *const *const ::std::os::raw::c_char, + values: *const ImU16, + item_count: ::std::os::raw::c_int, + group_count: ::std::os::raw::c_int, + group_size: f64, + shift: f64, + flags: ImPlotBarGroupsFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotBarGroups_S32Ptr( + label_ids: *const *const ::std::os::raw::c_char, + values: *const ImS32, + item_count: ::std::os::raw::c_int, + group_count: ::std::os::raw::c_int, + group_size: f64, + shift: f64, + flags: ImPlotBarGroupsFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotBarGroups_U32Ptr( + label_ids: *const *const ::std::os::raw::c_char, + values: *const ImU32, + item_count: ::std::os::raw::c_int, + group_count: ::std::os::raw::c_int, + group_size: f64, + shift: f64, + flags: ImPlotBarGroupsFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotBarGroups_S64Ptr( + label_ids: *const *const ::std::os::raw::c_char, + values: *const ImS64, + item_count: ::std::os::raw::c_int, + group_count: ::std::os::raw::c_int, + group_size: f64, + shift: f64, + flags: ImPlotBarGroupsFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotBarGroups_U64Ptr( + label_ids: *const *const ::std::os::raw::c_char, + values: *const ImU64, + item_count: ::std::os::raw::c_int, + group_count: ::std::os::raw::c_int, + group_size: f64, + shift: f64, + flags: ImPlotBarGroupsFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotErrorBars_FloatPtrFloatPtrFloatPtrInt( + label_id: *const ::std::os::raw::c_char, + xs: *const f32, + ys: *const f32, + err: *const f32, + count: ::std::os::raw::c_int, + flags: ImPlotErrorBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotErrorBars_doublePtrdoublePtrdoublePtrInt( + label_id: *const ::std::os::raw::c_char, + xs: *const f64, + ys: *const f64, + err: *const f64, + count: ::std::os::raw::c_int, + flags: ImPlotErrorBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotErrorBars_S8PtrS8PtrS8PtrInt( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS8, + ys: *const ImS8, + err: *const ImS8, + count: ::std::os::raw::c_int, + flags: ImPlotErrorBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotErrorBars_U8PtrU8PtrU8PtrInt( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU8, + ys: *const ImU8, + err: *const ImU8, + count: ::std::os::raw::c_int, + flags: ImPlotErrorBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotErrorBars_S16PtrS16PtrS16PtrInt( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS16, + ys: *const ImS16, + err: *const ImS16, + count: ::std::os::raw::c_int, + flags: ImPlotErrorBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotErrorBars_U16PtrU16PtrU16PtrInt( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU16, + ys: *const ImU16, + err: *const ImU16, + count: ::std::os::raw::c_int, + flags: ImPlotErrorBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotErrorBars_S32PtrS32PtrS32PtrInt( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS32, + ys: *const ImS32, + err: *const ImS32, + count: ::std::os::raw::c_int, + flags: ImPlotErrorBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotErrorBars_U32PtrU32PtrU32PtrInt( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU32, + ys: *const ImU32, + err: *const ImU32, + count: ::std::os::raw::c_int, + flags: ImPlotErrorBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotErrorBars_S64PtrS64PtrS64PtrInt( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS64, + ys: *const ImS64, + err: *const ImS64, + count: ::std::os::raw::c_int, + flags: ImPlotErrorBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotErrorBars_U64PtrU64PtrU64PtrInt( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU64, + ys: *const ImU64, + err: *const ImU64, + count: ::std::os::raw::c_int, + flags: ImPlotErrorBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotErrorBars_FloatPtrFloatPtrFloatPtrFloatPtr( + label_id: *const ::std::os::raw::c_char, + xs: *const f32, + ys: *const f32, + neg: *const f32, + pos: *const f32, + count: ::std::os::raw::c_int, + flags: ImPlotErrorBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotErrorBars_doublePtrdoublePtrdoublePtrdoublePtr( + label_id: *const ::std::os::raw::c_char, + xs: *const f64, + ys: *const f64, + neg: *const f64, + pos: *const f64, + count: ::std::os::raw::c_int, + flags: ImPlotErrorBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotErrorBars_S8PtrS8PtrS8PtrS8Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS8, + ys: *const ImS8, + neg: *const ImS8, + pos: *const ImS8, + count: ::std::os::raw::c_int, + flags: ImPlotErrorBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotErrorBars_U8PtrU8PtrU8PtrU8Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU8, + ys: *const ImU8, + neg: *const ImU8, + pos: *const ImU8, + count: ::std::os::raw::c_int, + flags: ImPlotErrorBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotErrorBars_S16PtrS16PtrS16PtrS16Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS16, + ys: *const ImS16, + neg: *const ImS16, + pos: *const ImS16, + count: ::std::os::raw::c_int, + flags: ImPlotErrorBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotErrorBars_U16PtrU16PtrU16PtrU16Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU16, + ys: *const ImU16, + neg: *const ImU16, + pos: *const ImU16, + count: ::std::os::raw::c_int, + flags: ImPlotErrorBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotErrorBars_S32PtrS32PtrS32PtrS32Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS32, + ys: *const ImS32, + neg: *const ImS32, + pos: *const ImS32, + count: ::std::os::raw::c_int, + flags: ImPlotErrorBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotErrorBars_U32PtrU32PtrU32PtrU32Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU32, + ys: *const ImU32, + neg: *const ImU32, + pos: *const ImU32, + count: ::std::os::raw::c_int, + flags: ImPlotErrorBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotErrorBars_S64PtrS64PtrS64PtrS64Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS64, + ys: *const ImS64, + neg: *const ImS64, + pos: *const ImS64, + count: ::std::os::raw::c_int, + flags: ImPlotErrorBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotErrorBars_U64PtrU64PtrU64PtrU64Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU64, + ys: *const ImU64, + neg: *const ImU64, + pos: *const ImU64, + count: ::std::os::raw::c_int, + flags: ImPlotErrorBarsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStems_FloatPtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const f32, + count: ::std::os::raw::c_int, + ref_: f64, + scale: f64, + start: f64, + flags: ImPlotStemsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStems_doublePtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const f64, + count: ::std::os::raw::c_int, + ref_: f64, + scale: f64, + start: f64, + flags: ImPlotStemsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStems_S8PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImS8, + count: ::std::os::raw::c_int, + ref_: f64, + scale: f64, + start: f64, + flags: ImPlotStemsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStems_U8PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImU8, + count: ::std::os::raw::c_int, + ref_: f64, + scale: f64, + start: f64, + flags: ImPlotStemsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStems_S16PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImS16, + count: ::std::os::raw::c_int, + ref_: f64, + scale: f64, + start: f64, + flags: ImPlotStemsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStems_U16PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImU16, + count: ::std::os::raw::c_int, + ref_: f64, + scale: f64, + start: f64, + flags: ImPlotStemsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStems_S32PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImS32, + count: ::std::os::raw::c_int, + ref_: f64, + scale: f64, + start: f64, + flags: ImPlotStemsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStems_U32PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImU32, + count: ::std::os::raw::c_int, + ref_: f64, + scale: f64, + start: f64, + flags: ImPlotStemsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStems_S64PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImS64, + count: ::std::os::raw::c_int, + ref_: f64, + scale: f64, + start: f64, + flags: ImPlotStemsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStems_U64PtrInt( + label_id: *const ::std::os::raw::c_char, + values: *const ImU64, + count: ::std::os::raw::c_int, + ref_: f64, + scale: f64, + start: f64, + flags: ImPlotStemsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStems_FloatPtrFloatPtr( + label_id: *const ::std::os::raw::c_char, + xs: *const f32, + ys: *const f32, + count: ::std::os::raw::c_int, + ref_: f64, + flags: ImPlotStemsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStems_doublePtrdoublePtr( + label_id: *const ::std::os::raw::c_char, + xs: *const f64, + ys: *const f64, + count: ::std::os::raw::c_int, + ref_: f64, + flags: ImPlotStemsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStems_S8PtrS8Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS8, + ys: *const ImS8, + count: ::std::os::raw::c_int, + ref_: f64, + flags: ImPlotStemsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStems_U8PtrU8Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU8, + ys: *const ImU8, + count: ::std::os::raw::c_int, + ref_: f64, + flags: ImPlotStemsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStems_S16PtrS16Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS16, + ys: *const ImS16, + count: ::std::os::raw::c_int, + ref_: f64, + flags: ImPlotStemsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStems_U16PtrU16Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU16, + ys: *const ImU16, + count: ::std::os::raw::c_int, + ref_: f64, + flags: ImPlotStemsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStems_S32PtrS32Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS32, + ys: *const ImS32, + count: ::std::os::raw::c_int, + ref_: f64, + flags: ImPlotStemsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStems_U32PtrU32Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU32, + ys: *const ImU32, + count: ::std::os::raw::c_int, + ref_: f64, + flags: ImPlotStemsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStems_S64PtrS64Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS64, + ys: *const ImS64, + count: ::std::os::raw::c_int, + ref_: f64, + flags: ImPlotStemsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotStems_U64PtrU64Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU64, + ys: *const ImU64, + count: ::std::os::raw::c_int, + ref_: f64, + flags: ImPlotStemsFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotInfLines_FloatPtr( + label_id: *const ::std::os::raw::c_char, + values: *const f32, + count: ::std::os::raw::c_int, + flags: ImPlotInfLinesFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotInfLines_doublePtr( + label_id: *const ::std::os::raw::c_char, + values: *const f64, + count: ::std::os::raw::c_int, + flags: ImPlotInfLinesFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotInfLines_S8Ptr( + label_id: *const ::std::os::raw::c_char, + values: *const ImS8, + count: ::std::os::raw::c_int, + flags: ImPlotInfLinesFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotInfLines_U8Ptr( + label_id: *const ::std::os::raw::c_char, + values: *const ImU8, + count: ::std::os::raw::c_int, + flags: ImPlotInfLinesFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotInfLines_S16Ptr( + label_id: *const ::std::os::raw::c_char, + values: *const ImS16, + count: ::std::os::raw::c_int, + flags: ImPlotInfLinesFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotInfLines_U16Ptr( + label_id: *const ::std::os::raw::c_char, + values: *const ImU16, + count: ::std::os::raw::c_int, + flags: ImPlotInfLinesFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotInfLines_S32Ptr( + label_id: *const ::std::os::raw::c_char, + values: *const ImS32, + count: ::std::os::raw::c_int, + flags: ImPlotInfLinesFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotInfLines_U32Ptr( + label_id: *const ::std::os::raw::c_char, + values: *const ImU32, + count: ::std::os::raw::c_int, + flags: ImPlotInfLinesFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotInfLines_S64Ptr( + label_id: *const ::std::os::raw::c_char, + values: *const ImS64, + count: ::std::os::raw::c_int, + flags: ImPlotInfLinesFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotInfLines_U64Ptr( + label_id: *const ::std::os::raw::c_char, + values: *const ImU64, + count: ::std::os::raw::c_int, + flags: ImPlotInfLinesFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotPieChart_FloatPtr( + label_ids: *const *const ::std::os::raw::c_char, + values: *const f32, + count: ::std::os::raw::c_int, + x: f64, + y: f64, + radius: f64, + label_fmt: *const ::std::os::raw::c_char, + angle0: f64, + flags: ImPlotPieChartFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotPieChart_doublePtr( + label_ids: *const *const ::std::os::raw::c_char, + values: *const f64, + count: ::std::os::raw::c_int, + x: f64, + y: f64, + radius: f64, + label_fmt: *const ::std::os::raw::c_char, + angle0: f64, + flags: ImPlotPieChartFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotPieChart_S8Ptr( + label_ids: *const *const ::std::os::raw::c_char, + values: *const ImS8, + count: ::std::os::raw::c_int, + x: f64, + y: f64, + radius: f64, + label_fmt: *const ::std::os::raw::c_char, + angle0: f64, + flags: ImPlotPieChartFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotPieChart_U8Ptr( + label_ids: *const *const ::std::os::raw::c_char, + values: *const ImU8, + count: ::std::os::raw::c_int, + x: f64, + y: f64, + radius: f64, + label_fmt: *const ::std::os::raw::c_char, + angle0: f64, + flags: ImPlotPieChartFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotPieChart_S16Ptr( + label_ids: *const *const ::std::os::raw::c_char, + values: *const ImS16, + count: ::std::os::raw::c_int, + x: f64, + y: f64, + radius: f64, + label_fmt: *const ::std::os::raw::c_char, + angle0: f64, + flags: ImPlotPieChartFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotPieChart_U16Ptr( + label_ids: *const *const ::std::os::raw::c_char, + values: *const ImU16, + count: ::std::os::raw::c_int, + x: f64, + y: f64, + radius: f64, + label_fmt: *const ::std::os::raw::c_char, + angle0: f64, + flags: ImPlotPieChartFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotPieChart_S32Ptr( + label_ids: *const *const ::std::os::raw::c_char, + values: *const ImS32, + count: ::std::os::raw::c_int, + x: f64, + y: f64, + radius: f64, + label_fmt: *const ::std::os::raw::c_char, + angle0: f64, + flags: ImPlotPieChartFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotPieChart_U32Ptr( + label_ids: *const *const ::std::os::raw::c_char, + values: *const ImU32, + count: ::std::os::raw::c_int, + x: f64, + y: f64, + radius: f64, + label_fmt: *const ::std::os::raw::c_char, + angle0: f64, + flags: ImPlotPieChartFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotPieChart_S64Ptr( + label_ids: *const *const ::std::os::raw::c_char, + values: *const ImS64, + count: ::std::os::raw::c_int, + x: f64, + y: f64, + radius: f64, + label_fmt: *const ::std::os::raw::c_char, + angle0: f64, + flags: ImPlotPieChartFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotPieChart_U64Ptr( + label_ids: *const *const ::std::os::raw::c_char, + values: *const ImU64, + count: ::std::os::raw::c_int, + x: f64, + y: f64, + radius: f64, + label_fmt: *const ::std::os::raw::c_char, + angle0: f64, + flags: ImPlotPieChartFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotHeatmap_FloatPtr( + label_id: *const ::std::os::raw::c_char, + values: *const f32, + rows: ::std::os::raw::c_int, + cols: ::std::os::raw::c_int, + scale_min: f64, + scale_max: f64, + label_fmt: *const ::std::os::raw::c_char, + bounds_min: ImPlotPoint, + bounds_max: ImPlotPoint, + flags: ImPlotHeatmapFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotHeatmap_doublePtr( + label_id: *const ::std::os::raw::c_char, + values: *const f64, + rows: ::std::os::raw::c_int, + cols: ::std::os::raw::c_int, + scale_min: f64, + scale_max: f64, + label_fmt: *const ::std::os::raw::c_char, + bounds_min: ImPlotPoint, + bounds_max: ImPlotPoint, + flags: ImPlotHeatmapFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotHeatmap_S8Ptr( + label_id: *const ::std::os::raw::c_char, + values: *const ImS8, + rows: ::std::os::raw::c_int, + cols: ::std::os::raw::c_int, + scale_min: f64, + scale_max: f64, + label_fmt: *const ::std::os::raw::c_char, + bounds_min: ImPlotPoint, + bounds_max: ImPlotPoint, + flags: ImPlotHeatmapFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotHeatmap_U8Ptr( + label_id: *const ::std::os::raw::c_char, + values: *const ImU8, + rows: ::std::os::raw::c_int, + cols: ::std::os::raw::c_int, + scale_min: f64, + scale_max: f64, + label_fmt: *const ::std::os::raw::c_char, + bounds_min: ImPlotPoint, + bounds_max: ImPlotPoint, + flags: ImPlotHeatmapFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotHeatmap_S16Ptr( + label_id: *const ::std::os::raw::c_char, + values: *const ImS16, + rows: ::std::os::raw::c_int, + cols: ::std::os::raw::c_int, + scale_min: f64, + scale_max: f64, + label_fmt: *const ::std::os::raw::c_char, + bounds_min: ImPlotPoint, + bounds_max: ImPlotPoint, + flags: ImPlotHeatmapFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotHeatmap_U16Ptr( + label_id: *const ::std::os::raw::c_char, + values: *const ImU16, + rows: ::std::os::raw::c_int, + cols: ::std::os::raw::c_int, + scale_min: f64, + scale_max: f64, + label_fmt: *const ::std::os::raw::c_char, + bounds_min: ImPlotPoint, + bounds_max: ImPlotPoint, + flags: ImPlotHeatmapFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotHeatmap_S32Ptr( + label_id: *const ::std::os::raw::c_char, + values: *const ImS32, + rows: ::std::os::raw::c_int, + cols: ::std::os::raw::c_int, + scale_min: f64, + scale_max: f64, + label_fmt: *const ::std::os::raw::c_char, + bounds_min: ImPlotPoint, + bounds_max: ImPlotPoint, + flags: ImPlotHeatmapFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotHeatmap_U32Ptr( + label_id: *const ::std::os::raw::c_char, + values: *const ImU32, + rows: ::std::os::raw::c_int, + cols: ::std::os::raw::c_int, + scale_min: f64, + scale_max: f64, + label_fmt: *const ::std::os::raw::c_char, + bounds_min: ImPlotPoint, + bounds_max: ImPlotPoint, + flags: ImPlotHeatmapFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotHeatmap_S64Ptr( + label_id: *const ::std::os::raw::c_char, + values: *const ImS64, + rows: ::std::os::raw::c_int, + cols: ::std::os::raw::c_int, + scale_min: f64, + scale_max: f64, + label_fmt: *const ::std::os::raw::c_char, + bounds_min: ImPlotPoint, + bounds_max: ImPlotPoint, + flags: ImPlotHeatmapFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotHeatmap_U64Ptr( + label_id: *const ::std::os::raw::c_char, + values: *const ImU64, + rows: ::std::os::raw::c_int, + cols: ::std::os::raw::c_int, + scale_min: f64, + scale_max: f64, + label_fmt: *const ::std::os::raw::c_char, + bounds_min: ImPlotPoint, + bounds_max: ImPlotPoint, + flags: ImPlotHeatmapFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotHistogram_FloatPtr( + label_id: *const ::std::os::raw::c_char, + values: *const f32, + count: ::std::os::raw::c_int, + bins: ::std::os::raw::c_int, + bar_scale: f64, + range: ImPlotRange, + flags: ImPlotHistogramFlags, + ) -> f64; +} +extern "C" { + pub fn ImPlot_PlotHistogram_doublePtr( + label_id: *const ::std::os::raw::c_char, + values: *const f64, + count: ::std::os::raw::c_int, + bins: ::std::os::raw::c_int, + bar_scale: f64, + range: ImPlotRange, + flags: ImPlotHistogramFlags, + ) -> f64; +} +extern "C" { + pub fn ImPlot_PlotHistogram_S8Ptr( + label_id: *const ::std::os::raw::c_char, + values: *const ImS8, + count: ::std::os::raw::c_int, + bins: ::std::os::raw::c_int, + bar_scale: f64, + range: ImPlotRange, + flags: ImPlotHistogramFlags, + ) -> f64; +} +extern "C" { + pub fn ImPlot_PlotHistogram_U8Ptr( + label_id: *const ::std::os::raw::c_char, + values: *const ImU8, + count: ::std::os::raw::c_int, + bins: ::std::os::raw::c_int, + bar_scale: f64, + range: ImPlotRange, + flags: ImPlotHistogramFlags, + ) -> f64; +} +extern "C" { + pub fn ImPlot_PlotHistogram_S16Ptr( + label_id: *const ::std::os::raw::c_char, + values: *const ImS16, + count: ::std::os::raw::c_int, + bins: ::std::os::raw::c_int, + bar_scale: f64, + range: ImPlotRange, + flags: ImPlotHistogramFlags, + ) -> f64; +} +extern "C" { + pub fn ImPlot_PlotHistogram_U16Ptr( + label_id: *const ::std::os::raw::c_char, + values: *const ImU16, + count: ::std::os::raw::c_int, + bins: ::std::os::raw::c_int, + bar_scale: f64, + range: ImPlotRange, + flags: ImPlotHistogramFlags, + ) -> f64; +} +extern "C" { + pub fn ImPlot_PlotHistogram_S32Ptr( + label_id: *const ::std::os::raw::c_char, + values: *const ImS32, + count: ::std::os::raw::c_int, + bins: ::std::os::raw::c_int, + bar_scale: f64, + range: ImPlotRange, + flags: ImPlotHistogramFlags, + ) -> f64; +} +extern "C" { + pub fn ImPlot_PlotHistogram_U32Ptr( + label_id: *const ::std::os::raw::c_char, + values: *const ImU32, + count: ::std::os::raw::c_int, + bins: ::std::os::raw::c_int, + bar_scale: f64, + range: ImPlotRange, + flags: ImPlotHistogramFlags, + ) -> f64; +} +extern "C" { + pub fn ImPlot_PlotHistogram_S64Ptr( + label_id: *const ::std::os::raw::c_char, + values: *const ImS64, + count: ::std::os::raw::c_int, + bins: ::std::os::raw::c_int, + bar_scale: f64, + range: ImPlotRange, + flags: ImPlotHistogramFlags, + ) -> f64; +} +extern "C" { + pub fn ImPlot_PlotHistogram_U64Ptr( + label_id: *const ::std::os::raw::c_char, + values: *const ImU64, + count: ::std::os::raw::c_int, + bins: ::std::os::raw::c_int, + bar_scale: f64, + range: ImPlotRange, + flags: ImPlotHistogramFlags, + ) -> f64; +} +extern "C" { + pub fn ImPlot_PlotHistogram2D_FloatPtr( + label_id: *const ::std::os::raw::c_char, + xs: *const f32, + ys: *const f32, + count: ::std::os::raw::c_int, + x_bins: ::std::os::raw::c_int, + y_bins: ::std::os::raw::c_int, + range: ImPlotRect, + flags: ImPlotHistogramFlags, + ) -> f64; +} +extern "C" { + pub fn ImPlot_PlotHistogram2D_doublePtr( + label_id: *const ::std::os::raw::c_char, + xs: *const f64, + ys: *const f64, + count: ::std::os::raw::c_int, + x_bins: ::std::os::raw::c_int, + y_bins: ::std::os::raw::c_int, + range: ImPlotRect, + flags: ImPlotHistogramFlags, + ) -> f64; +} +extern "C" { + pub fn ImPlot_PlotHistogram2D_S8Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS8, + ys: *const ImS8, + count: ::std::os::raw::c_int, + x_bins: ::std::os::raw::c_int, + y_bins: ::std::os::raw::c_int, + range: ImPlotRect, + flags: ImPlotHistogramFlags, + ) -> f64; +} +extern "C" { + pub fn ImPlot_PlotHistogram2D_U8Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU8, + ys: *const ImU8, + count: ::std::os::raw::c_int, + x_bins: ::std::os::raw::c_int, + y_bins: ::std::os::raw::c_int, + range: ImPlotRect, + flags: ImPlotHistogramFlags, + ) -> f64; +} +extern "C" { + pub fn ImPlot_PlotHistogram2D_S16Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS16, + ys: *const ImS16, + count: ::std::os::raw::c_int, + x_bins: ::std::os::raw::c_int, + y_bins: ::std::os::raw::c_int, + range: ImPlotRect, + flags: ImPlotHistogramFlags, + ) -> f64; +} +extern "C" { + pub fn ImPlot_PlotHistogram2D_U16Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU16, + ys: *const ImU16, + count: ::std::os::raw::c_int, + x_bins: ::std::os::raw::c_int, + y_bins: ::std::os::raw::c_int, + range: ImPlotRect, + flags: ImPlotHistogramFlags, + ) -> f64; +} +extern "C" { + pub fn ImPlot_PlotHistogram2D_S32Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS32, + ys: *const ImS32, + count: ::std::os::raw::c_int, + x_bins: ::std::os::raw::c_int, + y_bins: ::std::os::raw::c_int, + range: ImPlotRect, + flags: ImPlotHistogramFlags, + ) -> f64; +} +extern "C" { + pub fn ImPlot_PlotHistogram2D_U32Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU32, + ys: *const ImU32, + count: ::std::os::raw::c_int, + x_bins: ::std::os::raw::c_int, + y_bins: ::std::os::raw::c_int, + range: ImPlotRect, + flags: ImPlotHistogramFlags, + ) -> f64; +} +extern "C" { + pub fn ImPlot_PlotHistogram2D_S64Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS64, + ys: *const ImS64, + count: ::std::os::raw::c_int, + x_bins: ::std::os::raw::c_int, + y_bins: ::std::os::raw::c_int, + range: ImPlotRect, + flags: ImPlotHistogramFlags, + ) -> f64; +} +extern "C" { + pub fn ImPlot_PlotHistogram2D_U64Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU64, + ys: *const ImU64, + count: ::std::os::raw::c_int, + x_bins: ::std::os::raw::c_int, + y_bins: ::std::os::raw::c_int, + range: ImPlotRect, + flags: ImPlotHistogramFlags, + ) -> f64; +} +extern "C" { + pub fn ImPlot_PlotDigital_FloatPtr( + label_id: *const ::std::os::raw::c_char, + xs: *const f32, + ys: *const f32, + count: ::std::os::raw::c_int, + flags: ImPlotDigitalFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotDigital_doublePtr( + label_id: *const ::std::os::raw::c_char, + xs: *const f64, + ys: *const f64, + count: ::std::os::raw::c_int, + flags: ImPlotDigitalFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotDigital_S8Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS8, + ys: *const ImS8, + count: ::std::os::raw::c_int, + flags: ImPlotDigitalFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotDigital_U8Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU8, + ys: *const ImU8, + count: ::std::os::raw::c_int, + flags: ImPlotDigitalFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotDigital_S16Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS16, + ys: *const ImS16, + count: ::std::os::raw::c_int, + flags: ImPlotDigitalFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotDigital_U16Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU16, + ys: *const ImU16, + count: ::std::os::raw::c_int, + flags: ImPlotDigitalFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotDigital_S32Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS32, + ys: *const ImS32, + count: ::std::os::raw::c_int, + flags: ImPlotDigitalFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotDigital_U32Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU32, + ys: *const ImU32, + count: ::std::os::raw::c_int, + flags: ImPlotDigitalFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotDigital_S64Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImS64, + ys: *const ImS64, + count: ::std::os::raw::c_int, + flags: ImPlotDigitalFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotDigital_U64Ptr( + label_id: *const ::std::os::raw::c_char, + xs: *const ImU64, + ys: *const ImU64, + count: ::std::os::raw::c_int, + flags: ImPlotDigitalFlags, + offset: ::std::os::raw::c_int, + stride: ::std::os::raw::c_int, + ); +} +extern "C" { + pub fn ImPlot_PlotDigitalG( + label_id: *const ::std::os::raw::c_char, + getter: ImPlotPoint_getter, + data: *mut ::std::os::raw::c_void, + count: ::std::os::raw::c_int, + flags: ImPlotDigitalFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotImage( + label_id: *const ::std::os::raw::c_char, + user_texture_id: ImTextureID, + bounds_min: ImPlotPoint, + bounds_max: ImPlotPoint, + uv0: ImVec2, + uv1: ImVec2, + tint_col: ImVec4, + flags: ImPlotImageFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotText( + text: *const ::std::os::raw::c_char, + x: f64, + y: f64, + pix_offset: ImVec2, + flags: ImPlotTextFlags, + ); +} +extern "C" { + pub fn ImPlot_PlotDummy(label_id: *const ::std::os::raw::c_char, flags: ImPlotDummyFlags); +} +extern "C" { + pub fn ImPlot_DragPoint( + id: ::std::os::raw::c_int, + x: *mut f64, + y: *mut f64, + col: ImVec4, + size: f32, + flags: ImPlotDragToolFlags, + ) -> bool; +} +extern "C" { + pub fn ImPlot_DragLineX( + id: ::std::os::raw::c_int, + x: *mut f64, + col: ImVec4, + thickness: f32, + flags: ImPlotDragToolFlags, + ) -> bool; +} +extern "C" { + pub fn ImPlot_DragLineY( + id: ::std::os::raw::c_int, + y: *mut f64, + col: ImVec4, + thickness: f32, + flags: ImPlotDragToolFlags, + ) -> bool; +} +extern "C" { + pub fn ImPlot_DragRect( + id: ::std::os::raw::c_int, + x1: *mut f64, + y1: *mut f64, + x2: *mut f64, + y2: *mut f64, + col: ImVec4, + flags: ImPlotDragToolFlags, + ) -> bool; +} +extern "C" { + pub fn ImPlot_Annotation_Bool( + x: f64, + y: f64, + col: ImVec4, + pix_offset: ImVec2, + clamp: bool, + round: bool, + ); +} +extern "C" { + pub fn ImPlot_Annotation_Str( + x: f64, + y: f64, + col: ImVec4, + pix_offset: ImVec2, + clamp: bool, + fmt: *const ::std::os::raw::c_char, + ... + ); +} +extern "C" { + pub fn ImPlot_TagX_Bool(x: f64, col: ImVec4, round: bool); +} +extern "C" { + pub fn ImPlot_TagX_Str(x: f64, col: ImVec4, fmt: *const ::std::os::raw::c_char, ...); +} +extern "C" { + pub fn ImPlot_TagY_Bool(y: f64, col: ImVec4, round: bool); +} +extern "C" { + pub fn ImPlot_TagY_Str(y: f64, col: ImVec4, fmt: *const ::std::os::raw::c_char, ...); +} +extern "C" { + pub fn ImPlot_SetAxis(axis: ImAxis); +} +extern "C" { + pub fn ImPlot_SetAxes(x_axis: ImAxis, y_axis: ImAxis); +} +extern "C" { + pub fn ImPlot_PixelsToPlot_Vec2( + pOut: *mut ImPlotPoint, + pix: ImVec2, + x_axis: ImAxis, + y_axis: ImAxis, + ); +} +extern "C" { + pub fn ImPlot_PixelsToPlot_Float( + pOut: *mut ImPlotPoint, + x: f32, + y: f32, + x_axis: ImAxis, + y_axis: ImAxis, + ); +} +extern "C" { + pub fn ImPlot_PlotToPixels_PlotPoInt( + pOut: *mut ImVec2, + plt: ImPlotPoint, + x_axis: ImAxis, + y_axis: ImAxis, + ); +} +extern "C" { + pub fn ImPlot_PlotToPixels_double( + pOut: *mut ImVec2, + x: f64, + y: f64, + x_axis: ImAxis, + y_axis: ImAxis, + ); +} +extern "C" { + pub fn ImPlot_GetPlotPos(pOut: *mut ImVec2); +} +extern "C" { + pub fn ImPlot_GetPlotSize(pOut: *mut ImVec2); +} +extern "C" { + pub fn ImPlot_GetPlotMousePos(pOut: *mut ImPlotPoint, x_axis: ImAxis, y_axis: ImAxis); +} +extern "C" { + pub fn ImPlot_GetPlotLimits(pOut: *mut ImPlotRect, x_axis: ImAxis, y_axis: ImAxis); +} +extern "C" { + pub fn ImPlot_IsPlotHovered() -> bool; +} +extern "C" { + pub fn ImPlot_IsAxisHovered(axis: ImAxis) -> bool; +} +extern "C" { + pub fn ImPlot_IsSubplotsHovered() -> bool; +} +extern "C" { + pub fn ImPlot_IsPlotSelected() -> bool; +} +extern "C" { + pub fn ImPlot_GetPlotSelection(pOut: *mut ImPlotRect, x_axis: ImAxis, y_axis: ImAxis); +} +extern "C" { + pub fn ImPlot_CancelPlotSelection(); +} +extern "C" { + pub fn ImPlot_HideNextItem(hidden: bool, cond: ImPlotCond); +} +extern "C" { + pub fn ImPlot_BeginAlignedPlots( + group_id: *const ::std::os::raw::c_char, + vertical: bool, + ) -> bool; +} +extern "C" { + pub fn ImPlot_EndAlignedPlots(); +} +extern "C" { + pub fn ImPlot_BeginLegendPopup( + label_id: *const ::std::os::raw::c_char, + mouse_button: ImGuiMouseButton, + ) -> bool; +} +extern "C" { + pub fn ImPlot_EndLegendPopup(); +} +extern "C" { + pub fn ImPlot_IsLegendEntryHovered(label_id: *const ::std::os::raw::c_char) -> bool; +} +extern "C" { + pub fn ImPlot_BeginDragDropTargetPlot() -> bool; +} +extern "C" { + pub fn ImPlot_BeginDragDropTargetAxis(axis: ImAxis) -> bool; +} +extern "C" { + pub fn ImPlot_BeginDragDropTargetLegend() -> bool; +} +extern "C" { + pub fn ImPlot_EndDragDropTarget(); +} +extern "C" { + pub fn ImPlot_BeginDragDropSourcePlot(flags: ImGuiDragDropFlags) -> bool; +} +extern "C" { + pub fn ImPlot_BeginDragDropSourceAxis(axis: ImAxis, flags: ImGuiDragDropFlags) -> bool; +} +extern "C" { + pub fn ImPlot_BeginDragDropSourceItem( + label_id: *const ::std::os::raw::c_char, + flags: ImGuiDragDropFlags, + ) -> bool; +} +extern "C" { + pub fn ImPlot_EndDragDropSource(); +} +extern "C" { + pub fn ImPlot_GetStyle() -> *mut ImPlotStyle; +} +extern "C" { + pub fn ImPlot_StyleColorsAuto(dst: *mut ImPlotStyle); +} +extern "C" { + pub fn ImPlot_StyleColorsClassic(dst: *mut ImPlotStyle); +} +extern "C" { + pub fn ImPlot_StyleColorsDark(dst: *mut ImPlotStyle); +} +extern "C" { + pub fn ImPlot_StyleColorsLight(dst: *mut ImPlotStyle); +} +extern "C" { + pub fn ImPlot_PushStyleColor_U32(idx: ImPlotCol, col: ImU32); +} +extern "C" { + pub fn ImPlot_PushStyleColor_Vec4(idx: ImPlotCol, col: ImVec4); +} +extern "C" { + pub fn ImPlot_PopStyleColor(count: ::std::os::raw::c_int); +} +extern "C" { + pub fn ImPlot_PushStyleVar_Float(idx: ImPlotStyleVar, val: f32); +} +extern "C" { + pub fn ImPlot_PushStyleVar_Int(idx: ImPlotStyleVar, val: ::std::os::raw::c_int); +} +extern "C" { + pub fn ImPlot_PushStyleVar_Vec2(idx: ImPlotStyleVar, val: ImVec2); +} +extern "C" { + pub fn ImPlot_PopStyleVar(count: ::std::os::raw::c_int); +} +extern "C" { + pub fn ImPlot_SetNextLineStyle(col: ImVec4, weight: f32); +} +extern "C" { + pub fn ImPlot_SetNextFillStyle(col: ImVec4, alpha_mod: f32); +} +extern "C" { + pub fn ImPlot_SetNextMarkerStyle( + marker: ImPlotMarker, + size: f32, + fill: ImVec4, + weight: f32, + outline: ImVec4, + ); +} +extern "C" { + pub fn ImPlot_SetNextErrorBarStyle(col: ImVec4, size: f32, weight: f32); +} +extern "C" { + pub fn ImPlot_GetLastItemColor(pOut: *mut ImVec4); +} +extern "C" { + pub fn ImPlot_GetStyleColorName(idx: ImPlotCol) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn ImPlot_GetMarkerName(idx: ImPlotMarker) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn ImPlot_AddColormap_Vec4Ptr( + name: *const ::std::os::raw::c_char, + cols: *const ImVec4, + size: ::std::os::raw::c_int, + qual: bool, + ) -> ImPlotColormap; +} +extern "C" { + pub fn ImPlot_AddColormap_U32Ptr( + name: *const ::std::os::raw::c_char, + cols: *const ImU32, + size: ::std::os::raw::c_int, + qual: bool, + ) -> ImPlotColormap; +} +extern "C" { + pub fn ImPlot_GetColormapCount() -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ImPlot_GetColormapName(cmap: ImPlotColormap) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn ImPlot_GetColormapIndex(name: *const ::std::os::raw::c_char) -> ImPlotColormap; +} +extern "C" { + pub fn ImPlot_PushColormap_PlotColormap(cmap: ImPlotColormap); +} +extern "C" { + pub fn ImPlot_PushColormap_Str(name: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn ImPlot_PopColormap(count: ::std::os::raw::c_int); +} +extern "C" { + pub fn ImPlot_NextColormapColor(pOut: *mut ImVec4); +} +extern "C" { + pub fn ImPlot_GetColormapSize(cmap: ImPlotColormap) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ImPlot_GetColormapColor( + pOut: *mut ImVec4, + idx: ::std::os::raw::c_int, + cmap: ImPlotColormap, + ); +} +extern "C" { + pub fn ImPlot_SampleColormap(pOut: *mut ImVec4, t: f32, cmap: ImPlotColormap); +} +extern "C" { + pub fn ImPlot_ColormapScale( + label: *const ::std::os::raw::c_char, + scale_min: f64, + scale_max: f64, + size: ImVec2, + format: *const ::std::os::raw::c_char, + flags: ImPlotColormapScaleFlags, + cmap: ImPlotColormap, + ); +} +extern "C" { + pub fn ImPlot_ColormapSlider( + label: *const ::std::os::raw::c_char, + t: *mut f32, + out: *mut ImVec4, + format: *const ::std::os::raw::c_char, + cmap: ImPlotColormap, + ) -> bool; +} +extern "C" { + pub fn ImPlot_ColormapButton( + label: *const ::std::os::raw::c_char, + size: ImVec2, + cmap: ImPlotColormap, + ) -> bool; +} +extern "C" { + pub fn ImPlot_BustColorCache(plot_title_id: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn ImPlot_GetInputMap() -> *mut ImPlotInputMap; +} +extern "C" { + pub fn ImPlot_MapInputDefault(dst: *mut ImPlotInputMap); +} +extern "C" { + pub fn ImPlot_MapInputReverse(dst: *mut ImPlotInputMap); +} +extern "C" { + pub fn ImPlot_ItemIcon_Vec4(col: ImVec4); +} +extern "C" { + pub fn ImPlot_ItemIcon_U32(col: ImU32); +} +extern "C" { + pub fn ImPlot_ColormapIcon(cmap: ImPlotColormap); +} +extern "C" { + pub fn ImPlot_GetPlotDrawList() -> *mut ImDrawList; +} +extern "C" { + pub fn ImPlot_PushPlotClipRect(expand: f32); +} +extern "C" { + pub fn ImPlot_PopPlotClipRect(); +} +extern "C" { + pub fn ImPlot_ShowStyleSelector(label: *const ::std::os::raw::c_char) -> bool; +} +extern "C" { + pub fn ImPlot_ShowColormapSelector(label: *const ::std::os::raw::c_char) -> bool; +} +extern "C" { + pub fn ImPlot_ShowInputMapSelector(label: *const ::std::os::raw::c_char) -> bool; +} +extern "C" { + pub fn ImPlot_ShowStyleEditor(ref_: *mut ImPlotStyle); +} +extern "C" { + pub fn ImPlot_ShowUserGuide(); +} +extern "C" { + pub fn ImPlot_ShowMetricsWindow(p_popen: *mut bool); +} +extern "C" { + pub fn ImPlot_ShowDemoWindow(p_open: *mut bool); +} +extern "C" { + pub fn ImPlot_ImLog10_Float(x: f32) -> f32; +} +extern "C" { + pub fn ImPlot_ImLog10_double(x: f64) -> f64; +} +extern "C" { + pub fn ImPlot_ImSinh_Float(x: f32) -> f32; +} +extern "C" { + pub fn ImPlot_ImSinh_double(x: f64) -> f64; +} +extern "C" { + pub fn ImPlot_ImAsinh_Float(x: f32) -> f32; +} +extern "C" { + pub fn ImPlot_ImAsinh_double(x: f64) -> f64; +} +extern "C" { + pub fn ImPlot_ImRemap_Float(x: f32, x0: f32, x1: f32, y0: f32, y1: f32) -> f32; +} +extern "C" { + pub fn ImPlot_ImRemap_double(x: f64, x0: f64, x1: f64, y0: f64, y1: f64) -> f64; +} +extern "C" { + pub fn ImPlot_ImRemap_S8(x: ImS8, x0: ImS8, x1: ImS8, y0: ImS8, y1: ImS8) -> ImS8; +} +extern "C" { + pub fn ImPlot_ImRemap_U8(x: ImU8, x0: ImU8, x1: ImU8, y0: ImU8, y1: ImU8) -> ImU8; +} +extern "C" { + pub fn ImPlot_ImRemap_S16(x: ImS16, x0: ImS16, x1: ImS16, y0: ImS16, y1: ImS16) -> ImS16; +} +extern "C" { + pub fn ImPlot_ImRemap_U16(x: ImU16, x0: ImU16, x1: ImU16, y0: ImU16, y1: ImU16) -> ImU16; +} +extern "C" { + pub fn ImPlot_ImRemap_S32(x: ImS32, x0: ImS32, x1: ImS32, y0: ImS32, y1: ImS32) -> ImS32; +} +extern "C" { + pub fn ImPlot_ImRemap_U32(x: ImU32, x0: ImU32, x1: ImU32, y0: ImU32, y1: ImU32) -> ImU32; +} +extern "C" { + pub fn ImPlot_ImRemap_S64(x: ImS64, x0: ImS64, x1: ImS64, y0: ImS64, y1: ImS64) -> ImS64; +} +extern "C" { + pub fn ImPlot_ImRemap_U64(x: ImU64, x0: ImU64, x1: ImU64, y0: ImU64, y1: ImU64) -> ImU64; +} +extern "C" { + pub fn ImPlot_ImRemap01_Float(x: f32, x0: f32, x1: f32) -> f32; +} +extern "C" { + pub fn ImPlot_ImRemap01_double(x: f64, x0: f64, x1: f64) -> f64; +} +extern "C" { + pub fn ImPlot_ImRemap01_S8(x: ImS8, x0: ImS8, x1: ImS8) -> ImS8; +} +extern "C" { + pub fn ImPlot_ImRemap01_U8(x: ImU8, x0: ImU8, x1: ImU8) -> ImU8; +} +extern "C" { + pub fn ImPlot_ImRemap01_S16(x: ImS16, x0: ImS16, x1: ImS16) -> ImS16; +} +extern "C" { + pub fn ImPlot_ImRemap01_U16(x: ImU16, x0: ImU16, x1: ImU16) -> ImU16; +} +extern "C" { + pub fn ImPlot_ImRemap01_S32(x: ImS32, x0: ImS32, x1: ImS32) -> ImS32; +} +extern "C" { + pub fn ImPlot_ImRemap01_U32(x: ImU32, x0: ImU32, x1: ImU32) -> ImU32; +} +extern "C" { + pub fn ImPlot_ImRemap01_S64(x: ImS64, x0: ImS64, x1: ImS64) -> ImS64; +} +extern "C" { + pub fn ImPlot_ImRemap01_U64(x: ImU64, x0: ImU64, x1: ImU64) -> ImU64; +} +extern "C" { + pub fn ImPlot_ImPosMod( + l: ::std::os::raw::c_int, + r: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ImPlot_ImNan(val: f64) -> bool; +} +extern "C" { + pub fn ImPlot_ImNanOrInf(val: f64) -> bool; +} +extern "C" { + pub fn ImPlot_ImConstrainNan(val: f64) -> f64; +} +extern "C" { + pub fn ImPlot_ImConstrainInf(val: f64) -> f64; +} +extern "C" { + pub fn ImPlot_ImConstrainLog(val: f64) -> f64; +} +extern "C" { + pub fn ImPlot_ImConstrainTime(val: f64) -> f64; +} +extern "C" { + pub fn ImPlot_ImAlmostEqual(v1: f64, v2: f64, ulp: ::std::os::raw::c_int) -> bool; +} +extern "C" { + pub fn ImPlot_ImMinArray_FloatPtr(values: *const f32, count: ::std::os::raw::c_int) -> f32; +} +extern "C" { + pub fn ImPlot_ImMinArray_doublePtr(values: *const f64, count: ::std::os::raw::c_int) -> f64; +} +extern "C" { + pub fn ImPlot_ImMinArray_S8Ptr(values: *const ImS8, count: ::std::os::raw::c_int) -> ImS8; +} +extern "C" { + pub fn ImPlot_ImMinArray_U8Ptr(values: *const ImU8, count: ::std::os::raw::c_int) -> ImU8; +} +extern "C" { + pub fn ImPlot_ImMinArray_S16Ptr(values: *const ImS16, count: ::std::os::raw::c_int) -> ImS16; +} +extern "C" { + pub fn ImPlot_ImMinArray_U16Ptr(values: *const ImU16, count: ::std::os::raw::c_int) -> ImU16; +} +extern "C" { + pub fn ImPlot_ImMinArray_S32Ptr(values: *const ImS32, count: ::std::os::raw::c_int) -> ImS32; +} +extern "C" { + pub fn ImPlot_ImMinArray_U32Ptr(values: *const ImU32, count: ::std::os::raw::c_int) -> ImU32; +} +extern "C" { + pub fn ImPlot_ImMinArray_S64Ptr(values: *const ImS64, count: ::std::os::raw::c_int) -> ImS64; +} +extern "C" { + pub fn ImPlot_ImMinArray_U64Ptr(values: *const ImU64, count: ::std::os::raw::c_int) -> ImU64; +} +extern "C" { + pub fn ImPlot_ImMaxArray_FloatPtr(values: *const f32, count: ::std::os::raw::c_int) -> f32; +} +extern "C" { + pub fn ImPlot_ImMaxArray_doublePtr(values: *const f64, count: ::std::os::raw::c_int) -> f64; +} +extern "C" { + pub fn ImPlot_ImMaxArray_S8Ptr(values: *const ImS8, count: ::std::os::raw::c_int) -> ImS8; +} +extern "C" { + pub fn ImPlot_ImMaxArray_U8Ptr(values: *const ImU8, count: ::std::os::raw::c_int) -> ImU8; +} +extern "C" { + pub fn ImPlot_ImMaxArray_S16Ptr(values: *const ImS16, count: ::std::os::raw::c_int) -> ImS16; +} +extern "C" { + pub fn ImPlot_ImMaxArray_U16Ptr(values: *const ImU16, count: ::std::os::raw::c_int) -> ImU16; +} +extern "C" { + pub fn ImPlot_ImMaxArray_S32Ptr(values: *const ImS32, count: ::std::os::raw::c_int) -> ImS32; +} +extern "C" { + pub fn ImPlot_ImMaxArray_U32Ptr(values: *const ImU32, count: ::std::os::raw::c_int) -> ImU32; +} +extern "C" { + pub fn ImPlot_ImMaxArray_S64Ptr(values: *const ImS64, count: ::std::os::raw::c_int) -> ImS64; +} +extern "C" { + pub fn ImPlot_ImMaxArray_U64Ptr(values: *const ImU64, count: ::std::os::raw::c_int) -> ImU64; +} +extern "C" { + pub fn ImPlot_ImMinMaxArray_FloatPtr( + values: *const f32, + count: ::std::os::raw::c_int, + min_out: *mut f32, + max_out: *mut f32, + ); +} +extern "C" { + pub fn ImPlot_ImMinMaxArray_doublePtr( + values: *const f64, + count: ::std::os::raw::c_int, + min_out: *mut f64, + max_out: *mut f64, + ); +} +extern "C" { + pub fn ImPlot_ImMinMaxArray_S8Ptr( + values: *const ImS8, + count: ::std::os::raw::c_int, + min_out: *mut ImS8, + max_out: *mut ImS8, + ); +} +extern "C" { + pub fn ImPlot_ImMinMaxArray_U8Ptr( + values: *const ImU8, + count: ::std::os::raw::c_int, + min_out: *mut ImU8, + max_out: *mut ImU8, + ); +} +extern "C" { + pub fn ImPlot_ImMinMaxArray_S16Ptr( + values: *const ImS16, + count: ::std::os::raw::c_int, + min_out: *mut ImS16, + max_out: *mut ImS16, + ); +} +extern "C" { + pub fn ImPlot_ImMinMaxArray_U16Ptr( + values: *const ImU16, + count: ::std::os::raw::c_int, + min_out: *mut ImU16, + max_out: *mut ImU16, + ); +} +extern "C" { + pub fn ImPlot_ImMinMaxArray_S32Ptr( + values: *const ImS32, + count: ::std::os::raw::c_int, + min_out: *mut ImS32, + max_out: *mut ImS32, + ); +} +extern "C" { + pub fn ImPlot_ImMinMaxArray_U32Ptr( + values: *const ImU32, + count: ::std::os::raw::c_int, + min_out: *mut ImU32, + max_out: *mut ImU32, + ); +} +extern "C" { + pub fn ImPlot_ImMinMaxArray_S64Ptr( + values: *const ImS64, + count: ::std::os::raw::c_int, + min_out: *mut ImS64, + max_out: *mut ImS64, + ); +} +extern "C" { + pub fn ImPlot_ImMinMaxArray_U64Ptr( + values: *const ImU64, + count: ::std::os::raw::c_int, + min_out: *mut ImU64, + max_out: *mut ImU64, + ); +} +extern "C" { + pub fn ImPlot_ImSum_FloatPtr(values: *const f32, count: ::std::os::raw::c_int) -> f32; +} +extern "C" { + pub fn ImPlot_ImSum_doublePtr(values: *const f64, count: ::std::os::raw::c_int) -> f64; +} +extern "C" { + pub fn ImPlot_ImSum_S8Ptr(values: *const ImS8, count: ::std::os::raw::c_int) -> ImS8; +} +extern "C" { + pub fn ImPlot_ImSum_U8Ptr(values: *const ImU8, count: ::std::os::raw::c_int) -> ImU8; +} +extern "C" { + pub fn ImPlot_ImSum_S16Ptr(values: *const ImS16, count: ::std::os::raw::c_int) -> ImS16; +} +extern "C" { + pub fn ImPlot_ImSum_U16Ptr(values: *const ImU16, count: ::std::os::raw::c_int) -> ImU16; +} +extern "C" { + pub fn ImPlot_ImSum_S32Ptr(values: *const ImS32, count: ::std::os::raw::c_int) -> ImS32; +} +extern "C" { + pub fn ImPlot_ImSum_U32Ptr(values: *const ImU32, count: ::std::os::raw::c_int) -> ImU32; +} +extern "C" { + pub fn ImPlot_ImSum_S64Ptr(values: *const ImS64, count: ::std::os::raw::c_int) -> ImS64; +} +extern "C" { + pub fn ImPlot_ImSum_U64Ptr(values: *const ImU64, count: ::std::os::raw::c_int) -> ImU64; +} +extern "C" { + pub fn ImPlot_ImMean_FloatPtr(values: *const f32, count: ::std::os::raw::c_int) -> f64; +} +extern "C" { + pub fn ImPlot_ImMean_doublePtr(values: *const f64, count: ::std::os::raw::c_int) -> f64; +} +extern "C" { + pub fn ImPlot_ImMean_S8Ptr(values: *const ImS8, count: ::std::os::raw::c_int) -> f64; +} +extern "C" { + pub fn ImPlot_ImMean_U8Ptr(values: *const ImU8, count: ::std::os::raw::c_int) -> f64; +} +extern "C" { + pub fn ImPlot_ImMean_S16Ptr(values: *const ImS16, count: ::std::os::raw::c_int) -> f64; +} +extern "C" { + pub fn ImPlot_ImMean_U16Ptr(values: *const ImU16, count: ::std::os::raw::c_int) -> f64; +} +extern "C" { + pub fn ImPlot_ImMean_S32Ptr(values: *const ImS32, count: ::std::os::raw::c_int) -> f64; +} +extern "C" { + pub fn ImPlot_ImMean_U32Ptr(values: *const ImU32, count: ::std::os::raw::c_int) -> f64; +} +extern "C" { + pub fn ImPlot_ImMean_S64Ptr(values: *const ImS64, count: ::std::os::raw::c_int) -> f64; +} +extern "C" { + pub fn ImPlot_ImMean_U64Ptr(values: *const ImU64, count: ::std::os::raw::c_int) -> f64; +} +extern "C" { + pub fn ImPlot_ImStdDev_FloatPtr(values: *const f32, count: ::std::os::raw::c_int) -> f64; +} +extern "C" { + pub fn ImPlot_ImStdDev_doublePtr(values: *const f64, count: ::std::os::raw::c_int) -> f64; +} +extern "C" { + pub fn ImPlot_ImStdDev_S8Ptr(values: *const ImS8, count: ::std::os::raw::c_int) -> f64; +} +extern "C" { + pub fn ImPlot_ImStdDev_U8Ptr(values: *const ImU8, count: ::std::os::raw::c_int) -> f64; +} +extern "C" { + pub fn ImPlot_ImStdDev_S16Ptr(values: *const ImS16, count: ::std::os::raw::c_int) -> f64; +} +extern "C" { + pub fn ImPlot_ImStdDev_U16Ptr(values: *const ImU16, count: ::std::os::raw::c_int) -> f64; +} +extern "C" { + pub fn ImPlot_ImStdDev_S32Ptr(values: *const ImS32, count: ::std::os::raw::c_int) -> f64; +} +extern "C" { + pub fn ImPlot_ImStdDev_U32Ptr(values: *const ImU32, count: ::std::os::raw::c_int) -> f64; +} +extern "C" { + pub fn ImPlot_ImStdDev_S64Ptr(values: *const ImS64, count: ::std::os::raw::c_int) -> f64; +} +extern "C" { + pub fn ImPlot_ImStdDev_U64Ptr(values: *const ImU64, count: ::std::os::raw::c_int) -> f64; +} +extern "C" { + pub fn ImPlot_ImMixU32(a: ImU32, b: ImU32, s: ImU32) -> ImU32; +} +extern "C" { + pub fn ImPlot_ImLerpU32(colors: *const ImU32, size: ::std::os::raw::c_int, t: f32) -> ImU32; +} +extern "C" { + pub fn ImPlot_ImAlphaU32(col: ImU32, alpha: f32) -> ImU32; +} +extern "C" { + pub fn ImPlot_ImOverlaps_Float(min_a: f32, max_a: f32, min_b: f32, max_b: f32) -> bool; +} +extern "C" { + pub fn ImPlot_ImOverlaps_double(min_a: f64, max_a: f64, min_b: f64, max_b: f64) -> bool; +} +extern "C" { + pub fn ImPlot_ImOverlaps_S8(min_a: ImS8, max_a: ImS8, min_b: ImS8, max_b: ImS8) -> bool; +} +extern "C" { + pub fn ImPlot_ImOverlaps_U8(min_a: ImU8, max_a: ImU8, min_b: ImU8, max_b: ImU8) -> bool; +} +extern "C" { + pub fn ImPlot_ImOverlaps_S16(min_a: ImS16, max_a: ImS16, min_b: ImS16, max_b: ImS16) -> bool; +} +extern "C" { + pub fn ImPlot_ImOverlaps_U16(min_a: ImU16, max_a: ImU16, min_b: ImU16, max_b: ImU16) -> bool; +} +extern "C" { + pub fn ImPlot_ImOverlaps_S32(min_a: ImS32, max_a: ImS32, min_b: ImS32, max_b: ImS32) -> bool; +} +extern "C" { + pub fn ImPlot_ImOverlaps_U32(min_a: ImU32, max_a: ImU32, min_b: ImU32, max_b: ImU32) -> bool; +} +extern "C" { + pub fn ImPlot_ImOverlaps_S64(min_a: ImS64, max_a: ImS64, min_b: ImS64, max_b: ImS64) -> bool; +} +extern "C" { + pub fn ImPlot_ImOverlaps_U64(min_a: ImU64, max_a: ImU64, min_b: ImU64, max_b: ImU64) -> bool; +} +extern "C" { + pub fn ImPlotDateTimeSpec_ImPlotDateTimeSpec_Nil() -> *mut ImPlotDateTimeSpec; +} +extern "C" { + pub fn ImPlotDateTimeSpec_destroy(self_: *mut ImPlotDateTimeSpec); +} +extern "C" { + pub fn ImPlotDateTimeSpec_ImPlotDateTimeSpec_PlotDateFmt( + date_fmt: ImPlotDateFmt, + time_fmt: ImPlotTimeFmt, + use_24_hr_clk: bool, + use_iso_8601: bool, + ) -> *mut ImPlotDateTimeSpec; +} +extern "C" { + pub fn ImPlotTime_ImPlotTime_Nil() -> *mut ImPlotTime; +} +extern "C" { + pub fn ImPlotTime_destroy(self_: *mut ImPlotTime); +} +extern "C" { + pub fn ImPlotTime_ImPlotTime_time_t(s: time_t, us: ::std::os::raw::c_int) -> *mut ImPlotTime; +} +extern "C" { + pub fn ImPlotTime_RollOver(self_: *mut ImPlotTime); +} +extern "C" { + pub fn ImPlotTime_ToDouble(self_: *mut ImPlotTime) -> f64; +} +extern "C" { + pub fn ImPlotTime_FromDouble(pOut: *mut ImPlotTime, t: f64); +} +extern "C" { + pub fn ImPlotColormapData_ImPlotColormapData() -> *mut ImPlotColormapData; +} +extern "C" { + pub fn ImPlotColormapData_destroy(self_: *mut ImPlotColormapData); +} +extern "C" { + pub fn ImPlotColormapData_Append( + self_: *mut ImPlotColormapData, + name: *const ::std::os::raw::c_char, + keys: *const ImU32, + count: ::std::os::raw::c_int, + qual: bool, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ImPlotColormapData__AppendTable(self_: *mut ImPlotColormapData, cmap: ImPlotColormap); +} +extern "C" { + pub fn ImPlotColormapData_RebuildTables(self_: *mut ImPlotColormapData); +} +extern "C" { + pub fn ImPlotColormapData_IsQual(self_: *mut ImPlotColormapData, cmap: ImPlotColormap) -> bool; +} +extern "C" { + pub fn ImPlotColormapData_GetName( + self_: *mut ImPlotColormapData, + cmap: ImPlotColormap, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn ImPlotColormapData_GetIndex( + self_: *mut ImPlotColormapData, + name: *const ::std::os::raw::c_char, + ) -> ImPlotColormap; +} +extern "C" { + pub fn ImPlotColormapData_GetKeys( + self_: *mut ImPlotColormapData, + cmap: ImPlotColormap, + ) -> *const ImU32; +} +extern "C" { + pub fn ImPlotColormapData_GetKeyCount( + self_: *mut ImPlotColormapData, + cmap: ImPlotColormap, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ImPlotColormapData_GetKeyColor( + self_: *mut ImPlotColormapData, + cmap: ImPlotColormap, + idx: ::std::os::raw::c_int, + ) -> ImU32; +} +extern "C" { + pub fn ImPlotColormapData_SetKeyColor( + self_: *mut ImPlotColormapData, + cmap: ImPlotColormap, + idx: ::std::os::raw::c_int, + value: ImU32, + ); +} +extern "C" { + pub fn ImPlotColormapData_GetTable( + self_: *mut ImPlotColormapData, + cmap: ImPlotColormap, + ) -> *const ImU32; +} +extern "C" { + pub fn ImPlotColormapData_GetTableSize( + self_: *mut ImPlotColormapData, + cmap: ImPlotColormap, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ImPlotColormapData_GetTableColor( + self_: *mut ImPlotColormapData, + cmap: ImPlotColormap, + idx: ::std::os::raw::c_int, + ) -> ImU32; +} +extern "C" { + pub fn ImPlotColormapData_LerpTable( + self_: *mut ImPlotColormapData, + cmap: ImPlotColormap, + t: f32, + ) -> ImU32; +} +extern "C" { + pub fn ImPlotPointError_ImPlotPointError( + x: f64, + y: f64, + neg: f64, + pos: f64, + ) -> *mut ImPlotPointError; +} +extern "C" { + pub fn ImPlotPointError_destroy(self_: *mut ImPlotPointError); +} +extern "C" { + pub fn ImPlotAnnotation_ImPlotAnnotation() -> *mut ImPlotAnnotation; +} +extern "C" { + pub fn ImPlotAnnotation_destroy(self_: *mut ImPlotAnnotation); +} +extern "C" { + pub fn ImPlotAnnotationCollection_ImPlotAnnotationCollection() -> *mut ImPlotAnnotationCollection; +} +extern "C" { + pub fn ImPlotAnnotationCollection_destroy(self_: *mut ImPlotAnnotationCollection); +} +extern "C" { + pub fn ImPlotAnnotationCollection_Append( + self_: *mut ImPlotAnnotationCollection, + pos: ImVec2, + off: ImVec2, + bg: ImU32, + fg: ImU32, + clamp: bool, + fmt: *const ::std::os::raw::c_char, + ... + ); +} +extern "C" { + pub fn ImPlotAnnotationCollection_GetText( + self_: *mut ImPlotAnnotationCollection, + idx: ::std::os::raw::c_int, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn ImPlotAnnotationCollection_Reset(self_: *mut ImPlotAnnotationCollection); +} +extern "C" { + pub fn ImPlotTagCollection_ImPlotTagCollection() -> *mut ImPlotTagCollection; +} +extern "C" { + pub fn ImPlotTagCollection_destroy(self_: *mut ImPlotTagCollection); +} +extern "C" { + pub fn ImPlotTagCollection_Append( + self_: *mut ImPlotTagCollection, + axis: ImAxis, + value: f64, + bg: ImU32, + fg: ImU32, + fmt: *const ::std::os::raw::c_char, + ... + ); +} +extern "C" { + pub fn ImPlotTagCollection_GetText( + self_: *mut ImPlotTagCollection, + idx: ::std::os::raw::c_int, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn ImPlotTagCollection_Reset(self_: *mut ImPlotTagCollection); +} +extern "C" { + pub fn ImPlotTick_ImPlotTick( + value: f64, + major: bool, + level: ::std::os::raw::c_int, + show_label: bool, + ) -> *mut ImPlotTick; +} +extern "C" { + pub fn ImPlotTick_destroy(self_: *mut ImPlotTick); +} +extern "C" { + pub fn ImPlotTicker_ImPlotTicker() -> *mut ImPlotTicker; +} +extern "C" { + pub fn ImPlotTicker_destroy(self_: *mut ImPlotTicker); +} +extern "C" { + pub fn ImPlotTicker_AddTick_doubleStr( + self_: *mut ImPlotTicker, + value: f64, + major: bool, + level: ::std::os::raw::c_int, + show_label: bool, + label: *const ::std::os::raw::c_char, + ) -> *mut ImPlotTick; +} +extern "C" { + pub fn ImPlotTicker_AddTick_doublePlotFormatter( + self_: *mut ImPlotTicker, + value: f64, + major: bool, + level: ::std::os::raw::c_int, + show_label: bool, + formatter: ImPlotFormatter, + data: *mut ::std::os::raw::c_void, + ) -> *mut ImPlotTick; +} +extern "C" { + pub fn ImPlotTicker_AddTick_PlotTick( + self_: *mut ImPlotTicker, + tick: ImPlotTick, + ) -> *mut ImPlotTick; +} +extern "C" { + pub fn ImPlotTicker_GetText_Int( + self_: *mut ImPlotTicker, + idx: ::std::os::raw::c_int, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn ImPlotTicker_GetText_PlotTick( + self_: *mut ImPlotTicker, + tick: ImPlotTick, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn ImPlotTicker_OverrideSizeLate(self_: *mut ImPlotTicker, size: ImVec2); +} +extern "C" { + pub fn ImPlotTicker_Reset(self_: *mut ImPlotTicker); +} +extern "C" { + pub fn ImPlotTicker_TickCount(self_: *mut ImPlotTicker) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ImPlotAxis_ImPlotAxis() -> *mut ImPlotAxis; +} +extern "C" { + pub fn ImPlotAxis_destroy(self_: *mut ImPlotAxis); +} +extern "C" { + pub fn ImPlotAxis_Reset(self_: *mut ImPlotAxis); +} +extern "C" { + pub fn ImPlotAxis_SetMin(self_: *mut ImPlotAxis, _min: f64, force: bool) -> bool; +} +extern "C" { + pub fn ImPlotAxis_SetMax(self_: *mut ImPlotAxis, _max: f64, force: bool) -> bool; +} +extern "C" { + pub fn ImPlotAxis_SetRange_double(self_: *mut ImPlotAxis, v1: f64, v2: f64); +} +extern "C" { + pub fn ImPlotAxis_SetRange_PlotRange(self_: *mut ImPlotAxis, range: ImPlotRange); +} +extern "C" { + pub fn ImPlotAxis_SetAspect(self_: *mut ImPlotAxis, unit_per_pix: f64); +} +extern "C" { + pub fn ImPlotAxis_PixelSize(self_: *mut ImPlotAxis) -> f32; +} +extern "C" { + pub fn ImPlotAxis_GetAspect(self_: *mut ImPlotAxis) -> f64; +} +extern "C" { + pub fn ImPlotAxis_Constrain(self_: *mut ImPlotAxis); +} +extern "C" { + pub fn ImPlotAxis_UpdateTransformCache(self_: *mut ImPlotAxis); +} +extern "C" { + pub fn ImPlotAxis_PlotToPixels(self_: *mut ImPlotAxis, plt: f64) -> f32; +} +extern "C" { + pub fn ImPlotAxis_PixelsToPlot(self_: *mut ImPlotAxis, pix: f32) -> f64; +} +extern "C" { + pub fn ImPlotAxis_ExtendFit(self_: *mut ImPlotAxis, v: f64); +} +extern "C" { + pub fn ImPlotAxis_ExtendFitWith( + self_: *mut ImPlotAxis, + alt: *mut ImPlotAxis, + v: f64, + v_alt: f64, + ); +} +extern "C" { + pub fn ImPlotAxis_ApplyFit(self_: *mut ImPlotAxis, padding: f32); +} +extern "C" { + pub fn ImPlotAxis_HasLabel(self_: *mut ImPlotAxis) -> bool; +} +extern "C" { + pub fn ImPlotAxis_HasGridLines(self_: *mut ImPlotAxis) -> bool; +} +extern "C" { + pub fn ImPlotAxis_HasTickLabels(self_: *mut ImPlotAxis) -> bool; +} +extern "C" { + pub fn ImPlotAxis_HasTickMarks(self_: *mut ImPlotAxis) -> bool; +} +extern "C" { + pub fn ImPlotAxis_WillRender(self_: *mut ImPlotAxis) -> bool; +} +extern "C" { + pub fn ImPlotAxis_IsOpposite(self_: *mut ImPlotAxis) -> bool; +} +extern "C" { + pub fn ImPlotAxis_IsInverted(self_: *mut ImPlotAxis) -> bool; +} +extern "C" { + pub fn ImPlotAxis_IsForeground(self_: *mut ImPlotAxis) -> bool; +} +extern "C" { + pub fn ImPlotAxis_IsAutoFitting(self_: *mut ImPlotAxis) -> bool; +} +extern "C" { + pub fn ImPlotAxis_CanInitFit(self_: *mut ImPlotAxis) -> bool; +} +extern "C" { + pub fn ImPlotAxis_IsRangeLocked(self_: *mut ImPlotAxis) -> bool; +} +extern "C" { + pub fn ImPlotAxis_IsLockedMin(self_: *mut ImPlotAxis) -> bool; +} +extern "C" { + pub fn ImPlotAxis_IsLockedMax(self_: *mut ImPlotAxis) -> bool; +} +extern "C" { + pub fn ImPlotAxis_IsLocked(self_: *mut ImPlotAxis) -> bool; +} +extern "C" { + pub fn ImPlotAxis_IsInputLockedMin(self_: *mut ImPlotAxis) -> bool; +} +extern "C" { + pub fn ImPlotAxis_IsInputLockedMax(self_: *mut ImPlotAxis) -> bool; +} +extern "C" { + pub fn ImPlotAxis_IsInputLocked(self_: *mut ImPlotAxis) -> bool; +} +extern "C" { + pub fn ImPlotAxis_HasMenus(self_: *mut ImPlotAxis) -> bool; +} +extern "C" { + pub fn ImPlotAxis_IsPanLocked(self_: *mut ImPlotAxis, increasing: bool) -> bool; +} +extern "C" { + pub fn ImPlotAxis_PushLinks(self_: *mut ImPlotAxis); +} +extern "C" { + pub fn ImPlotAxis_PullLinks(self_: *mut ImPlotAxis); +} +extern "C" { + pub fn ImPlotAlignmentData_ImPlotAlignmentData() -> *mut ImPlotAlignmentData; +} +extern "C" { + pub fn ImPlotAlignmentData_destroy(self_: *mut ImPlotAlignmentData); +} +extern "C" { + pub fn ImPlotAlignmentData_Begin(self_: *mut ImPlotAlignmentData); +} +extern "C" { + pub fn ImPlotAlignmentData_Update( + self_: *mut ImPlotAlignmentData, + pad_a: *mut f32, + pad_b: *mut f32, + delta_a: *mut f32, + delta_b: *mut f32, + ); +} +extern "C" { + pub fn ImPlotAlignmentData_End(self_: *mut ImPlotAlignmentData); +} +extern "C" { + pub fn ImPlotAlignmentData_Reset(self_: *mut ImPlotAlignmentData); +} +extern "C" { + pub fn ImPlotItem_ImPlotItem() -> *mut ImPlotItem; +} +extern "C" { + pub fn ImPlotItem_destroy(self_: *mut ImPlotItem); +} +extern "C" { + pub fn ImPlotLegend_ImPlotLegend() -> *mut ImPlotLegend; +} +extern "C" { + pub fn ImPlotLegend_destroy(self_: *mut ImPlotLegend); +} +extern "C" { + pub fn ImPlotLegend_Reset(self_: *mut ImPlotLegend); +} +extern "C" { + pub fn ImPlotItemGroup_ImPlotItemGroup() -> *mut ImPlotItemGroup; +} +extern "C" { + pub fn ImPlotItemGroup_destroy(self_: *mut ImPlotItemGroup); +} +extern "C" { + pub fn ImPlotItemGroup_GetItemCount(self_: *mut ImPlotItemGroup) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ImPlotItemGroup_GetItemID( + self_: *mut ImPlotItemGroup, + label_id: *const ::std::os::raw::c_char, + ) -> ImGuiID; +} +extern "C" { + pub fn ImPlotItemGroup_GetItem_ID(self_: *mut ImPlotItemGroup, id: ImGuiID) -> *mut ImPlotItem; +} +extern "C" { + pub fn ImPlotItemGroup_GetItem_Str( + self_: *mut ImPlotItemGroup, + label_id: *const ::std::os::raw::c_char, + ) -> *mut ImPlotItem; +} +extern "C" { + pub fn ImPlotItemGroup_GetOrAddItem( + self_: *mut ImPlotItemGroup, + id: ImGuiID, + ) -> *mut ImPlotItem; +} +extern "C" { + pub fn ImPlotItemGroup_GetItemByIndex( + self_: *mut ImPlotItemGroup, + i: ::std::os::raw::c_int, + ) -> *mut ImPlotItem; +} +extern "C" { + pub fn ImPlotItemGroup_GetItemIndex( + self_: *mut ImPlotItemGroup, + item: *mut ImPlotItem, + ) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ImPlotItemGroup_GetLegendCount(self_: *mut ImPlotItemGroup) -> ::std::os::raw::c_int; +} +extern "C" { + pub fn ImPlotItemGroup_GetLegendItem( + self_: *mut ImPlotItemGroup, + i: ::std::os::raw::c_int, + ) -> *mut ImPlotItem; +} +extern "C" { + pub fn ImPlotItemGroup_GetLegendLabel( + self_: *mut ImPlotItemGroup, + i: ::std::os::raw::c_int, + ) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn ImPlotItemGroup_Reset(self_: *mut ImPlotItemGroup); +} +extern "C" { + pub fn ImPlotPlot_ImPlotPlot() -> *mut ImPlotPlot; +} +extern "C" { + pub fn ImPlotPlot_destroy(self_: *mut ImPlotPlot); +} +extern "C" { + pub fn ImPlotPlot_IsInputLocked(self_: *mut ImPlotPlot) -> bool; +} +extern "C" { + pub fn ImPlotPlot_ClearTextBuffer(self_: *mut ImPlotPlot); +} +extern "C" { + pub fn ImPlotPlot_SetTitle(self_: *mut ImPlotPlot, title: *const ::std::os::raw::c_char); +} +extern "C" { + pub fn ImPlotPlot_HasTitle(self_: *mut ImPlotPlot) -> bool; +} +extern "C" { + pub fn ImPlotPlot_GetTitle(self_: *mut ImPlotPlot) -> *const ::std::os::raw::c_char; +} +extern "C" { + pub fn ImPlotPlot_XAxis_Nil( + self_: *mut ImPlotPlot, + i: ::std::os::raw::c_int, + ) -> *mut ImPlotAxis; +} +extern "C" { + pub fn ImPlotPlot_XAxis__const( + self_: *mut ImPlotPlot, + i: ::std::os::raw::c_int, + ) -> *const ImPlotAxis; +} +extern "C" { + pub fn ImPlotPlot_YAxis_Nil( + self_: *mut ImPlotPlot, + i: ::std::os::raw::c_int, + ) -> *mut ImPlotAxis; +} +extern "C" { + pub fn ImPlotPlot_YAxis__const( + self_: *mut ImPlotPlot, + i: ::std::os::raw::c_int, + ) -> *const ImPlotAxis; +} extern "C" { - pub fn ImPlotPoint_ImPlotPointdouble(_x: f64, _y: f64) -> *mut ImPlotPoint; + pub fn ImPlotPlot_EnabledAxesX(self_: *mut ImPlotPlot) -> ::std::os::raw::c_int; } extern "C" { - pub fn ImPlotPoint_ImPlotPointVec2(p: ImVec2) -> *mut ImPlotPoint; + pub fn ImPlotPlot_EnabledAxesY(self_: *mut ImPlotPlot) -> ::std::os::raw::c_int; } extern "C" { - pub fn ImPlotRange_ImPlotRangeNil() -> *mut ImPlotRange; + pub fn ImPlotPlot_SetAxisLabel( + self_: *mut ImPlotPlot, + axis: *mut ImPlotAxis, + label: *const ::std::os::raw::c_char, + ); } extern "C" { - pub fn ImPlotRange_destroy(self_: *mut ImPlotRange); + pub fn ImPlotPlot_GetAxisLabel( + self_: *mut ImPlotPlot, + axis: ImPlotAxis, + ) -> *const ::std::os::raw::c_char; } extern "C" { - pub fn ImPlotRange_ImPlotRangedouble(_min: f64, _max: f64) -> *mut ImPlotRange; + pub fn ImPlotSubplot_ImPlotSubplot() -> *mut ImPlotSubplot; } extern "C" { - pub fn ImPlotRange_Contains(self_: *mut ImPlotRange, value: f64) -> bool; + pub fn ImPlotSubplot_destroy(self_: *mut ImPlotSubplot); } extern "C" { - pub fn ImPlotRange_Size(self_: *mut ImPlotRange) -> f64; + pub fn ImPlotNextPlotData_ImPlotNextPlotData() -> *mut ImPlotNextPlotData; } extern "C" { - pub fn ImPlotLimits_ContainsPlotPoInt(self_: *mut ImPlotLimits, p: ImPlotPoint) -> bool; + pub fn ImPlotNextPlotData_destroy(self_: *mut ImPlotNextPlotData); } extern "C" { - pub fn ImPlotLimits_Containsdouble(self_: *mut ImPlotLimits, x: f64, y: f64) -> bool; + pub fn ImPlotNextPlotData_Reset(self_: *mut ImPlotNextPlotData); } extern "C" { - pub fn ImPlotStyle_ImPlotStyle() -> *mut ImPlotStyle; + pub fn ImPlotNextItemData_ImPlotNextItemData() -> *mut ImPlotNextItemData; } extern "C" { - pub fn ImPlotStyle_destroy(self_: *mut ImPlotStyle); + pub fn ImPlotNextItemData_destroy(self_: *mut ImPlotNextItemData); } extern "C" { - pub fn ImPlotInputMap_ImPlotInputMap() -> *mut ImPlotInputMap; + pub fn ImPlotNextItemData_Reset(self_: *mut ImPlotNextItemData); } extern "C" { - pub fn ImPlotInputMap_destroy(self_: *mut ImPlotInputMap); + pub fn ImPlot_Initialize(ctx: *mut ImPlotContext); } extern "C" { - pub fn ImPlot_CreateContext() -> *mut ImPlotContext; + pub fn ImPlot_ResetCtxForNextPlot(ctx: *mut ImPlotContext); } extern "C" { - pub fn ImPlot_DestroyContext(ctx: *mut ImPlotContext); + pub fn ImPlot_ResetCtxForNextAlignedPlots(ctx: *mut ImPlotContext); } extern "C" { - pub fn ImPlot_GetCurrentContext() -> *mut ImPlotContext; + pub fn ImPlot_ResetCtxForNextSubplot(ctx: *mut ImPlotContext); } extern "C" { - pub fn ImPlot_SetCurrentContext(ctx: *mut ImPlotContext); + pub fn ImPlot_GetPlot(title: *const ::std::os::raw::c_char) -> *mut ImPlotPlot; } extern "C" { - pub fn ImPlot_BeginPlot( - title_id: *const ::std::os::raw::c_char, - x_label: *const ::std::os::raw::c_char, - y_label: *const ::std::os::raw::c_char, - size: ImVec2, - flags: ImPlotFlags, - x_flags: ImPlotAxisFlags, - y_flags: ImPlotAxisFlags, - y2_flags: ImPlotAxisFlags, - y3_flags: ImPlotAxisFlags, - ) -> bool; + pub fn ImPlot_GetCurrentPlot() -> *mut ImPlotPlot; } extern "C" { - pub fn ImPlot_EndPlot(); + pub fn ImPlot_BustPlotCache(); } extern "C" { - pub fn ImPlot_PlotLineFloatPtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const f32, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); + pub fn ImPlot_ShowPlotContextMenu(plot: *mut ImPlotPlot); } extern "C" { - pub fn ImPlot_PlotLinedoublePtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const f64, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); + pub fn ImPlot_SetupLock(); } extern "C" { - pub fn ImPlot_PlotLineS8PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS8, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); + pub fn ImPlot_SubplotNextCell(); } extern "C" { - pub fn ImPlot_PlotLineU8PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU8, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); + pub fn ImPlot_ShowSubplotsContextMenu(subplot: *mut ImPlotSubplot); } extern "C" { - pub fn ImPlot_PlotLineS16PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS16, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); + pub fn ImPlot_BeginItem( + label_id: *const ::std::os::raw::c_char, + flags: ImPlotItemFlags, + recolor_from: ImPlotCol, + ) -> bool; } extern "C" { - pub fn ImPlot_PlotLineU16PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU16, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotLineS32PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS32, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotLineU32PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU32, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotLineS64PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS64, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotLineU64PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU64, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotLineFloatPtrFloatPtr( - label_id: *const ::std::os::raw::c_char, - xs: *const f32, - ys: *const f32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotLinedoublePtrdoublePtr( - label_id: *const ::std::os::raw::c_char, - xs: *const f64, - ys: *const f64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotLineS8PtrS8Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS8, - ys: *const ImS8, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotLineU8PtrU8Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU8, - ys: *const ImU8, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotLineS16PtrS16Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS16, - ys: *const ImS16, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotLineU16PtrU16Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU16, - ys: *const ImU16, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotLineS32PtrS32Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS32, - ys: *const ImS32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotLineU32PtrU32Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU32, - ys: *const ImU32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotLineS64PtrS64Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS64, - ys: *const ImS64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotLineU64PtrU64Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU64, - ys: *const ImU64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotScatterFloatPtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const f32, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotScatterdoublePtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const f64, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotScatterS8PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS8, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotScatterU8PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU8, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotScatterS16PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS16, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotScatterU16PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU16, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotScatterS32PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS32, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotScatterU32PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU32, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotScatterS64PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS64, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotScatterU64PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU64, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotScatterFloatPtrFloatPtr( - label_id: *const ::std::os::raw::c_char, - xs: *const f32, - ys: *const f32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotScatterdoublePtrdoublePtr( - label_id: *const ::std::os::raw::c_char, - xs: *const f64, - ys: *const f64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotScatterS8PtrS8Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS8, - ys: *const ImS8, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotScatterU8PtrU8Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU8, - ys: *const ImU8, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotScatterS16PtrS16Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS16, - ys: *const ImS16, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotScatterU16PtrU16Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU16, - ys: *const ImU16, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotScatterS32PtrS32Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS32, - ys: *const ImS32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotScatterU32PtrU32Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU32, - ys: *const ImU32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotScatterS64PtrS64Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS64, - ys: *const ImS64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotScatterU64PtrU64Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU64, - ys: *const ImU64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStairsFloatPtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const f32, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStairsdoublePtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const f64, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStairsS8PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS8, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStairsU8PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU8, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStairsS16PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS16, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStairsU16PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU16, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStairsS32PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS32, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStairsU32PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU32, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStairsS64PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS64, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStairsU64PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU64, - count: ::std::os::raw::c_int, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStairsFloatPtrFloatPtr( - label_id: *const ::std::os::raw::c_char, - xs: *const f32, - ys: *const f32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStairsdoublePtrdoublePtr( - label_id: *const ::std::os::raw::c_char, - xs: *const f64, - ys: *const f64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStairsS8PtrS8Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS8, - ys: *const ImS8, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStairsU8PtrU8Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU8, - ys: *const ImU8, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStairsS16PtrS16Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS16, - ys: *const ImS16, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStairsU16PtrU16Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU16, - ys: *const ImU16, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStairsS32PtrS32Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS32, - ys: *const ImS32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStairsU32PtrU32Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU32, - ys: *const ImU32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStairsS64PtrS64Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS64, - ys: *const ImS64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStairsU64PtrU64Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU64, - ys: *const ImU64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStairsG( - label_id: *const ::std::os::raw::c_char, - getter: ::std::option::Option< - unsafe extern "C" fn( - data: *mut ::std::os::raw::c_void, - idx: ::std::os::raw::c_int, - ) -> ImPlotPoint, - >, - data: *mut ::std::os::raw::c_void, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedFloatPtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const f32, - count: ::std::os::raw::c_int, - y_ref: f64, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadeddoublePtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const f64, - count: ::std::os::raw::c_int, - y_ref: f64, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedS8PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS8, - count: ::std::os::raw::c_int, - y_ref: f64, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedU8PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU8, - count: ::std::os::raw::c_int, - y_ref: f64, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedS16PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS16, - count: ::std::os::raw::c_int, - y_ref: f64, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedU16PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU16, - count: ::std::os::raw::c_int, - y_ref: f64, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedS32PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS32, - count: ::std::os::raw::c_int, - y_ref: f64, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedU32PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU32, - count: ::std::os::raw::c_int, - y_ref: f64, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedS64PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS64, - count: ::std::os::raw::c_int, - y_ref: f64, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedU64PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU64, - count: ::std::os::raw::c_int, - y_ref: f64, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedFloatPtrFloatPtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const f32, - ys: *const f32, - count: ::std::os::raw::c_int, - y_ref: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadeddoublePtrdoublePtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const f64, - ys: *const f64, - count: ::std::os::raw::c_int, - y_ref: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedS8PtrS8PtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS8, - ys: *const ImS8, - count: ::std::os::raw::c_int, - y_ref: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedU8PtrU8PtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU8, - ys: *const ImU8, - count: ::std::os::raw::c_int, - y_ref: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedS16PtrS16PtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS16, - ys: *const ImS16, - count: ::std::os::raw::c_int, - y_ref: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedU16PtrU16PtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU16, - ys: *const ImU16, - count: ::std::os::raw::c_int, - y_ref: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedS32PtrS32PtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS32, - ys: *const ImS32, - count: ::std::os::raw::c_int, - y_ref: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedU32PtrU32PtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU32, - ys: *const ImU32, - count: ::std::os::raw::c_int, - y_ref: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedS64PtrS64PtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS64, - ys: *const ImS64, - count: ::std::os::raw::c_int, - y_ref: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedU64PtrU64PtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU64, - ys: *const ImU64, - count: ::std::os::raw::c_int, - y_ref: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedFloatPtrFloatPtrFloatPtr( - label_id: *const ::std::os::raw::c_char, - xs: *const f32, - ys1: *const f32, - ys2: *const f32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadeddoublePtrdoublePtrdoublePtr( - label_id: *const ::std::os::raw::c_char, - xs: *const f64, - ys1: *const f64, - ys2: *const f64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedS8PtrS8PtrS8Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS8, - ys1: *const ImS8, - ys2: *const ImS8, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedU8PtrU8PtrU8Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU8, - ys1: *const ImU8, - ys2: *const ImU8, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedS16PtrS16PtrS16Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS16, - ys1: *const ImS16, - ys2: *const ImS16, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedU16PtrU16PtrU16Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU16, - ys1: *const ImU16, - ys2: *const ImU16, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedS32PtrS32PtrS32Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS32, - ys1: *const ImS32, - ys2: *const ImS32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedU32PtrU32PtrU32Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU32, - ys1: *const ImU32, - ys2: *const ImU32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedS64PtrS64PtrS64Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS64, - ys1: *const ImS64, - ys2: *const ImS64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotShadedU64PtrU64PtrU64Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU64, - ys1: *const ImU64, - ys2: *const ImU64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsFloatPtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const f32, - count: ::std::os::raw::c_int, - width: f64, - shift: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsdoublePtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const f64, - count: ::std::os::raw::c_int, - width: f64, - shift: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsS8PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS8, - count: ::std::os::raw::c_int, - width: f64, - shift: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsU8PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU8, - count: ::std::os::raw::c_int, - width: f64, - shift: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsS16PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS16, - count: ::std::os::raw::c_int, - width: f64, - shift: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsU16PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU16, - count: ::std::os::raw::c_int, - width: f64, - shift: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsS32PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS32, - count: ::std::os::raw::c_int, - width: f64, - shift: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsU32PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU32, - count: ::std::os::raw::c_int, - width: f64, - shift: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsS64PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS64, - count: ::std::os::raw::c_int, - width: f64, - shift: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsU64PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU64, - count: ::std::os::raw::c_int, - width: f64, - shift: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsFloatPtrFloatPtr( - label_id: *const ::std::os::raw::c_char, - xs: *const f32, - ys: *const f32, - count: ::std::os::raw::c_int, - width: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsdoublePtrdoublePtr( - label_id: *const ::std::os::raw::c_char, - xs: *const f64, - ys: *const f64, - count: ::std::os::raw::c_int, - width: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsS8PtrS8Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS8, - ys: *const ImS8, - count: ::std::os::raw::c_int, - width: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsU8PtrU8Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU8, - ys: *const ImU8, - count: ::std::os::raw::c_int, - width: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsS16PtrS16Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS16, - ys: *const ImS16, - count: ::std::os::raw::c_int, - width: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsU16PtrU16Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU16, - ys: *const ImU16, - count: ::std::os::raw::c_int, - width: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsS32PtrS32Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS32, - ys: *const ImS32, - count: ::std::os::raw::c_int, - width: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsU32PtrU32Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU32, - ys: *const ImU32, - count: ::std::os::raw::c_int, - width: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsS64PtrS64Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS64, - ys: *const ImS64, - count: ::std::os::raw::c_int, - width: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsU64PtrU64Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU64, - ys: *const ImU64, - count: ::std::os::raw::c_int, - width: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsHFloatPtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const f32, - count: ::std::os::raw::c_int, - height: f64, - shift: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsHdoublePtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const f64, - count: ::std::os::raw::c_int, - height: f64, - shift: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsHS8PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS8, - count: ::std::os::raw::c_int, - height: f64, - shift: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsHU8PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU8, - count: ::std::os::raw::c_int, - height: f64, - shift: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsHS16PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS16, - count: ::std::os::raw::c_int, - height: f64, - shift: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsHU16PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU16, - count: ::std::os::raw::c_int, - height: f64, - shift: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsHS32PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS32, - count: ::std::os::raw::c_int, - height: f64, - shift: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsHU32PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU32, - count: ::std::os::raw::c_int, - height: f64, - shift: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsHS64PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS64, - count: ::std::os::raw::c_int, - height: f64, - shift: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsHU64PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU64, - count: ::std::os::raw::c_int, - height: f64, - shift: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsHFloatPtrFloatPtr( - label_id: *const ::std::os::raw::c_char, - xs: *const f32, - ys: *const f32, - count: ::std::os::raw::c_int, - height: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsHdoublePtrdoublePtr( - label_id: *const ::std::os::raw::c_char, - xs: *const f64, - ys: *const f64, - count: ::std::os::raw::c_int, - height: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsHS8PtrS8Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS8, - ys: *const ImS8, - count: ::std::os::raw::c_int, - height: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsHU8PtrU8Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU8, - ys: *const ImU8, - count: ::std::os::raw::c_int, - height: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsHS16PtrS16Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS16, - ys: *const ImS16, - count: ::std::os::raw::c_int, - height: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsHU16PtrU16Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU16, - ys: *const ImU16, - count: ::std::os::raw::c_int, - height: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsHS32PtrS32Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS32, - ys: *const ImS32, - count: ::std::os::raw::c_int, - height: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsHU32PtrU32Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU32, - ys: *const ImU32, - count: ::std::os::raw::c_int, - height: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsHS64PtrS64Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS64, - ys: *const ImS64, - count: ::std::os::raw::c_int, - height: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotBarsHU64PtrU64Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU64, - ys: *const ImU64, - count: ::std::os::raw::c_int, - height: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsFloatPtrFloatPtrFloatPtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const f32, - ys: *const f32, - err: *const f32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsdoublePtrdoublePtrdoublePtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const f64, - ys: *const f64, - err: *const f64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsS8PtrS8PtrS8PtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS8, - ys: *const ImS8, - err: *const ImS8, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsU8PtrU8PtrU8PtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU8, - ys: *const ImU8, - err: *const ImU8, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsS16PtrS16PtrS16PtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS16, - ys: *const ImS16, - err: *const ImS16, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsU16PtrU16PtrU16PtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU16, - ys: *const ImU16, - err: *const ImU16, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsS32PtrS32PtrS32PtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS32, - ys: *const ImS32, - err: *const ImS32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsU32PtrU32PtrU32PtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU32, - ys: *const ImU32, - err: *const ImU32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsS64PtrS64PtrS64PtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS64, - ys: *const ImS64, - err: *const ImS64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsU64PtrU64PtrU64PtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU64, - ys: *const ImU64, - err: *const ImU64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsFloatPtrFloatPtrFloatPtrFloatPtr( - label_id: *const ::std::os::raw::c_char, - xs: *const f32, - ys: *const f32, - neg: *const f32, - pos: *const f32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsdoublePtrdoublePtrdoublePtrdoublePtr( - label_id: *const ::std::os::raw::c_char, - xs: *const f64, - ys: *const f64, - neg: *const f64, - pos: *const f64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsS8PtrS8PtrS8PtrS8Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS8, - ys: *const ImS8, - neg: *const ImS8, - pos: *const ImS8, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsU8PtrU8PtrU8PtrU8Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU8, - ys: *const ImU8, - neg: *const ImU8, - pos: *const ImU8, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsS16PtrS16PtrS16PtrS16Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS16, - ys: *const ImS16, - neg: *const ImS16, - pos: *const ImS16, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsU16PtrU16PtrU16PtrU16Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU16, - ys: *const ImU16, - neg: *const ImU16, - pos: *const ImU16, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsS32PtrS32PtrS32PtrS32Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS32, - ys: *const ImS32, - neg: *const ImS32, - pos: *const ImS32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsU32PtrU32PtrU32PtrU32Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU32, - ys: *const ImU32, - neg: *const ImU32, - pos: *const ImU32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsS64PtrS64PtrS64PtrS64Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS64, - ys: *const ImS64, - neg: *const ImS64, - pos: *const ImS64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsU64PtrU64PtrU64PtrU64Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU64, - ys: *const ImU64, - neg: *const ImU64, - pos: *const ImU64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsHFloatPtrFloatPtrFloatPtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const f32, - ys: *const f32, - err: *const f32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsHdoublePtrdoublePtrdoublePtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const f64, - ys: *const f64, - err: *const f64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsHS8PtrS8PtrS8PtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS8, - ys: *const ImS8, - err: *const ImS8, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsHU8PtrU8PtrU8PtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU8, - ys: *const ImU8, - err: *const ImU8, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsHS16PtrS16PtrS16PtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS16, - ys: *const ImS16, - err: *const ImS16, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsHU16PtrU16PtrU16PtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU16, - ys: *const ImU16, - err: *const ImU16, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsHS32PtrS32PtrS32PtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS32, - ys: *const ImS32, - err: *const ImS32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsHU32PtrU32PtrU32PtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU32, - ys: *const ImU32, - err: *const ImU32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsHS64PtrS64PtrS64PtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS64, - ys: *const ImS64, - err: *const ImS64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsHU64PtrU64PtrU64PtrInt( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU64, - ys: *const ImU64, - err: *const ImU64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsHFloatPtrFloatPtrFloatPtrFloatPtr( - label_id: *const ::std::os::raw::c_char, - xs: *const f32, - ys: *const f32, - neg: *const f32, - pos: *const f32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsHdoublePtrdoublePtrdoublePtrdoublePtr( - label_id: *const ::std::os::raw::c_char, - xs: *const f64, - ys: *const f64, - neg: *const f64, - pos: *const f64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsHS8PtrS8PtrS8PtrS8Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS8, - ys: *const ImS8, - neg: *const ImS8, - pos: *const ImS8, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsHU8PtrU8PtrU8PtrU8Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU8, - ys: *const ImU8, - neg: *const ImU8, - pos: *const ImU8, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsHS16PtrS16PtrS16PtrS16Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS16, - ys: *const ImS16, - neg: *const ImS16, - pos: *const ImS16, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsHU16PtrU16PtrU16PtrU16Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU16, - ys: *const ImU16, - neg: *const ImU16, - pos: *const ImU16, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsHS32PtrS32PtrS32PtrS32Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS32, - ys: *const ImS32, - neg: *const ImS32, - pos: *const ImS32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsHU32PtrU32PtrU32PtrU32Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU32, - ys: *const ImU32, - neg: *const ImU32, - pos: *const ImU32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsHS64PtrS64PtrS64PtrS64Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS64, - ys: *const ImS64, - neg: *const ImS64, - pos: *const ImS64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotErrorBarsHU64PtrU64PtrU64PtrU64Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU64, - ys: *const ImU64, - neg: *const ImU64, - pos: *const ImU64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStemsFloatPtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const f32, - count: ::std::os::raw::c_int, - y_ref: f64, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStemsdoublePtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const f64, - count: ::std::os::raw::c_int, - y_ref: f64, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStemsS8PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS8, - count: ::std::os::raw::c_int, - y_ref: f64, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStemsU8PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU8, - count: ::std::os::raw::c_int, - y_ref: f64, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStemsS16PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS16, - count: ::std::os::raw::c_int, - y_ref: f64, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStemsU16PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU16, - count: ::std::os::raw::c_int, - y_ref: f64, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStemsS32PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS32, - count: ::std::os::raw::c_int, - y_ref: f64, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStemsU32PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU32, - count: ::std::os::raw::c_int, - y_ref: f64, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStemsS64PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImS64, - count: ::std::os::raw::c_int, - y_ref: f64, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStemsU64PtrInt( - label_id: *const ::std::os::raw::c_char, - values: *const ImU64, - count: ::std::os::raw::c_int, - y_ref: f64, - xscale: f64, - x0: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStemsFloatPtrFloatPtr( - label_id: *const ::std::os::raw::c_char, - xs: *const f32, - ys: *const f32, - count: ::std::os::raw::c_int, - y_ref: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStemsdoublePtrdoublePtr( - label_id: *const ::std::os::raw::c_char, - xs: *const f64, - ys: *const f64, - count: ::std::os::raw::c_int, - y_ref: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStemsS8PtrS8Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS8, - ys: *const ImS8, - count: ::std::os::raw::c_int, - y_ref: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStemsU8PtrU8Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU8, - ys: *const ImU8, - count: ::std::os::raw::c_int, - y_ref: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStemsS16PtrS16Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS16, - ys: *const ImS16, - count: ::std::os::raw::c_int, - y_ref: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStemsU16PtrU16Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU16, - ys: *const ImU16, - count: ::std::os::raw::c_int, - y_ref: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStemsS32PtrS32Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS32, - ys: *const ImS32, - count: ::std::os::raw::c_int, - y_ref: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStemsU32PtrU32Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU32, - ys: *const ImU32, - count: ::std::os::raw::c_int, - y_ref: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStemsS64PtrS64Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS64, - ys: *const ImS64, - count: ::std::os::raw::c_int, - y_ref: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotStemsU64PtrU64Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU64, - ys: *const ImU64, - count: ::std::os::raw::c_int, - y_ref: f64, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotPieChartFloatPtr( - label_ids: *const *const ::std::os::raw::c_char, - values: *const f32, - count: ::std::os::raw::c_int, - x: f64, - y: f64, - radius: f64, - normalize: bool, - label_fmt: *const ::std::os::raw::c_char, - angle0: f64, - ); -} -extern "C" { - pub fn ImPlot_PlotPieChartdoublePtr( - label_ids: *const *const ::std::os::raw::c_char, - values: *const f64, - count: ::std::os::raw::c_int, - x: f64, - y: f64, - radius: f64, - normalize: bool, - label_fmt: *const ::std::os::raw::c_char, - angle0: f64, - ); -} -extern "C" { - pub fn ImPlot_PlotPieChartS8Ptr( - label_ids: *const *const ::std::os::raw::c_char, - values: *const ImS8, - count: ::std::os::raw::c_int, - x: f64, - y: f64, - radius: f64, - normalize: bool, - label_fmt: *const ::std::os::raw::c_char, - angle0: f64, - ); -} -extern "C" { - pub fn ImPlot_PlotPieChartU8Ptr( - label_ids: *const *const ::std::os::raw::c_char, - values: *const ImU8, - count: ::std::os::raw::c_int, - x: f64, - y: f64, - radius: f64, - normalize: bool, - label_fmt: *const ::std::os::raw::c_char, - angle0: f64, - ); -} -extern "C" { - pub fn ImPlot_PlotPieChartS16Ptr( - label_ids: *const *const ::std::os::raw::c_char, - values: *const ImS16, - count: ::std::os::raw::c_int, - x: f64, - y: f64, - radius: f64, - normalize: bool, - label_fmt: *const ::std::os::raw::c_char, - angle0: f64, - ); -} -extern "C" { - pub fn ImPlot_PlotPieChartU16Ptr( - label_ids: *const *const ::std::os::raw::c_char, - values: *const ImU16, - count: ::std::os::raw::c_int, - x: f64, - y: f64, - radius: f64, - normalize: bool, - label_fmt: *const ::std::os::raw::c_char, - angle0: f64, - ); -} -extern "C" { - pub fn ImPlot_PlotPieChartS32Ptr( - label_ids: *const *const ::std::os::raw::c_char, - values: *const ImS32, - count: ::std::os::raw::c_int, - x: f64, - y: f64, - radius: f64, - normalize: bool, - label_fmt: *const ::std::os::raw::c_char, - angle0: f64, - ); -} -extern "C" { - pub fn ImPlot_PlotPieChartU32Ptr( - label_ids: *const *const ::std::os::raw::c_char, - values: *const ImU32, - count: ::std::os::raw::c_int, - x: f64, - y: f64, - radius: f64, - normalize: bool, - label_fmt: *const ::std::os::raw::c_char, - angle0: f64, - ); -} -extern "C" { - pub fn ImPlot_PlotPieChartS64Ptr( - label_ids: *const *const ::std::os::raw::c_char, - values: *const ImS64, - count: ::std::os::raw::c_int, - x: f64, - y: f64, - radius: f64, - normalize: bool, - label_fmt: *const ::std::os::raw::c_char, - angle0: f64, - ); -} -extern "C" { - pub fn ImPlot_PlotPieChartU64Ptr( - label_ids: *const *const ::std::os::raw::c_char, - values: *const ImU64, - count: ::std::os::raw::c_int, - x: f64, - y: f64, - radius: f64, - normalize: bool, - label_fmt: *const ::std::os::raw::c_char, - angle0: f64, - ); -} -extern "C" { - pub fn ImPlot_PlotHeatmapFloatPtr( - label_id: *const ::std::os::raw::c_char, - values: *const f32, - rows: ::std::os::raw::c_int, - cols: ::std::os::raw::c_int, - scale_min: f64, - scale_max: f64, - label_fmt: *const ::std::os::raw::c_char, - bounds_min: ImPlotPoint, - bounds_max: ImPlotPoint, - ); -} -extern "C" { - pub fn ImPlot_PlotHeatmapdoublePtr( - label_id: *const ::std::os::raw::c_char, - values: *const f64, - rows: ::std::os::raw::c_int, - cols: ::std::os::raw::c_int, - scale_min: f64, - scale_max: f64, - label_fmt: *const ::std::os::raw::c_char, - bounds_min: ImPlotPoint, - bounds_max: ImPlotPoint, - ); -} -extern "C" { - pub fn ImPlot_PlotHeatmapS8Ptr( - label_id: *const ::std::os::raw::c_char, - values: *const ImS8, - rows: ::std::os::raw::c_int, - cols: ::std::os::raw::c_int, - scale_min: f64, - scale_max: f64, - label_fmt: *const ::std::os::raw::c_char, - bounds_min: ImPlotPoint, - bounds_max: ImPlotPoint, - ); -} -extern "C" { - pub fn ImPlot_PlotHeatmapU8Ptr( - label_id: *const ::std::os::raw::c_char, - values: *const ImU8, - rows: ::std::os::raw::c_int, - cols: ::std::os::raw::c_int, - scale_min: f64, - scale_max: f64, - label_fmt: *const ::std::os::raw::c_char, - bounds_min: ImPlotPoint, - bounds_max: ImPlotPoint, - ); -} -extern "C" { - pub fn ImPlot_PlotHeatmapS16Ptr( - label_id: *const ::std::os::raw::c_char, - values: *const ImS16, - rows: ::std::os::raw::c_int, - cols: ::std::os::raw::c_int, - scale_min: f64, - scale_max: f64, - label_fmt: *const ::std::os::raw::c_char, - bounds_min: ImPlotPoint, - bounds_max: ImPlotPoint, - ); -} -extern "C" { - pub fn ImPlot_PlotHeatmapU16Ptr( - label_id: *const ::std::os::raw::c_char, - values: *const ImU16, - rows: ::std::os::raw::c_int, - cols: ::std::os::raw::c_int, - scale_min: f64, - scale_max: f64, - label_fmt: *const ::std::os::raw::c_char, - bounds_min: ImPlotPoint, - bounds_max: ImPlotPoint, - ); -} -extern "C" { - pub fn ImPlot_PlotHeatmapS32Ptr( - label_id: *const ::std::os::raw::c_char, - values: *const ImS32, - rows: ::std::os::raw::c_int, - cols: ::std::os::raw::c_int, - scale_min: f64, - scale_max: f64, - label_fmt: *const ::std::os::raw::c_char, - bounds_min: ImPlotPoint, - bounds_max: ImPlotPoint, - ); -} -extern "C" { - pub fn ImPlot_PlotHeatmapU32Ptr( - label_id: *const ::std::os::raw::c_char, - values: *const ImU32, - rows: ::std::os::raw::c_int, - cols: ::std::os::raw::c_int, - scale_min: f64, - scale_max: f64, - label_fmt: *const ::std::os::raw::c_char, - bounds_min: ImPlotPoint, - bounds_max: ImPlotPoint, - ); -} -extern "C" { - pub fn ImPlot_PlotHeatmapS64Ptr( - label_id: *const ::std::os::raw::c_char, - values: *const ImS64, - rows: ::std::os::raw::c_int, - cols: ::std::os::raw::c_int, - scale_min: f64, - scale_max: f64, - label_fmt: *const ::std::os::raw::c_char, - bounds_min: ImPlotPoint, - bounds_max: ImPlotPoint, - ); -} -extern "C" { - pub fn ImPlot_PlotHeatmapU64Ptr( - label_id: *const ::std::os::raw::c_char, - values: *const ImU64, - rows: ::std::os::raw::c_int, - cols: ::std::os::raw::c_int, - scale_min: f64, - scale_max: f64, - label_fmt: *const ::std::os::raw::c_char, - bounds_min: ImPlotPoint, - bounds_max: ImPlotPoint, - ); -} -extern "C" { - pub fn ImPlot_PlotDigitalFloatPtr( - label_id: *const ::std::os::raw::c_char, - xs: *const f32, - ys: *const f32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotDigitaldoublePtr( - label_id: *const ::std::os::raw::c_char, - xs: *const f64, - ys: *const f64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotDigitalS8Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS8, - ys: *const ImS8, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotDigitalU8Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU8, - ys: *const ImU8, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotDigitalS16Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS16, - ys: *const ImS16, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotDigitalU16Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU16, - ys: *const ImU16, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotDigitalS32Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS32, - ys: *const ImS32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotDigitalU32Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU32, - ys: *const ImU32, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotDigitalS64Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImS64, - ys: *const ImS64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); + pub fn ImPlot_EndItem(); } extern "C" { - pub fn ImPlot_PlotDigitalU64Ptr( - label_id: *const ::std::os::raw::c_char, - xs: *const ImU64, - ys: *const ImU64, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - stride: ::std::os::raw::c_int, - ); + pub fn ImPlot_RegisterOrGetItem( + label_id: *const ::std::os::raw::c_char, + flags: ImPlotItemFlags, + just_created: *mut bool, + ) -> *mut ImPlotItem; } extern "C" { - pub fn ImPlot_PlotImage( - label_id: *const ::std::os::raw::c_char, - user_texture_id: ImTextureID, - bounds_min: ImPlotPoint, - bounds_max: ImPlotPoint, - uv0: ImVec2, - uv1: ImVec2, - tint_col: ImVec4, - ); + pub fn ImPlot_GetItem(label_id: *const ::std::os::raw::c_char) -> *mut ImPlotItem; } extern "C" { - pub fn ImPlot_PlotText( - text: *const ::std::os::raw::c_char, - x: f64, - y: f64, - vertical: bool, - pix_offset: ImVec2, - ); + pub fn ImPlot_GetCurrentItem() -> *mut ImPlotItem; } extern "C" { - pub fn ImPlot_PlotDummy(label_id: *const ::std::os::raw::c_char); + pub fn ImPlot_BustItemCache(); } extern "C" { - pub fn ImPlot_SetNextPlotLimits(xmin: f64, xmax: f64, ymin: f64, ymax: f64, cond: ImGuiCond); + pub fn ImPlot_AnyAxesInputLocked(axes: *mut ImPlotAxis, count: ::std::os::raw::c_int) -> bool; } extern "C" { - pub fn ImPlot_SetNextPlotLimitsX(xmin: f64, xmax: f64, cond: ImGuiCond); + pub fn ImPlot_AllAxesInputLocked(axes: *mut ImPlotAxis, count: ::std::os::raw::c_int) -> bool; } extern "C" { - pub fn ImPlot_SetNextPlotLimitsY(ymin: f64, ymax: f64, cond: ImGuiCond, y_axis: ImPlotYAxis); + pub fn ImPlot_AnyAxesHeld(axes: *mut ImPlotAxis, count: ::std::os::raw::c_int) -> bool; } extern "C" { - pub fn ImPlot_LinkNextPlotLimits( - xmin: *mut f64, - xmax: *mut f64, - ymin: *mut f64, - ymax: *mut f64, - ymin2: *mut f64, - ymax2: *mut f64, - ymin3: *mut f64, - ymax3: *mut f64, - ); + pub fn ImPlot_AnyAxesHovered(axes: *mut ImPlotAxis, count: ::std::os::raw::c_int) -> bool; } extern "C" { - pub fn ImPlot_FitNextPlotAxes(x: bool, y: bool, y2: bool, y3: bool); + pub fn ImPlot_FitThisFrame() -> bool; } extern "C" { - pub fn ImPlot_SetNextPlotTicksXdoublePtr( - values: *const f64, - n_ticks: ::std::os::raw::c_int, - labels: *const *const ::std::os::raw::c_char, - show_default: bool, - ); + pub fn ImPlot_FitPointX(x: f64); } extern "C" { - pub fn ImPlot_SetNextPlotTicksXdouble( - x_min: f64, - x_max: f64, - n_ticks: ::std::os::raw::c_int, - labels: *const *const ::std::os::raw::c_char, - show_default: bool, - ); + pub fn ImPlot_FitPointY(y: f64); } extern "C" { - pub fn ImPlot_SetNextPlotTicksYdoublePtr( - values: *const f64, - n_ticks: ::std::os::raw::c_int, - labels: *const *const ::std::os::raw::c_char, - show_default: bool, - y_axis: ImPlotYAxis, - ); + pub fn ImPlot_FitPoint(p: ImPlotPoint); } extern "C" { - pub fn ImPlot_SetNextPlotTicksYdouble( - y_min: f64, - y_max: f64, - n_ticks: ::std::os::raw::c_int, - labels: *const *const ::std::os::raw::c_char, - show_default: bool, - y_axis: ImPlotYAxis, - ); + pub fn ImPlot_RangesOverlap(r1: ImPlotRange, r2: ImPlotRange) -> bool; } extern "C" { - pub fn ImPlot_SetPlotYAxis(y_axis: ImPlotYAxis); + pub fn ImPlot_ShowAxisContextMenu( + axis: *mut ImPlotAxis, + equal_axis: *mut ImPlotAxis, + time_allowed: bool, + ); } extern "C" { - pub fn ImPlot_HideNextItem(hidden: bool, cond: ImGuiCond); + pub fn ImPlot_GetLocationPos( + pOut: *mut ImVec2, + outer_rect: ImRect, + inner_size: ImVec2, + location: ImPlotLocation, + pad: ImVec2, + ); } extern "C" { - pub fn ImPlot_PixelsToPlotVec2(pOut: *mut ImPlotPoint, pix: ImVec2, y_axis: ImPlotYAxis); + pub fn ImPlot_CalcLegendSize( + pOut: *mut ImVec2, + items: *mut ImPlotItemGroup, + pad: ImVec2, + spacing: ImVec2, + vertical: bool, + ); } extern "C" { - pub fn ImPlot_PixelsToPlotFloat(pOut: *mut ImPlotPoint, x: f32, y: f32, y_axis: ImPlotYAxis); + pub fn ImPlot_ShowLegendEntries( + items: *mut ImPlotItemGroup, + legend_bb: ImRect, + interactable: bool, + pad: ImVec2, + spacing: ImVec2, + vertical: bool, + DrawList: *mut ImDrawList, + ) -> bool; } extern "C" { - pub fn ImPlot_PlotToPixelsPlotPoInt(pOut: *mut ImVec2, plt: ImPlotPoint, y_axis: ImPlotYAxis); + pub fn ImPlot_ShowAltLegend( + title_id: *const ::std::os::raw::c_char, + vertical: bool, + size: ImVec2, + interactable: bool, + ); } extern "C" { - pub fn ImPlot_PlotToPixelsdouble(pOut: *mut ImVec2, x: f64, y: f64, y_axis: ImPlotYAxis); + pub fn ImPlot_ShowLegendContextMenu(legend: *mut ImPlotLegend, visible: bool) -> bool; } extern "C" { - pub fn ImPlot_GetPlotPos(pOut: *mut ImVec2); + pub fn ImPlot_LabelAxisValue( + axis: ImPlotAxis, + value: f64, + buff: *mut ::std::os::raw::c_char, + size: ::std::os::raw::c_int, + round: bool, + ); } extern "C" { - pub fn ImPlot_GetPlotSize(pOut: *mut ImVec2); + pub fn ImPlot_GetItemData() -> *const ImPlotNextItemData; } extern "C" { - pub fn ImPlot_IsPlotHovered() -> bool; + pub fn ImPlot_IsColorAuto_Vec4(col: ImVec4) -> bool; } extern "C" { - pub fn ImPlot_IsPlotXAxisHovered() -> bool; + pub fn ImPlot_IsColorAuto_PlotCol(idx: ImPlotCol) -> bool; } extern "C" { - pub fn ImPlot_IsPlotYAxisHovered(y_axis: ImPlotYAxis) -> bool; + pub fn ImPlot_GetAutoColor(pOut: *mut ImVec4, idx: ImPlotCol); } extern "C" { - pub fn ImPlot_GetPlotMousePos(pOut: *mut ImPlotPoint, y_axis: ImPlotYAxis); + pub fn ImPlot_GetStyleColorVec4(pOut: *mut ImVec4, idx: ImPlotCol); } extern "C" { - pub fn ImPlot_GetPlotLimits(pOut: *mut ImPlotLimits, y_axis: ImPlotYAxis); + pub fn ImPlot_GetStyleColorU32(idx: ImPlotCol) -> ImU32; } extern "C" { - pub fn ImPlot_IsPlotQueried() -> bool; + pub fn ImPlot_AddTextVertical( + DrawList: *mut ImDrawList, + pos: ImVec2, + col: ImU32, + text_begin: *const ::std::os::raw::c_char, + text_end: *const ::std::os::raw::c_char, + ); } extern "C" { - pub fn ImPlot_GetPlotQuery(pOut: *mut ImPlotLimits, y_axis: ImPlotYAxis); + pub fn ImPlot_AddTextCentered( + DrawList: *mut ImDrawList, + top_center: ImVec2, + col: ImU32, + text_begin: *const ::std::os::raw::c_char, + text_end: *const ::std::os::raw::c_char, + ); } extern "C" { - pub fn ImPlot_AnnotateStr( - x: f64, - y: f64, - pix_offset: ImVec2, - fmt: *const ::std::os::raw::c_char, - ... - ); + pub fn ImPlot_CalcTextSizeVertical(pOut: *mut ImVec2, text: *const ::std::os::raw::c_char); } extern "C" { - pub fn ImPlot_AnnotateVec4( - x: f64, - y: f64, - pix_offset: ImVec2, - color: ImVec4, - fmt: *const ::std::os::raw::c_char, - ... - ); + pub fn ImPlot_CalcTextColor_Vec4(bg: ImVec4) -> ImU32; } extern "C" { - pub fn ImPlot_AnnotateClampedStr( - x: f64, - y: f64, - pix_offset: ImVec2, - fmt: *const ::std::os::raw::c_char, - ... - ); + pub fn ImPlot_CalcTextColor_U32(bg: ImU32) -> ImU32; } extern "C" { - pub fn ImPlot_AnnotateClampedVec4( - x: f64, - y: f64, - pix_offset: ImVec2, - color: ImVec4, - fmt: *const ::std::os::raw::c_char, - ... - ); + pub fn ImPlot_CalcHoverColor(col: ImU32) -> ImU32; } extern "C" { - pub fn ImPlot_DragLineX( - id: *const ::std::os::raw::c_char, - x_value: *mut f64, - show_label: bool, - col: ImVec4, - thickness: f32, - ) -> bool; + pub fn ImPlot_ClampLabelPos( + pOut: *mut ImVec2, + pos: ImVec2, + size: ImVec2, + Min: ImVec2, + Max: ImVec2, + ); } extern "C" { - pub fn ImPlot_DragLineY( - id: *const ::std::os::raw::c_char, - y_value: *mut f64, - show_label: bool, - col: ImVec4, - thickness: f32, - ) -> bool; + pub fn ImPlot_GetColormapColorU32(idx: ::std::os::raw::c_int, cmap: ImPlotColormap) -> ImU32; } extern "C" { - pub fn ImPlot_DragPoint( - id: *const ::std::os::raw::c_char, - x: *mut f64, - y: *mut f64, - show_label: bool, - col: ImVec4, - radius: f32, - ) -> bool; + pub fn ImPlot_NextColormapColorU32() -> ImU32; } extern "C" { - pub fn ImPlot_SetLegendLocation( - location: ImPlotLocation, - orientation: ImPlotOrientation, - outside: bool, - ); + pub fn ImPlot_SampleColormapU32(t: f32, cmap: ImPlotColormap) -> ImU32; } extern "C" { - pub fn ImPlot_SetMousePosLocation(location: ImPlotLocation); + pub fn ImPlot_RenderColorBar( + colors: *const ImU32, + size: ::std::os::raw::c_int, + DrawList: *mut ImDrawList, + bounds: ImRect, + vert: bool, + reversed: bool, + continuous: bool, + ); } extern "C" { - pub fn ImPlot_IsLegendEntryHovered(label_id: *const ::std::os::raw::c_char) -> bool; + pub fn ImPlot_NiceNum(x: f64, round: bool) -> f64; } extern "C" { - pub fn ImPlot_BeginLegendDragDropSource( - label_id: *const ::std::os::raw::c_char, - flags: ImGuiDragDropFlags, - ) -> bool; + pub fn ImPlot_OrderOfMagnitude(val: f64) -> ::std::os::raw::c_int; } extern "C" { - pub fn ImPlot_EndLegendDragDropSource(); + pub fn ImPlot_OrderToPrecision(order: ::std::os::raw::c_int) -> ::std::os::raw::c_int; } extern "C" { - pub fn ImPlot_BeginLegendPopup( - label_id: *const ::std::os::raw::c_char, - mouse_button: ImGuiMouseButton, - ) -> bool; + pub fn ImPlot_Precision(val: f64) -> ::std::os::raw::c_int; } extern "C" { - pub fn ImPlot_EndLegendPopup(); + pub fn ImPlot_RoundTo(val: f64, prec: ::std::os::raw::c_int) -> f64; } extern "C" { - pub fn ImPlot_GetStyle() -> *mut ImPlotStyle; + pub fn ImPlot_Intersection(pOut: *mut ImVec2, a1: ImVec2, a2: ImVec2, b1: ImVec2, b2: ImVec2); } extern "C" { - pub fn ImPlot_StyleColorsAuto(dst: *mut ImPlotStyle); + pub fn ImPlot_FillRange_Vector_Float_Ptr( + buffer: *mut ImVector_float, + n: ::std::os::raw::c_int, + vmin: f32, + vmax: f32, + ); } extern "C" { - pub fn ImPlot_StyleColorsClassic(dst: *mut ImPlotStyle); + pub fn ImPlot_FillRange_Vector_double_Ptr( + buffer: *mut ImVector_double, + n: ::std::os::raw::c_int, + vmin: f64, + vmax: f64, + ); } extern "C" { - pub fn ImPlot_StyleColorsDark(dst: *mut ImPlotStyle); + pub fn ImPlot_FillRange_Vector_S8_Ptr( + buffer: *mut ImVector_ImS8, + n: ::std::os::raw::c_int, + vmin: ImS8, + vmax: ImS8, + ); } extern "C" { - pub fn ImPlot_StyleColorsLight(dst: *mut ImPlotStyle); + pub fn ImPlot_FillRange_Vector_U8_Ptr( + buffer: *mut ImVector_ImU8, + n: ::std::os::raw::c_int, + vmin: ImU8, + vmax: ImU8, + ); } extern "C" { - pub fn ImPlot_PushStyleColorU32(idx: ImPlotCol, col: ImU32); + pub fn ImPlot_FillRange_Vector_S16_Ptr( + buffer: *mut ImVector_ImS16, + n: ::std::os::raw::c_int, + vmin: ImS16, + vmax: ImS16, + ); } extern "C" { - pub fn ImPlot_PushStyleColorVec4(idx: ImPlotCol, col: ImVec4); + pub fn ImPlot_FillRange_Vector_U16_Ptr( + buffer: *mut ImVector_ImU16, + n: ::std::os::raw::c_int, + vmin: ImU16, + vmax: ImU16, + ); } extern "C" { - pub fn ImPlot_PopStyleColor(count: ::std::os::raw::c_int); + pub fn ImPlot_FillRange_Vector_S32_Ptr( + buffer: *mut ImVector_ImS32, + n: ::std::os::raw::c_int, + vmin: ImS32, + vmax: ImS32, + ); } extern "C" { - pub fn ImPlot_PushStyleVarFloat(idx: ImPlotStyleVar, val: f32); + pub fn ImPlot_FillRange_Vector_U32_Ptr( + buffer: *mut ImVector_ImU32, + n: ::std::os::raw::c_int, + vmin: ImU32, + vmax: ImU32, + ); } extern "C" { - pub fn ImPlot_PushStyleVarInt(idx: ImPlotStyleVar, val: ::std::os::raw::c_int); + pub fn ImPlot_FillRange_Vector_S64_Ptr( + buffer: *mut ImVector_ImS64, + n: ::std::os::raw::c_int, + vmin: ImS64, + vmax: ImS64, + ); } extern "C" { - pub fn ImPlot_PushStyleVarVec2(idx: ImPlotStyleVar, val: ImVec2); + pub fn ImPlot_FillRange_Vector_U64_Ptr( + buffer: *mut ImVector_ImU64, + n: ::std::os::raw::c_int, + vmin: ImU64, + vmax: ImU64, + ); } extern "C" { - pub fn ImPlot_PopStyleVar(count: ::std::os::raw::c_int); + pub fn ImPlot_CalculateBins_FloatPtr( + values: *const f32, + count: ::std::os::raw::c_int, + meth: ImPlotBin, + range: ImPlotRange, + bins_out: *mut ::std::os::raw::c_int, + width_out: *mut f64, + ); } extern "C" { - pub fn ImPlot_SetNextLineStyle(col: ImVec4, weight: f32); + pub fn ImPlot_CalculateBins_doublePtr( + values: *const f64, + count: ::std::os::raw::c_int, + meth: ImPlotBin, + range: ImPlotRange, + bins_out: *mut ::std::os::raw::c_int, + width_out: *mut f64, + ); +} +extern "C" { + pub fn ImPlot_CalculateBins_S8Ptr( + values: *const ImS8, + count: ::std::os::raw::c_int, + meth: ImPlotBin, + range: ImPlotRange, + bins_out: *mut ::std::os::raw::c_int, + width_out: *mut f64, + ); +} +extern "C" { + pub fn ImPlot_CalculateBins_U8Ptr( + values: *const ImU8, + count: ::std::os::raw::c_int, + meth: ImPlotBin, + range: ImPlotRange, + bins_out: *mut ::std::os::raw::c_int, + width_out: *mut f64, + ); } extern "C" { - pub fn ImPlot_SetNextFillStyle(col: ImVec4, alpha_mod: f32); + pub fn ImPlot_CalculateBins_S16Ptr( + values: *const ImS16, + count: ::std::os::raw::c_int, + meth: ImPlotBin, + range: ImPlotRange, + bins_out: *mut ::std::os::raw::c_int, + width_out: *mut f64, + ); } extern "C" { - pub fn ImPlot_SetNextMarkerStyle( - marker: ImPlotMarker, - size: f32, - fill: ImVec4, - weight: f32, - outline: ImVec4, - ); + pub fn ImPlot_CalculateBins_U16Ptr( + values: *const ImU16, + count: ::std::os::raw::c_int, + meth: ImPlotBin, + range: ImPlotRange, + bins_out: *mut ::std::os::raw::c_int, + width_out: *mut f64, + ); } extern "C" { - pub fn ImPlot_SetNextErrorBarStyle(col: ImVec4, size: f32, weight: f32); + pub fn ImPlot_CalculateBins_S32Ptr( + values: *const ImS32, + count: ::std::os::raw::c_int, + meth: ImPlotBin, + range: ImPlotRange, + bins_out: *mut ::std::os::raw::c_int, + width_out: *mut f64, + ); } extern "C" { - pub fn ImPlot_GetLastItemColor(pOut: *mut ImVec4); + pub fn ImPlot_CalculateBins_U32Ptr( + values: *const ImU32, + count: ::std::os::raw::c_int, + meth: ImPlotBin, + range: ImPlotRange, + bins_out: *mut ::std::os::raw::c_int, + width_out: *mut f64, + ); } extern "C" { - pub fn ImPlot_GetStyleColorName(idx: ImPlotCol) -> *const ::std::os::raw::c_char; + pub fn ImPlot_CalculateBins_S64Ptr( + values: *const ImS64, + count: ::std::os::raw::c_int, + meth: ImPlotBin, + range: ImPlotRange, + bins_out: *mut ::std::os::raw::c_int, + width_out: *mut f64, + ); } extern "C" { - pub fn ImPlot_GetMarkerName(idx: ImPlotMarker) -> *const ::std::os::raw::c_char; + pub fn ImPlot_CalculateBins_U64Ptr( + values: *const ImU64, + count: ::std::os::raw::c_int, + meth: ImPlotBin, + range: ImPlotRange, + bins_out: *mut ::std::os::raw::c_int, + width_out: *mut f64, + ); } extern "C" { - pub fn ImPlot_PushColormapPlotColormap(colormap: ImPlotColormap); + pub fn ImPlot_IsLeapYear(year: ::std::os::raw::c_int) -> bool; } extern "C" { - pub fn ImPlot_PushColormapVec4Ptr(colormap: *const ImVec4, size: ::std::os::raw::c_int); + pub fn ImPlot_GetDaysInMonth( + year: ::std::os::raw::c_int, + month: ::std::os::raw::c_int, + ) -> ::std::os::raw::c_int; } extern "C" { - pub fn ImPlot_PopColormap(count: ::std::os::raw::c_int); + pub fn ImPlot_MakeTime( + pOut: *mut ImPlotTime, + year: ::std::os::raw::c_int, + month: ::std::os::raw::c_int, + day: ::std::os::raw::c_int, + hour: ::std::os::raw::c_int, + min: ::std::os::raw::c_int, + sec: ::std::os::raw::c_int, + us: ::std::os::raw::c_int, + ); } extern "C" { - pub fn ImPlot_SetColormapVec4Ptr(colormap: *const ImVec4, size: ::std::os::raw::c_int); + pub fn ImPlot_GetYear(t: ImPlotTime) -> ::std::os::raw::c_int; } extern "C" { - pub fn ImPlot_SetColormapPlotColormap(colormap: ImPlotColormap, samples: ::std::os::raw::c_int); + pub fn ImPlot_AddTime( + pOut: *mut ImPlotTime, + t: ImPlotTime, + unit: ImPlotTimeUnit, + count: ::std::os::raw::c_int, + ); } extern "C" { - pub fn ImPlot_GetColormapSize() -> ::std::os::raw::c_int; + pub fn ImPlot_FloorTime(pOut: *mut ImPlotTime, t: ImPlotTime, unit: ImPlotTimeUnit); } extern "C" { - pub fn ImPlot_GetColormapColor(pOut: *mut ImVec4, index: ::std::os::raw::c_int); + pub fn ImPlot_CeilTime(pOut: *mut ImPlotTime, t: ImPlotTime, unit: ImPlotTimeUnit); } extern "C" { - pub fn ImPlot_LerpColormap(pOut: *mut ImVec4, t: f32); + pub fn ImPlot_RoundTime(pOut: *mut ImPlotTime, t: ImPlotTime, unit: ImPlotTimeUnit); } extern "C" { - pub fn ImPlot_NextColormapColor(pOut: *mut ImVec4); + pub fn ImPlot_CombineDateTime( + pOut: *mut ImPlotTime, + date_part: ImPlotTime, + time_part: ImPlotTime, + ); } extern "C" { - pub fn ImPlot_ShowColormapScale(scale_min: f64, scale_max: f64, height: f32); + pub fn ImPlot_FormatTime( + t: ImPlotTime, + buffer: *mut ::std::os::raw::c_char, + size: ::std::os::raw::c_int, + fmt: ImPlotTimeFmt, + use_24_hr_clk: bool, + ) -> ::std::os::raw::c_int; } extern "C" { - pub fn ImPlot_GetColormapName(colormap: ImPlotColormap) -> *const ::std::os::raw::c_char; + pub fn ImPlot_FormatDate( + t: ImPlotTime, + buffer: *mut ::std::os::raw::c_char, + size: ::std::os::raw::c_int, + fmt: ImPlotDateFmt, + use_iso_8601: bool, + ) -> ::std::os::raw::c_int; } extern "C" { - pub fn ImPlot_GetInputMap() -> *mut ImPlotInputMap; + pub fn ImPlot_FormatDateTime( + t: ImPlotTime, + buffer: *mut ::std::os::raw::c_char, + size: ::std::os::raw::c_int, + fmt: ImPlotDateTimeSpec, + ) -> ::std::os::raw::c_int; } extern "C" { - pub fn ImPlot_GetPlotDrawList() -> *mut ImDrawList; + pub fn ImPlot_ShowDatePicker( + id: *const ::std::os::raw::c_char, + level: *mut ::std::os::raw::c_int, + t: *mut ImPlotTime, + t1: *const ImPlotTime, + t2: *const ImPlotTime, + ) -> bool; } extern "C" { - pub fn ImPlot_PushPlotClipRect(); + pub fn ImPlot_ShowTimePicker(id: *const ::std::os::raw::c_char, t: *mut ImPlotTime) -> bool; } extern "C" { - pub fn ImPlot_PopPlotClipRect(); + pub fn ImPlot_TransformForward_Log10(v: f64, noname1: *mut ::std::os::raw::c_void) -> f64; } extern "C" { - pub fn ImPlot_ShowStyleSelector(label: *const ::std::os::raw::c_char) -> bool; + pub fn ImPlot_TransformInverse_Log10(v: f64, noname1: *mut ::std::os::raw::c_void) -> f64; } extern "C" { - pub fn ImPlot_ShowColormapSelector(label: *const ::std::os::raw::c_char) -> bool; + pub fn ImPlot_TransformForward_SymLog(v: f64, noname1: *mut ::std::os::raw::c_void) -> f64; } extern "C" { - pub fn ImPlot_ShowStyleEditor(ref_: *mut ImPlotStyle); + pub fn ImPlot_TransformInverse_SymLog(v: f64, noname1: *mut ::std::os::raw::c_void) -> f64; } extern "C" { - pub fn ImPlot_ShowUserGuide(); + pub fn ImPlot_TransformForward_Logit(v: f64, noname1: *mut ::std::os::raw::c_void) -> f64; } extern "C" { - pub fn ImPlot_ShowMetricsWindow(p_popen: *mut bool); + pub fn ImPlot_TransformInverse_Logit(v: f64, noname1: *mut ::std::os::raw::c_void) -> f64; } extern "C" { - pub fn ImPlot_SetImGuiContext(ctx: *mut ImGuiContext); + pub fn ImPlot_Formatter_Default( + value: f64, + buff: *mut ::std::os::raw::c_char, + size: ::std::os::raw::c_int, + data: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; } extern "C" { - pub fn ImPlot_ShowDemoWindow(p_open: *mut bool); + pub fn ImPlot_Formatter_Logit( + value: f64, + buff: *mut ::std::os::raw::c_char, + size: ::std::os::raw::c_int, + noname1: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; } extern "C" { - pub fn ImPlot_PlotLineG( - label_id: *const ::std::os::raw::c_char, - getter: ::std::option::Option< - unsafe extern "C" fn( - data: *mut ::std::os::raw::c_void, - idx: ::std::os::raw::c_int, - ) -> *mut ImPlotPoint, - >, - data: *mut ::std::os::raw::c_void, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - ); + pub fn ImPlot_Formatter_Time( + noname1: f64, + buff: *mut ::std::os::raw::c_char, + size: ::std::os::raw::c_int, + data: *mut ::std::os::raw::c_void, + ) -> ::std::os::raw::c_int; } extern "C" { - pub fn ImPlot_PlotScatterG( - label_id: *const ::std::os::raw::c_char, - getter: ::std::option::Option< - unsafe extern "C" fn( - data: *mut ::std::os::raw::c_void, - idx: ::std::os::raw::c_int, - ) -> *mut ImPlotPoint, - >, - data: *mut ::std::os::raw::c_void, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - ); + pub fn ImPlot_Locator_Default( + ticker: *mut ImPlotTicker, + range: ImPlotRange, + pixels: f32, + vertical: bool, + formatter: ImPlotFormatter, + formatter_data: *mut ::std::os::raw::c_void, + ); } extern "C" { - pub fn ImPlot_PlotShadedG( - label_id: *const ::std::os::raw::c_char, - getter1: ::std::option::Option< - unsafe extern "C" fn( - data: *mut ::std::os::raw::c_void, - idx: ::std::os::raw::c_int, - ) -> *mut ImPlotPoint, - >, - data1: *mut ::std::os::raw::c_void, - getter2: ::std::option::Option< - unsafe extern "C" fn( - data: *mut ::std::os::raw::c_void, - idx: ::std::os::raw::c_int, - ) -> *mut ImPlotPoint, - >, - data2: *mut ::std::os::raw::c_void, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - ); + pub fn ImPlot_Locator_Time( + ticker: *mut ImPlotTicker, + range: ImPlotRange, + pixels: f32, + vertical: bool, + formatter: ImPlotFormatter, + formatter_data: *mut ::std::os::raw::c_void, + ); } extern "C" { - pub fn ImPlot_PlotBarsG( - label_id: *const ::std::os::raw::c_char, - getter: ::std::option::Option< - unsafe extern "C" fn( - data: *mut ::std::os::raw::c_void, - idx: ::std::os::raw::c_int, - ) -> *mut ImPlotPoint, - >, - data: *mut ::std::os::raw::c_void, - count: ::std::os::raw::c_int, - width: f64, - offset: ::std::os::raw::c_int, - ); + pub fn ImPlot_Locator_Log10( + ticker: *mut ImPlotTicker, + range: ImPlotRange, + pixels: f32, + vertical: bool, + formatter: ImPlotFormatter, + formatter_data: *mut ::std::os::raw::c_void, + ); } extern "C" { - pub fn ImPlot_PlotBarsHG( - label_id: *const ::std::os::raw::c_char, - getter: ::std::option::Option< - unsafe extern "C" fn( - data: *mut ::std::os::raw::c_void, - idx: ::std::os::raw::c_int, - ) -> *mut ImPlotPoint, - >, - data: *mut ::std::os::raw::c_void, - count: ::std::os::raw::c_int, - height: f64, - offset: ::std::os::raw::c_int, - ); -} -extern "C" { - pub fn ImPlot_PlotDigitalG( - label_id: *const ::std::os::raw::c_char, - getter: ::std::option::Option< - unsafe extern "C" fn( - data: *mut ::std::os::raw::c_void, - idx: ::std::os::raw::c_int, - ) -> *mut ImPlotPoint, - >, - data: *mut ::std::os::raw::c_void, - count: ::std::os::raw::c_int, - offset: ::std::os::raw::c_int, - ); + pub fn ImPlot_Locator_SymLog( + ticker: *mut ImPlotTicker, + range: ImPlotRange, + pixels: f32, + vertical: bool, + formatter: ImPlotFormatter, + formatter_data: *mut ::std::os::raw::c_void, + ); } diff --git a/implot-sys/third-party/cimplot b/implot-sys/third-party/cimplot index 374317a..82d498a 160000 --- a/implot-sys/third-party/cimplot +++ b/implot-sys/third-party/cimplot @@ -1 +1 @@ -Subproject commit 374317a84121a01868aa5274dbcf1c5a5df96e8c +Subproject commit 82d498a5bf0d945b1db21c80ba3ce69350930022 diff --git a/src/lib.rs b/src/lib.rs index d6722b5..89c96cc 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -16,16 +16,18 @@ //! the C++ name - some doc aliases are defined to increase the chances of that working. If this //! does not yield any results, you can also try cloning the source and doing a full-text search to //! see if the feature is used somewhere internally the code. -use implot_sys as sys; +pub use implot_sys as sys; // TODO(4bb4) facade-wrap these? pub use self::{context::*, plot::*, plot_elements::*}; use std::os::raw::c_char; -pub use sys::{ImPlotLimits, ImPlotPoint, ImPlotRange, ImVec2, ImVec4}; +pub use sys::{ImAxis, ImPlotPoint, ImPlotRange, ImPlotRect, ImVec2, ImVec4}; mod context; +pub mod lines; mod plot; mod plot_elements; +pub mod rect; // The bindings for some reason don't contain this - it has to match the IMPLOT_AUTO from // the original C++ header for things to work properly. @@ -41,29 +43,12 @@ const NUMBER_OF_Y_AXES: usize = 3; // Implementation note: This enum is converted straight to an usize index in a few places // so we can store data about individual axes in arrays, so this pretty much should stay // just a mapping of words to numbers. -#[rustversion::attr(since(1.48), doc(alias = "ImPlotYAxis"))] -#[derive(Clone)] -#[repr(u32)] -pub enum YAxisChoice { - First = sys::ImPlotYAxis__ImPlotYAxis_1, - Second = sys::ImPlotYAxis__ImPlotYAxis_2, - Third = sys::ImPlotYAxis__ImPlotYAxis_3, -} - -/// Turn an Option into an i32. Picks IMPLOT_AUTO for None. -#[rustversion::attr(since(1.48), doc(alias = "IMPLOT_AUTO"))] -fn y_axis_choice_option_to_i32(y_axis_choice: Option) -> i32 { - match y_axis_choice { - Some(choice) => choice as i32, - None => IMPLOT_AUTO, - } -} /// A temporary reference for building plots. This does not really do anything on its own at /// this point, but it is used to enforce that a context is created and active for other features, /// such as creating plots. pub struct PlotUi<'ui> { - context: &'ui Context, + context: &'ui Context, } // --- Markers, color maps, style variables, legend location ---------------------------------- @@ -72,28 +57,28 @@ pub struct PlotUi<'ui> { #[repr(i32)] #[derive(Copy, Clone, Debug)] pub enum Marker { - /// no marker - None = sys::ImPlotMarker__ImPlotMarker_None, - /// a circle marker will be rendered at each point - Circle = sys::ImPlotMarker__ImPlotMarker_Circle, - /// a square maker will be rendered at each point - Square = sys::ImPlotMarker__ImPlotMarker_Square, - /// a diamond marker will be rendered at each point - Diamond = sys::ImPlotMarker__ImPlotMarker_Diamond, - /// an upward-pointing triangle marker will up rendered at each point - Up = sys::ImPlotMarker__ImPlotMarker_Up, - /// an downward-pointing triangle marker will up rendered at each point - Down = sys::ImPlotMarker__ImPlotMarker_Down, - /// an leftward-pointing triangle marker will up rendered at each point - Left = sys::ImPlotMarker__ImPlotMarker_Left, - /// an rightward-pointing triangle marker will up rendered at each point - Right = sys::ImPlotMarker__ImPlotMarker_Right, - /// a cross marker will be rendered at each point (not filled) - Cross = sys::ImPlotMarker__ImPlotMarker_Cross, - /// a plus marker will be rendered at each point (not filled) - Plus = sys::ImPlotMarker__ImPlotMarker_Plus, - /// a asterisk marker will be rendered at each point (not filled) - Asterisk = sys::ImPlotMarker__ImPlotMarker_Asterisk, + /// no marker + None = sys::ImPlotMarker__ImPlotMarker_None, + /// a circle marker will be rendered at each point + Circle = sys::ImPlotMarker__ImPlotMarker_Circle, + /// a square maker will be rendered at each point + Square = sys::ImPlotMarker__ImPlotMarker_Square, + /// a diamond marker will be rendered at each point + Diamond = sys::ImPlotMarker__ImPlotMarker_Diamond, + /// an upward-pointing triangle marker will up rendered at each point + Up = sys::ImPlotMarker__ImPlotMarker_Up, + /// an downward-pointing triangle marker will up rendered at each point + Down = sys::ImPlotMarker__ImPlotMarker_Down, + /// an leftward-pointing triangle marker will up rendered at each point + Left = sys::ImPlotMarker__ImPlotMarker_Left, + /// an rightward-pointing triangle marker will up rendered at each point + Right = sys::ImPlotMarker__ImPlotMarker_Right, + /// a cross marker will be rendered at each point (not filled) + Cross = sys::ImPlotMarker__ImPlotMarker_Cross, + /// a plus marker will be rendered at each point (not filled) + Plus = sys::ImPlotMarker__ImPlotMarker_Plus, + /// a asterisk marker will be rendered at each point (not filled) + Asterisk = sys::ImPlotMarker__ImPlotMarker_Asterisk, } /// Colorable plot elements. These are called "ImPlotCol" in ImPlot itself, but I found that @@ -103,54 +88,39 @@ pub enum Marker { #[repr(u32)] #[derive(Copy, Clone, Debug)] pub enum PlotColorElement { - /// Plot line/outline color (defaults to next unused color in current colormap) - Line = sys::ImPlotCol__ImPlotCol_Line, - /// Plot fill color for bars (defaults to the current line color) - Fill = sys::ImPlotCol__ImPlotCol_Fill, - /// Marker outline color (defaults to the current line color) - MarkerOutline = sys::ImPlotCol__ImPlotCol_MarkerOutline, - /// Marker fill color (defaults to the current line color) - MarkerFill = sys::ImPlotCol__ImPlotCol_MarkerFill, - /// Error bar color (defaults to text color) - ErrorBar = sys::ImPlotCol__ImPlotCol_ErrorBar, - /// Plot frame background color (defaults to FRAME_BG) - FrameBg = sys::ImPlotCol__ImPlotCol_FrameBg, - /// Plot area background color (defaults to WINDOW_BG) - PlotBg = sys::ImPlotCol__ImPlotCol_PlotBg, - /// Plot area border color (defaults to text color) - PlotBorder = sys::ImPlotCol__ImPlotCol_PlotBorder, - /// Legend background color (defaults to ImGuiCol_PopupBg) - LegendBackground = sys::ImPlotCol__ImPlotCol_LegendBg, - /// Legend border color (defaults to ImPlotCol_PlotBorder) - LegendBorder = sys::ImPlotCol__ImPlotCol_LegendBorder, - /// Legend text color (defaults to ImPlotCol_InlayText) - LegendText = sys::ImPlotCol__ImPlotCol_LegendText, - /// Plot title text color (defaults to ImGuiCol_Text) - TitleText = sys::ImPlotCol__ImPlotCol_TitleText, - /// Color of text appearing inside of plots (defaults to ImGuiCol_Text) - InlayText = sys::ImPlotCol__ImPlotCol_InlayText, - /// X-axis label and tick lables color (defaults to ImGuiCol_Text) - XAxis = sys::ImPlotCol__ImPlotCol_XAxis, - /// X-axis grid color (defaults to 25% ImPlotCol_XAxis) - XAxisGrid = sys::ImPlotCol__ImPlotCol_XAxisGrid, - /// Y-axis label and tick labels color (defaults to ImGuiCol_Text) - YAxis = sys::ImPlotCol__ImPlotCol_YAxis, - /// Y-axis grid color (defaults to 25% ImPlotCol_YAxis) - YAxisGrid = sys::ImPlotCol__ImPlotCol_YAxisGrid, - /// 2nd y-axis label and tick labels color (defaults to ImGuiCol_Text) - YAxis2 = sys::ImPlotCol__ImPlotCol_YAxis2, - /// 2nd y-axis grid/label color (defaults to 25% ImPlotCol_YAxis2) - YAxisGrid2 = sys::ImPlotCol__ImPlotCol_YAxisGrid2, - /// 3rd y-axis label and tick labels color (defaults to ImGuiCol_Text) - YAxis3 = sys::ImPlotCol__ImPlotCol_YAxis3, - /// 3rd y-axis grid/label color (defaults to 25% ImPlotCol_YAxis3) - YAxisGrid3 = sys::ImPlotCol__ImPlotCol_YAxisGrid3, - /// Box-selection color (defaults to yellow) - Selection = sys::ImPlotCol__ImPlotCol_Selection, - /// crosshairs color (defaults to ImPlotCol_PlotBorder) - Crosshairs = sys::ImPlotCol__ImPlotCol_Crosshairs, - /// Box-query color (defaults to green) - Query = sys::ImPlotCol__ImPlotCol_Query, + /// Plot line/outline color (defaults to next unused color in current colormap) + Line = sys::ImPlotCol__ImPlotCol_Line, + /// Plot fill color for bars (defaults to the current line color) + Fill = sys::ImPlotCol__ImPlotCol_Fill, + /// Marker outline color (defaults to the current line color) + MarkerOutline = sys::ImPlotCol__ImPlotCol_MarkerOutline, + /// Marker fill color (defaults to the current line color) + MarkerFill = sys::ImPlotCol__ImPlotCol_MarkerFill, + /// Error bar color (defaults to text color) + ErrorBar = sys::ImPlotCol__ImPlotCol_ErrorBar, + /// Plot frame background color (defaults to FRAME_BG) + FrameBg = sys::ImPlotCol__ImPlotCol_FrameBg, + /// Plot area background color (defaults to WINDOW_BG) + PlotBg = sys::ImPlotCol__ImPlotCol_PlotBg, + /// Plot area border color (defaults to text color) + PlotBorder = sys::ImPlotCol__ImPlotCol_PlotBorder, + /// Legend background color (defaults to ImGuiCol_PopupBg) + LegendBackground = sys::ImPlotCol__ImPlotCol_LegendBg, + /// Legend border color (defaults to ImPlotCol_PlotBorder) + LegendBorder = sys::ImPlotCol__ImPlotCol_LegendBorder, + /// Legend text color (defaults to ImPlotCol_InlayText) + LegendText = sys::ImPlotCol__ImPlotCol_LegendText, + /// Plot title text color (defaults to ImGuiCol_Text) + TitleText = sys::ImPlotCol__ImPlotCol_TitleText, + /// Color of text appearing inside of plots (defaults to ImGuiCol_Text) + InlayText = sys::ImPlotCol__ImPlotCol_InlayText, + /// X-axis label and tick lables color (defaults to ImGuiCol_Text) + AxisBg = sys::ImPlotCol__ImPlotCol_AxisBg, + /// X-axis grid color (defaults to 25% ImPlotCol_XAxis) + AxisBgHovered = sys::ImPlotCol__ImPlotCol_AxisBgHovered, + AxisBgActive = sys::ImPlotCol__ImPlotCol_AxisBgActive, + Selection = sys::ImPlotCol__ImPlotCol_Selection, + Crosshairs = sys::ImPlotCol__ImPlotCol_Crosshairs, } /// Colormap choice. Documentation copied from implot.h for convenience. @@ -158,28 +128,26 @@ pub enum PlotColorElement { #[repr(u32)] #[derive(Copy, Clone, Debug)] pub enum Colormap { - /// ImPlot default colormap (n=10). Called "Standard" here because Default is reserved. - Standard = sys::ImPlotColormap__ImPlotColormap_Default, - /// a.k.a. seaborn deep (n=10) - Deep = sys::ImPlotColormap__ImPlotColormap_Deep, - /// a.k.a. matplotlib "Set1" (n=9) - Dark = sys::ImPlotColormap__ImPlotColormap_Dark, - /// a.k.a. matplotlib "Pastel1" (n=9) - Pastel = sys::ImPlotColormap__ImPlotColormap_Pastel, - /// a.k.a. matplotlib "Paired" (n=12) - Paired = sys::ImPlotColormap__ImPlotColormap_Paired, - /// a.k.a. matplotlib "viridis" (n=11) - Viridis = sys::ImPlotColormap__ImPlotColormap_Viridis, - /// a.k.a. matplotlib "plasma" (n=11) - Plasma = sys::ImPlotColormap__ImPlotColormap_Plasma, - /// a.k.a. matplotlib/MATLAB "hot" (n=11) - Hot = sys::ImPlotColormap__ImPlotColormap_Hot, - /// a.k.a. matplotlib/MATLAB "cool" (n=11) - Cool = sys::ImPlotColormap__ImPlotColormap_Cool, - /// a.k.a. matplotlib/MATLAB "pink" (n=11) - Pink = sys::ImPlotColormap__ImPlotColormap_Pink, - /// a.k.a. MATLAB "jet" (n=11) - Jet = sys::ImPlotColormap__ImPlotColormap_Jet, + /// a.k.a. seaborn deep (n=10) + Deep = sys::ImPlotColormap__ImPlotColormap_Deep, + /// a.k.a. matplotlib "Set1" (n=9) + Dark = sys::ImPlotColormap__ImPlotColormap_Dark, + /// a.k.a. matplotlib "Pastel1" (n=9) + Pastel = sys::ImPlotColormap__ImPlotColormap_Pastel, + /// a.k.a. matplotlib "Paired" (n=12) + Paired = sys::ImPlotColormap__ImPlotColormap_Paired, + /// a.k.a. matplotlib "viridis" (n=11) + Viridis = sys::ImPlotColormap__ImPlotColormap_Viridis, + /// a.k.a. matplotlib "plasma" (n=11) + Plasma = sys::ImPlotColormap__ImPlotColormap_Plasma, + /// a.k.a. matplotlib/MATLAB "hot" (n=11) + Hot = sys::ImPlotColormap__ImPlotColormap_Hot, + /// a.k.a. matplotlib/MATLAB "cool" (n=11) + Cool = sys::ImPlotColormap__ImPlotColormap_Cool, + /// a.k.a. matplotlib/MATLAB "pink" (n=11) + Pink = sys::ImPlotColormap__ImPlotColormap_Pink, + /// a.k.a. MATLAB "jet" (n=11) + Jet = sys::ImPlotColormap__ImPlotColormap_Jet, } /// Style variable choice, as in "which thing will be affected by a style setting". @@ -187,61 +155,61 @@ pub enum Colormap { #[repr(u32)] #[derive(Copy, Clone, Debug)] pub enum StyleVar { - /// f32, line weight in pixels - LineWeight = sys::ImPlotStyleVar__ImPlotStyleVar_LineWeight, - /// u32, marker specification - Marker = sys::ImPlotStyleVar__ImPlotStyleVar_Marker, - /// f32, marker size in pixels (roughly the marker's "radius") - MarkerSize = sys::ImPlotStyleVar__ImPlotStyleVar_MarkerSize, - /// f32, outline weight of markers in pixels - MarkerWeight = sys::ImPlotStyleVar__ImPlotStyleVar_MarkerWeight, - /// f32, alpha modifier applied to all plot item fills - FillAlpha = sys::ImPlotStyleVar__ImPlotStyleVar_FillAlpha, - /// f32, error bar whisker width in pixels - ErrorBarSize = sys::ImPlotStyleVar__ImPlotStyleVar_ErrorBarSize, - /// f32, error bar whisker weight in pixels - ErrorBarWeight = sys::ImPlotStyleVar__ImPlotStyleVar_ErrorBarWeight, - /// f32, digital channels bit height (at 1) in pixels - DigitalBitHeight = sys::ImPlotStyleVar__ImPlotStyleVar_DigitalBitHeight, - /// f32, digital channels bit padding gap in pixels - DigitalBitGap = sys::ImPlotStyleVar__ImPlotStyleVar_DigitalBitGap, - /// f32, thickness of border around plot area - PlotBorderSize = sys::ImPlotStyleVar__ImPlotStyleVar_PlotBorderSize, - /// f32, alpha multiplier applied to minor axis grid lines - MinorAlpha = sys::ImPlotStyleVar__ImPlotStyleVar_MinorAlpha, - /// ImVec2, major tick lengths for X and Y axes - MajorTickLen = sys::ImPlotStyleVar__ImPlotStyleVar_MajorTickLen, - /// ImVec2, minor tick lengths for X and Y axes - MinorTickLen = sys::ImPlotStyleVar__ImPlotStyleVar_MinorTickLen, - /// ImVec2, line thickness of major ticks - MajorTickSize = sys::ImPlotStyleVar__ImPlotStyleVar_MajorTickSize, - /// ImVec2, line thickness of minor ticks - MinorTickSize = sys::ImPlotStyleVar__ImPlotStyleVar_MinorTickSize, - /// ImVec2, line thickness of major grid lines - MajorGridSize = sys::ImPlotStyleVar__ImPlotStyleVar_MajorGridSize, - /// ImVec2, line thickness of minor grid lines - MinorGridSize = sys::ImPlotStyleVar__ImPlotStyleVar_MinorGridSize, - /// ImVec2, padding between widget frame and plot area and/or labels - PlotPadding = sys::ImPlotStyleVar__ImPlotStyleVar_PlotPadding, - /// ImVec2, padding between axes labels, tick labels, and plot edge - LabelPadding = sys::ImPlotStyleVar__ImPlotStyleVar_LabelPadding, - /// ImVec2, legend padding from top-left of plot - LegendPadding = sys::ImPlotStyleVar__ImPlotStyleVar_LegendPadding, - /// ImVec2, legend inner padding from legend edges - LegendInnerPadding = sys::ImPlotStyleVar__ImPlotStyleVar_LegendInnerPadding, - /// ImVec2, spacing between legend entries - LegendSpacing = sys::ImPlotStyleVar__ImPlotStyleVar_LegendSpacing, - /// ImVec2, padding between plot edge and interior info text - MousePosPadding = sys::ImPlotStyleVar__ImPlotStyleVar_MousePosPadding, - /// ImVec2, text padding around annotation labels - AnnotationPadding = sys::ImPlotStyleVar__ImPlotStyleVar_AnnotationPadding, - /// ImVec2, additional fit padding as a percentage of the fit extents - /// (e.g. ImVec2(0.1f,0.1f) adds 10% to the fit extents of X and Y) - FitPadding = sys::ImPlotStyleVar__ImPlotStyleVar_FitPadding, - /// ImVec2, default size used when ImVec2(0,0) is passed to BeginPlot - PlotDefaultSize = sys::ImPlotStyleVar__ImPlotStyleVar_PlotDefaultSize, - /// ImVec2, minimum size plot frame can be when shrunk - PlotMinSize = sys::ImPlotStyleVar__ImPlotStyleVar_PlotMinSize, + /// f32, line weight in pixels + LineWeight = sys::ImPlotStyleVar__ImPlotStyleVar_LineWeight, + /// u32, marker specification + Marker = sys::ImPlotStyleVar__ImPlotStyleVar_Marker, + /// f32, marker size in pixels (roughly the marker's "radius") + MarkerSize = sys::ImPlotStyleVar__ImPlotStyleVar_MarkerSize, + /// f32, outline weight of markers in pixels + MarkerWeight = sys::ImPlotStyleVar__ImPlotStyleVar_MarkerWeight, + /// f32, alpha modifier applied to all plot item fills + FillAlpha = sys::ImPlotStyleVar__ImPlotStyleVar_FillAlpha, + /// f32, error bar whisker width in pixels + ErrorBarSize = sys::ImPlotStyleVar__ImPlotStyleVar_ErrorBarSize, + /// f32, error bar whisker weight in pixels + ErrorBarWeight = sys::ImPlotStyleVar__ImPlotStyleVar_ErrorBarWeight, + /// f32, digital channels bit height (at 1) in pixels + DigitalBitHeight = sys::ImPlotStyleVar__ImPlotStyleVar_DigitalBitHeight, + /// f32, digital channels bit padding gap in pixels + DigitalBitGap = sys::ImPlotStyleVar__ImPlotStyleVar_DigitalBitGap, + /// f32, thickness of border around plot area + PlotBorderSize = sys::ImPlotStyleVar__ImPlotStyleVar_PlotBorderSize, + /// f32, alpha multiplier applied to minor axis grid lines + MinorAlpha = sys::ImPlotStyleVar__ImPlotStyleVar_MinorAlpha, + /// ImVec2, major tick lengths for X and Y axes + MajorTickLen = sys::ImPlotStyleVar__ImPlotStyleVar_MajorTickLen, + /// ImVec2, minor tick lengths for X and Y axes + MinorTickLen = sys::ImPlotStyleVar__ImPlotStyleVar_MinorTickLen, + /// ImVec2, line thickness of major ticks + MajorTickSize = sys::ImPlotStyleVar__ImPlotStyleVar_MajorTickSize, + /// ImVec2, line thickness of minor ticks + MinorTickSize = sys::ImPlotStyleVar__ImPlotStyleVar_MinorTickSize, + /// ImVec2, line thickness of major grid lines + MajorGridSize = sys::ImPlotStyleVar__ImPlotStyleVar_MajorGridSize, + /// ImVec2, line thickness of minor grid lines + MinorGridSize = sys::ImPlotStyleVar__ImPlotStyleVar_MinorGridSize, + /// ImVec2, padding between widget frame and plot area and/or labels + PlotPadding = sys::ImPlotStyleVar__ImPlotStyleVar_PlotPadding, + /// ImVec2, padding between axes labels, tick labels, and plot edge + LabelPadding = sys::ImPlotStyleVar__ImPlotStyleVar_LabelPadding, + /// ImVec2, legend padding from top-left of plot + LegendPadding = sys::ImPlotStyleVar__ImPlotStyleVar_LegendPadding, + /// ImVec2, legend inner padding from legend edges + LegendInnerPadding = sys::ImPlotStyleVar__ImPlotStyleVar_LegendInnerPadding, + /// ImVec2, spacing between legend entries + LegendSpacing = sys::ImPlotStyleVar__ImPlotStyleVar_LegendSpacing, + /// ImVec2, padding between plot edge and interior info text + MousePosPadding = sys::ImPlotStyleVar__ImPlotStyleVar_MousePosPadding, + /// ImVec2, text padding around annotation labels + AnnotationPadding = sys::ImPlotStyleVar__ImPlotStyleVar_AnnotationPadding, + /// ImVec2, additional fit padding as a percentage of the fit extents + /// (e.g. ImVec2(0.1f,0.1f) adds 10% to the fit extents of X and Y) + FitPadding = sys::ImPlotStyleVar__ImPlotStyleVar_FitPadding, + /// ImVec2, default size used when ImVec2(0,0) is passed to BeginPlot + PlotDefaultSize = sys::ImPlotStyleVar__ImPlotStyleVar_PlotDefaultSize, + /// ImVec2, minimum size plot frame can be when shrunk + PlotMinSize = sys::ImPlotStyleVar__ImPlotStyleVar_PlotMinSize, } /// Used to position items on a plot (e.g. legends, labels, etc.) @@ -249,53 +217,24 @@ pub enum StyleVar { #[repr(u32)] #[derive(Copy, Clone, Debug)] pub enum PlotLocation { - /// Center-center - Center = sys::ImPlotLocation__ImPlotLocation_Center, - /// Top-center - North = sys::ImPlotLocation__ImPlotLocation_North, - /// Bottom-center - South = sys::ImPlotLocation__ImPlotLocation_South, - /// Center-left - West = sys::ImPlotLocation__ImPlotLocation_West, - /// Center-right - East = sys::ImPlotLocation__ImPlotLocation_East, - /// Top-left - NorthWest = sys::ImPlotLocation__ImPlotLocation_NorthWest, - /// Top-right - NorthEast = sys::ImPlotLocation__ImPlotLocation_NorthEast, - /// Bottom-left - SouthWest = sys::ImPlotLocation__ImPlotLocation_SouthWest, - /// Bottom-right - SouthEast = sys::ImPlotLocation__ImPlotLocation_SouthEast, -} - -#[rustversion::attr(since(1.48), doc(alias = "ImPlotOrientation"))] -/// Used to orient items on a plot (e.g. legends, labels, etc.) -#[repr(u32)] -#[derive(Copy, Clone, Debug)] -pub enum PlotOrientation { - Horizontal = sys::ImPlotOrientation__ImPlotOrientation_Horizontal, - Vertical = sys::ImPlotOrientation__ImPlotOrientation_Vertical, -} - -/// Switch to one of the built-in preset colormaps. If samples is greater than 1, the map will be -/// linearly resampled. -#[rustversion::attr(since(1.48), doc(alias = "SetColormap"))] -pub fn set_colormap_from_preset(preset: Colormap, samples: u32) { - unsafe { - // "as" casts saturate as of Rust 1.45. This is safe here, and at least the enum - // values are not expected to go outside the range of an i32 anyway, so there is no - // risk of changed values. - sys::ImPlot_SetColormapPlotColormap(preset as i32, samples as i32); - } -} - -/// Set a custom colormap in the form of a vector of colors. -#[rustversion::attr(since(1.48), doc(alias = "SetColormap"))] -pub fn set_colormap_from_vec(colors: Vec) { - unsafe { - sys::ImPlot_SetColormapVec4Ptr(colors.as_ptr(), colors.len() as i32); - } + /// Center-center + Center = sys::ImPlotLocation__ImPlotLocation_Center, + /// Top-center + North = sys::ImPlotLocation__ImPlotLocation_North, + /// Bottom-center + South = sys::ImPlotLocation__ImPlotLocation_South, + /// Center-left + West = sys::ImPlotLocation__ImPlotLocation_West, + /// Center-right + East = sys::ImPlotLocation__ImPlotLocation_East, + /// Top-left + NorthWest = sys::ImPlotLocation__ImPlotLocation_NorthWest, + /// Top-right + NorthEast = sys::ImPlotLocation__ImPlotLocation_NorthEast, + /// Bottom-left + SouthWest = sys::ImPlotLocation__ImPlotLocation_SouthWest, + /// Bottom-right + SouthEast = sys::ImPlotLocation__ImPlotLocation_SouthEast, } // --- Push/pop utils ------------------------------------------------------------------------- @@ -312,43 +251,43 @@ pub fn set_colormap_from_vec(colors: Vec) { /// ``` #[rustversion::attr(since(1.48), doc(alias = "PushStyleColor"))] pub fn push_style_color( - element: &PlotColorElement, - red: f32, - green: f32, - blue: f32, - alpha: f32, + element: &PlotColorElement, + red: f32, + green: f32, + blue: f32, + alpha: f32, ) -> StyleColorToken { - unsafe { - sys::ImPlot_PushStyleColorVec4( - *element as sys::ImPlotCol, - sys::ImVec4 { - x: red, - y: green, - z: blue, - w: alpha, - }, - ); - } - StyleColorToken { was_popped: false } + unsafe { + sys::ImPlot_PushStyleColor_Vec4( + *element as sys::ImPlotCol, + sys::ImVec4 { + x: red, + y: green, + z: blue, + w: alpha, + }, + ); + } + StyleColorToken { was_popped: false } } /// Tracks a change pushed to the style color stack pub struct StyleColorToken { - /// Whether this token has been popped or not. - was_popped: bool, + /// Whether this token has been popped or not. + was_popped: bool, } impl StyleColorToken { - #[rustversion::attr(since(1.48), doc(alias = "PopStyleColor"))] - pub fn pop(mut self) { - if self.was_popped { - panic!("Attempted to pop a style color token twice.") - } - self.was_popped = true; - unsafe { - sys::ImPlot_PopStyleColor(1); - } - } + #[rustversion::attr(since(1.48), doc(alias = "PopStyleColor"))] + pub fn pop(mut self) { + if self.was_popped { + panic!("Attempted to pop a style color token twice.") + } + self.was_popped = true; + unsafe { + sys::ImPlot_PopStyleColor(1); + } + } } /// Push a f32 style variable to the stack. The returned token is used for removing @@ -361,10 +300,10 @@ impl StyleColorToken { /// ``` #[rustversion::attr(since(1.48), doc(alias = "PushStyleVar"))] pub fn push_style_var_f32(element: &StyleVar, value: f32) -> StyleVarToken { - unsafe { - sys::ImPlot_PushStyleVarFloat(*element as sys::ImPlotStyleVar, value); - } - StyleVarToken { was_popped: false } + unsafe { + sys::ImPlot_PushStyleVar_Float(*element as sys::ImPlotStyleVar, value); + } + StyleVarToken { was_popped: false } } /// Push an u32 style variable to the stack. The only i32 style variable is Marker @@ -377,205 +316,150 @@ pub fn push_style_var_f32(element: &StyleVar, value: f32) -> StyleVarToken { /// ``` #[rustversion::attr(since(1.48), doc(alias = "PushStyleVar"))] pub fn push_style_var_i32(element: &StyleVar, value: i32) -> StyleVarToken { - unsafe { - sys::ImPlot_PushStyleVarInt(*element as sys::ImPlotStyleVar, value); - } - StyleVarToken { was_popped: false } + unsafe { + sys::ImPlot_PushStyleVar_Int(*element as sys::ImPlotStyleVar, value); + } + StyleVarToken { was_popped: false } } /// Push an ImVec2 style variable to the stack. The returned token is used for removing /// the variable from the stack again. pub fn push_style_var_imvec2(element: &StyleVar, value: ImVec2) -> StyleVarToken { - unsafe { - sys::ImPlot_PushStyleVarVec2(*element as sys::ImPlotStyleVar, value); - } - StyleVarToken { was_popped: false } + unsafe { + sys::ImPlot_PushStyleVar_Vec2(*element as sys::ImPlotStyleVar, value); + } + StyleVarToken { was_popped: false } } /// Tracks a change pushed to the style variable stack pub struct StyleVarToken { - /// Whether this token has been popped or not. - was_popped: bool, + /// Whether this token has been popped or not. + was_popped: bool, } impl StyleVarToken { - /// Pop this token from the stack. - #[rustversion::attr(since(1.48), doc(alias = "PopStyleVar"))] - pub fn pop(mut self) { - if self.was_popped { - panic!("Attempted to pop a style var token twice.") - } - self.was_popped = true; - unsafe { - sys::ImPlot_PopStyleVar(1); - } - } + /// Pop this token from the stack. + #[rustversion::attr(since(1.48), doc(alias = "PopStyleVar"))] + pub fn pop(mut self) { + if self.was_popped { + panic!("Attempted to pop a style var token twice.") + } + self.was_popped = true; + unsafe { + sys::ImPlot_PopStyleVar(1); + } + } } // --- Miscellaneous ----------------------------------------------------------------------------- /// Returns true if the plot area in the current or most recent plot is hovered. #[rustversion::attr(since(1.48), doc(alias = "IsPlotHovered"))] pub fn is_plot_hovered() -> bool { - unsafe { sys::ImPlot_IsPlotHovered() } -} - -/// Returns true if the current or most recent plot is queried -#[rustversion::attr(since(1.48), doc(alias = "IsPlotQueried"))] -pub fn is_plot_queried() -> bool { - unsafe { sys::ImPlot_IsPlotQueried() } + unsafe { sys::ImPlot_IsPlotHovered() } } /// Returns the mouse position in x,y coordinates of the current or most recent plot, /// for the specified choice of Y axis. If `None` is the Y axis choice, that means the /// most recently selected Y axis is chosen. #[rustversion::attr(since(1.48), doc(alias = "GetPlotMousePos"))] -pub fn get_plot_mouse_position(y_axis_choice: Option) -> ImPlotPoint { - let y_axis_choice_i32 = y_axis_choice_option_to_i32(y_axis_choice); - let mut point = ImPlotPoint { x: 0.0, y: 0.0 }; // doesn't seem to have default() - unsafe { - sys::ImPlot_GetPlotMousePos(&mut point as *mut ImPlotPoint, y_axis_choice_i32); - } - point +pub fn get_plot_mouse_position(x: ImAxis, y: ImAxis) -> ImPlotPoint { + let mut point = ImPlotPoint { x: 0.0, y: 0.0 }; // doesn't seem to have default() + unsafe { + sys::ImPlot_GetPlotMousePos(&mut point as *mut ImPlotPoint, x, y); + } + point } /// Convert pixels, given as an `ImVec2`, to a position in the current plot's coordinate system. /// Uses the specified Y axis, if any, otherwise whatever was previously chosen. #[rustversion::attr(since(1.48), doc(alias = "PixelsToPlot"))] -pub fn pixels_to_plot_vec2( - pixel_position: &ImVec2, - y_axis_choice: Option, -) -> ImPlotPoint { - let y_axis_choice_i32 = y_axis_choice_option_to_i32(y_axis_choice); - let mut point = ImPlotPoint { x: 0.0, y: 0.0 }; // doesn't seem to have default() - unsafe { - sys::ImPlot_PixelsToPlotVec2( - &mut point as *mut ImPlotPoint, - *pixel_position, - y_axis_choice_i32, - ); - } - point +pub fn pixels_to_plot_vec2(pixel_position: &ImVec2, x: ImAxis, y: ImAxis) -> ImPlotPoint { + let mut point = ImPlotPoint { x: 0.0, y: 0.0 }; // doesn't seem to have default() + unsafe { + sys::ImPlot_PixelsToPlot_Vec2(&mut point as *mut ImPlotPoint, *pixel_position, x, y); + } + point } /// Convert pixels, given as floats `x` and `y`, to a position in the current plot's coordinate /// system. Uses the specified Y axis, if any, otherwise whatever was previously chosen. #[rustversion::attr(since(1.48), doc(alias = "PixelsToPlot"))] pub fn pixels_to_plot_f32( - pixel_position_x: f32, - pixel_position_y: f32, - y_axis_choice: Option, + pixel_position_x: f32, + pixel_position_y: f32, + x: ImAxis, + y: ImAxis, ) -> ImPlotPoint { - let y_axis_choice_i32 = y_axis_choice_option_to_i32(y_axis_choice); - let mut point = ImPlotPoint { x: 0.0, y: 0.0 }; // doesn't seem to have default() - unsafe { - sys::ImPlot_PixelsToPlotFloat( - &mut point as *mut ImPlotPoint, - pixel_position_x, - pixel_position_y, - y_axis_choice_i32, - ); - } - point + let mut point = ImPlotPoint { x: 0.0, y: 0.0 }; // doesn't seem to have default() + unsafe { + sys::ImPlot_PixelsToPlot_Float( + &mut point as *mut ImPlotPoint, + pixel_position_x, + pixel_position_y, + x, + y, + ); + } + point } /// Convert a position in the current plot's coordinate system to pixels. Uses the specified Y /// axis, if any, otherwise whatever was previously chosen. /// #[rustversion::attr(since(1.48), doc(alias = "PlotToPixels"))] -pub fn plot_to_pixels_vec2( - plot_position: &ImPlotPoint, - y_axis_choice: Option, -) -> ImVec2 { - let y_axis_choice_i32 = y_axis_choice_option_to_i32(y_axis_choice); - let mut pixel_position = ImVec2 { x: 0.0, y: 0.0 }; // doesn't seem to have default() - unsafe { - sys::ImPlot_PlotToPixelsPlotPoInt( - &mut pixel_position as *mut ImVec2, - *plot_position, - y_axis_choice_i32, - ); - } - pixel_position +pub fn plot_to_pixels_vec2(plot_position: &ImPlotPoint, x_axis: ImAxis, y_axis: ImAxis) -> ImVec2 { + let mut pixel_position = ImVec2 { x: 0.0, y: 0.0 }; // doesn't seem to have default() + unsafe { + sys::ImPlot_PlotToPixels_PlotPoInt( + &mut pixel_position as *mut ImVec2, + *plot_position, + x_axis, + y_axis, + ); + } + pixel_position } /// Convert a position in the current plot's coordinate system to pixels. Uses the specified Y /// axis, if any, otherwise whatever was previously chosen. #[rustversion::attr(since(1.48), doc(alias = "PlotToPixels"))] pub fn plot_to_pixels_f32( - plot_position_x: f64, - plot_position_y: f64, - y_axis_choice: Option, + plot_position_x: f64, + plot_position_y: f64, + x_axis: ImAxis, + y_axis: ImAxis, ) -> ImVec2 { - let y_axis_choice_i32 = y_axis_choice_option_to_i32(y_axis_choice); - let mut pixel_position = ImVec2 { x: 0.0, y: 0.0 }; // doesn't seem to have default() - unsafe { - sys::ImPlot_PlotToPixelsdouble( - &mut pixel_position as *mut ImVec2, - plot_position_x, - plot_position_y, - y_axis_choice_i32, - ); - } - pixel_position + let mut pixel_position = ImVec2 { x: 0.0, y: 0.0 }; // doesn't seem to have default() + unsafe { + sys::ImPlot_PlotToPixels_double( + &mut pixel_position as *mut ImVec2, + plot_position_x, + plot_position_y, + x_axis, + y_axis, + ); + } + pixel_position } /// Returns the current or most recent plot axis range for the specified choice of Y axis. If /// `None` is the Y axis choice, that means the most recently selected Y axis is chosen. #[rustversion::attr(since(1.48), doc(alias = "GetPlotLimits"))] -pub fn get_plot_limits(y_axis_choice: Option) -> ImPlotLimits { - let y_axis_choice_i32 = y_axis_choice_option_to_i32(y_axis_choice); - // ImPlotLimits doesn't seem to have default() - let mut limits = ImPlotLimits { - X: ImPlotRange { Min: 0.0, Max: 0.0 }, - Y: ImPlotRange { Min: 0.0, Max: 0.0 }, - }; - unsafe { - sys::ImPlot_GetPlotLimits(&mut limits as *mut ImPlotLimits, y_axis_choice_i32); - } - limits -} - -/// Returns the query limits of the current or most recent plot, for the specified choice of Y -/// axis. If `None` is the Y axis choice, that means the most recently selected Y axis is chosen. -#[rustversion::attr(since(1.48), doc(alias = "GetPlotQuery"))] -pub fn get_plot_query(y_axis_choice: Option) -> ImPlotLimits { - let y_axis_choice_i32 = y_axis_choice_option_to_i32(y_axis_choice); - // ImPlotLimits doesn't seem to have default() - let mut limits = ImPlotLimits { - X: ImPlotRange { Min: 0.0, Max: 0.0 }, - Y: ImPlotRange { Min: 0.0, Max: 0.0 }, - }; - unsafe { - sys::ImPlot_GetPlotQuery(&mut limits as *mut ImPlotLimits, y_axis_choice_i32); - } - limits -} - -/// Set the Y axis to be used for any upcoming plot elements -#[rustversion::attr(since(1.48), doc(alias = "SetPlotYAxis"))] -pub fn set_plot_y_axis(y_axis_choice: YAxisChoice) { - unsafe { - sys::ImPlot_SetPlotYAxis(y_axis_choice as i32); - } -} - -/// Returns true if the XAxis plot area in the current plot is hovered. -#[rustversion::attr(since(1.48), doc(alias = "IsPlotXAxisHovered"))] -pub fn is_plot_x_axis_hovered() -> bool { - unsafe { sys::ImPlot_IsPlotXAxisHovered() } -} - -/// Returns true if the Y axis area of the given Y axis choice in the current plot is hovered. If -/// `None` is the Y axis choice, that means the most recently selected Y axis is chosen. -#[rustversion::attr(since(1.48), doc(alias = "IsPlotYAxisHovered"))] -pub fn is_plot_y_axis_hovered(y_axis_choice: Option) -> bool { - let y_axis_choice_i32 = y_axis_choice_option_to_i32(y_axis_choice); - unsafe { sys::ImPlot_IsPlotYAxisHovered(y_axis_choice_i32) } +pub fn get_plot_limits(x: ImAxis, y: ImAxis) -> ImPlotRect { + // ImPlotRect doesn't seem to have default() + let mut limits = ImPlotRect { + X: ImPlotRange { Min: 0.0, Max: 0.0 }, + Y: ImPlotRange { Min: 0.0, Max: 0.0 }, + }; + unsafe { + sys::ImPlot_GetPlotLimits(&mut limits as *mut ImPlotRect, x, y); + } + limits } /// Returns true if the given item in the legend of the current plot is hovered. pub fn is_legend_entry_hovered(legend_entry: &str) -> bool { - unsafe { sys::ImPlot_IsLegendEntryHovered(legend_entry.as_ptr() as *const c_char) } + unsafe { sys::ImPlot_IsLegendEntryHovered(legend_entry.as_ptr() as *const c_char) } } // --- Demo window ------------------------------------------------------------------------------- @@ -585,7 +469,7 @@ pub fn is_legend_entry_hovered(legend_entry: &str) -> bool { // This requires implot_demo.cpp to be in the list of sources in implot-sys. #[rustversion::attr(since(1.48), doc(alias = "ShowDemoWindow"))] pub fn show_demo_window(show: &mut bool) { - unsafe { - implot_sys::ImPlot_ShowDemoWindow(show); - } + unsafe { + implot_sys::ImPlot_ShowDemoWindow(show); + } } diff --git a/src/lines.rs b/src/lines.rs new file mode 100644 index 0000000..912a979 --- /dev/null +++ b/src/lines.rs @@ -0,0 +1,36 @@ +use crate::sys; +use std::ffi::CString; +use std::os::raw::c_char; + +pub use crate::sys::ImPlotPoint; + +pub struct PlotLine { + label: CString, +} + +impl PlotLine { + pub fn new(label: &str) -> Self { + Self { + label: CString::new(label) + .unwrap_or_else(|_| panic!("label string has internal null bytes: {}", label)), + } + } + + pub fn plot(&self, x: &[f64], y: &[f64]) { + if x.len().min(y.len()) == 0 { + return; + } + + unsafe { + sys::ImPlot_PlotLine_doublePtrdoublePtr( + self.label.as_ptr() as *const c_char, + x.as_ptr(), + y.as_ptr(), + x.len().min(y.len()) as i32, + 0, + 0, + std::mem::size_of::() as i32, + ); + } + } +} diff --git a/src/plot.rs b/src/plot.rs index ce48447..84275b9 100644 --- a/src/plot.rs +++ b/src/plot.rs @@ -1,676 +1,179 @@ -//! # Plot module -//! -//! This module defines the `Plot` struct, which is used to create a 2D plot that will -//! contain all other objects that can be created using this library. -use crate::{Context, PlotLocation, PlotOrientation, PlotUi, YAxisChoice, NUMBER_OF_Y_AXES}; -use bitflags::bitflags; -pub use imgui::Condition; -use implot_sys as sys; use std::ffi::CString; -use std::os::raw::c_char; -use std::{cell::RefCell, rc::Rc}; -pub use sys::{ImPlotLimits, ImPlotPoint, ImPlotRange, ImVec2, ImVec4}; + +use bitflags::bitflags; +use implot_sys as sys; +use sys::{ImAxis, ImVec2, *}; + +use crate::{Context, PlotUi}; const DEFAULT_PLOT_SIZE_X: f32 = 400.0; const DEFAULT_PLOT_SIZE_Y: f32 = 400.0; -#[rustversion::attr(since(1.48), doc(alias = "ImPlotFlags"))] +pub enum Axis { + X1 = 0, + X2 = 1, + X3 = 2, + Y1 = 3, + Y2 = 4, + Y3 = 5, +} + bitflags! { - /// Flags for customizing plot behavior and interaction. Documentation copied from implot.h for - /// convenience. ImPlot itself also has a "CanvasOnly" flag, which can be emulated here with - /// the combination of `NO_LEGEND`, `NO_MENUS`, `NO_BOX_SELECT` and `NO_MOUSE_POSITION`. - #[repr(transparent)] - pub struct PlotFlags: u32 { - /// "Default" according to original docs - const NONE = sys::ImPlotFlags__ImPlotFlags_None; - /// Plot items will not be highlighted when their legend entry is hovered - const NO_LEGEND = sys::ImPlotFlags__ImPlotFlags_NoLegend; - /// The user will not be able to open context menus with double-right click - const NO_MENUS = sys::ImPlotFlags__ImPlotFlags_NoMenus; - /// The user will not be able to box-select with right-mouse - const NO_BOX_SELECT = sys::ImPlotFlags__ImPlotFlags_NoBoxSelect; - /// The mouse position, in plot coordinates, will not be displayed - const NO_MOUSE_POSITION = sys::ImPlotFlags__ImPlotFlags_NoMousePos; - /// Plot items will not be highlighted when their legend entry is hovered - const NO_HIGHLIGHT = sys::ImPlotFlags__ImPlotFlags_NoHighlight; - /// A child window region will not be used to capture mouse scroll (can boost performance - /// for single ImGui window applications) - const NO_CHILD = sys::ImPlotFlags__ImPlotFlags_NoChild; - /// Use an aspect ratio of 1:1 for the plot - const AXIS_EQUAL = sys::ImPlotFlags__ImPlotFlags_Equal; - /// Enable a 2nd y axis - const Y_AXIS_2 = sys::ImPlotFlags__ImPlotFlags_YAxis2; - /// Enable a 3nd y axis - const Y_AXIS_3 = sys::ImPlotFlags__ImPlotFlags_YAxis3; - /// The user will be able to draw query rects with middle-mouse - const QUERY = sys::ImPlotFlags__ImPlotFlags_Query; - /// The default mouse cursor will be replaced with a crosshair when hovered - const CROSSHAIRS = sys::ImPlotFlags__ImPlotFlags_Crosshairs; - /// Plot data outside the plot area will be culled from rendering - const ANTIALIASED = sys::ImPlotFlags__ImPlotFlags_AntiAliased; - } + #[repr(transparent)] + pub struct PlotFlags: u32 { + const NONE = ImPlotFlags__ImPlotFlags_None; + const NOTITLE = ImPlotFlags__ImPlotFlags_NoTitle; + const NOLEGEND = ImPlotFlags__ImPlotFlags_NoLegend; + const NOMOUSETEXT = ImPlotFlags__ImPlotFlags_NoMouseText; + const NOINPUTS = ImPlotFlags__ImPlotFlags_NoInputs; + const NOMENUS = ImPlotFlags__ImPlotFlags_NoMenus; + const NOBOXSELECT = ImPlotFlags__ImPlotFlags_NoBoxSelect; + const NOCHILD = ImPlotFlags__ImPlotFlags_NoChild; + const NOFRAME = ImPlotFlags__ImPlotFlags_NoFrame; + const EQUAL = ImPlotFlags__ImPlotFlags_Equal; + const CROSSHAIRS = ImPlotFlags__ImPlotFlags_Crosshairs; + const CANVASONLY = ImPlotFlags__ImPlotFlags_CanvasOnly; + } } -#[rustversion::attr(since(1.48), doc(alias = "ImPlotAxisFlags"))] bitflags! { - /// Axis flags. Documentation copied from implot.h for convenience. ImPlot itself also - /// has `Lock`, which combines `LOCK_MIN` and `LOCK_MAX`, and `NoDecorations`, which combines - /// `NO_GRID_LINES`, `NO_TICK_MARKS` and `NO_TICK_LABELS`. - #[repr(transparent)] - pub struct AxisFlags: u32 { - /// "Default" according to original docs - const NONE = sys::ImPlotAxisFlags__ImPlotAxisFlags_None; - /// Grid lines will not be displayed - const NO_GRID_LINES = sys::ImPlotAxisFlags__ImPlotAxisFlags_NoGridLines; - /// Tick marks will not be displayed - const NO_TICK_MARKS = sys::ImPlotAxisFlags__ImPlotAxisFlags_NoTickMarks; - /// Text labels will not be displayed - const NO_TICK_LABELS = sys::ImPlotAxisFlags__ImPlotAxisFlags_NoTickLabels; - /// A logartithmic (base 10) axis scale will be used (mutually exclusive with AxisFlags::TIME) - const LOG_SCALE = sys::ImPlotAxisFlags__ImPlotAxisFlags_LogScale; - /// Axis will display date/time formatted labels (mutually exclusive with AxisFlags::LOG_SCALE) - const TIME = sys::ImPlotAxisFlags__ImPlotAxisFlags_Time; - /// The axis will be inverted - const INVERT = sys::ImPlotAxisFlags__ImPlotAxisFlags_Invert; - /// The axis minimum value will be locked when panning/zooming - const LOCK_MIN = sys::ImPlotAxisFlags__ImPlotAxisFlags_LockMin; - /// The axis maximum value will be locked when panning/zooming - const LOCK_MAX = sys::ImPlotAxisFlags__ImPlotAxisFlags_LockMax; - } + #[repr(transparent)] + pub struct PlotAxisFlags: u32 { + const NONE = ImPlotAxisFlags__ImPlotAxisFlags_None; + const NO_LABEL = ImPlotAxisFlags__ImPlotAxisFlags_NoLabel; + const NO_GRID_LINES = ImPlotAxisFlags__ImPlotAxisFlags_NoGridLines; + const NO_TICK_MARKS = ImPlotAxisFlags__ImPlotAxisFlags_NoTickMarks; + const NO_TICK_LABELS = ImPlotAxisFlags__ImPlotAxisFlags_NoTickLabels; + const NO_INITIAL_FIT = ImPlotAxisFlags__ImPlotAxisFlags_NoInitialFit; + const NO_MENUS = ImPlotAxisFlags__ImPlotAxisFlags_NoMenus; + const NO_SIDESWITCH = ImPlotAxisFlags__ImPlotAxisFlags_NoSideSwitch; + const NO_HIGHLIGHT = ImPlotAxisFlags__ImPlotAxisFlags_NoHighlight; + const OPPOSITE = ImPlotAxisFlags__ImPlotAxisFlags_Opposite; + const FOREGROUND = ImPlotAxisFlags__ImPlotAxisFlags_Foreground; + const INVERT = ImPlotAxisFlags__ImPlotAxisFlags_Invert; + const AUTO_FIT = ImPlotAxisFlags__ImPlotAxisFlags_AutoFit; + const RANGE_FIT = ImPlotAxisFlags__ImPlotAxisFlags_RangeFit; + const PAN_STRETCH = ImPlotAxisFlags__ImPlotAxisFlags_PanStretch; + const LOCK_MIN = ImPlotAxisFlags__ImPlotAxisFlags_LockMin; + const LOCK_MAX = ImPlotAxisFlags__ImPlotAxisFlags_LockMax; + const LOCK = ImPlotAxisFlags__ImPlotAxisFlags_Lock; + const NO_DECORATIONS = ImPlotAxisFlags__ImPlotAxisFlags_NoDecorations; + const AUX_DEFAULT = ImPlotAxisFlags__ImPlotAxisFlags_AuxDefault; + } } -/// Internally-used struct for storing axis limits -#[derive(Clone)] -enum AxisLimitSpecification { - /// Direct limits, specified as values - Single(ImPlotRange, Condition), - /// Limits that are linked to limits of other plots (via clones of the same Rc) - Linked(Rc>), -} - -/// Struct to represent an ImPlot. This is the main construct used to contain all kinds of plots in ImPlot. -/// -/// `Plot` is to be used (within an imgui window) with the following pattern: -/// ```no_run -/// # use implot; -/// let plotting_context = implot::Context::create(); -/// let plot_ui = plotting_context.get_plot_ui(); -/// implot::Plot::new("my title") -/// .size([300.0, 200.0]) // other things such as .x_label("some_label") can be added too -/// .build(&plot_ui, || { -/// // Do things such as plotting lines -/// }); -/// -/// ``` -/// (If you are coming from the C++ implementation or the C bindings: build() calls both -/// begin() and end() internally) pub struct Plot { - /// Title of the plot, shown on top. Stored as CString because that's what we'll use - /// afterwards, and this ensures the CString itself will stay alive long enough for the plot. - title: CString, - /// Size of the plot in [x, y] direction, in the same units imgui uses. - size: [f32; 2], - /// Label of the x axis, shown on the bottom. Stored as CString because that's what we'll use - /// afterwards, and this ensures the CString itself will stay alive long enough for the plot. - x_label: CString, - /// Label of the y axis, shown on the left. Stored as CString because that's what we'll use - /// afterwards, and this ensures the CString itself will stay alive long enough for the plot. - y_label: CString, - /// X axis limits, if present - x_limits: Option, - /// Y axis limits, if present - y_limits: [Option; NUMBER_OF_Y_AXES], - /// Positions for custom X axis ticks, if any - x_tick_positions: Option>, - /// Labels for custom X axis ticks, if any. I'd prefer to store these together - /// with the positions in one vector of an algebraic data type, but this would mean extra - /// copies when it comes time to draw the plot because the C++ library expects separate lists. - /// The data is stored as CStrings because those are null-terminated, and since we have to - /// convert to null-terminated data anyway, we may as well do that directly instead of cloning - /// Strings and converting them afterwards. - x_tick_labels: Option>, - /// Whether to also show the default X ticks when showing custom ticks or not - show_x_default_ticks: bool, - /// Positions for custom Y axis ticks, if any - y_tick_positions: [Option>; NUMBER_OF_Y_AXES], - /// Labels for custom Y axis ticks, if any. I'd prefer to store these together - /// with the positions in one vector of an algebraic data type, but this would mean extra - /// copies when it comes time to draw the plot because the C++ library expects separate lists. - /// The data is stored as CStrings because those are null-terminated, and since we have to - /// convert to null-terminated data anyway, we may as well do that directly instead of cloning - /// Strings and converting them afterwards. - y_tick_labels: [Option>; NUMBER_OF_Y_AXES], - /// Whether to also show the default Y ticks when showing custom ticks or not - show_y_default_ticks: [bool; NUMBER_OF_Y_AXES], - /// Configuration for the legend, if specified. The tuple contains location, orientation - /// and a boolean (true means legend is outside of plot, false means within). If nothing - /// is set, implot's defaults are used. Note also that if these are set, then implot's - /// interactive legend configuration does not work because it is overridden by the settings - /// here. - legend_configuration: Option<(PlotLocation, PlotOrientation, bool)>, - /// Flags relating to the plot TODO(4bb4) make those into bitflags - plot_flags: sys::ImPlotFlags, - /// Flags relating to the X axis of the plot TODO(4bb4) make those into bitflags - x_flags: sys::ImPlotAxisFlags, - /// Flags relating to the each of the Y axes of the plot TODO(4bb4) make those into bitflags - y_flags: [sys::ImPlotAxisFlags; NUMBER_OF_Y_AXES], + title: CString, + size: [f32; 2], + x_label: CString, + y_label: CString, + flags: ImPlotFlags, + x_flags: ImPlotAxisFlags, + y_flags: ImPlotAxisFlags, } impl Plot { - /// Create a new plot with some defaults set. Does not draw anything yet. - /// Note that this uses antialiasing by default, unlike the C++ API. If you are seeing - /// artifacts or weird rendering, try disabling it. - /// - /// # Panics - /// Will panic if the title string contains internal null bytes. - pub fn new(title: &str) -> Self { - // Needed for initialization, see https://github.com/rust-lang/rust/issues/49147 - const POS_NONE: Option> = None; - const TICK_NONE: Option> = None; + pub fn new(title: &str) -> Self { + Self { + title: CString::new(title) + .unwrap_or_else(|_| panic!("string contains internal null bytes: {}", title)), + size: [DEFAULT_PLOT_SIZE_X, DEFAULT_PLOT_SIZE_Y], + x_label: CString::new("").unwrap(), + y_label: CString::new("").unwrap(), + flags: PlotFlags::NONE.bits() as ImPlotFlags, + x_flags: PlotAxisFlags::NONE.bits() as ImPlotAxisFlags, + y_flags: PlotAxisFlags::NONE.bits() as ImPlotAxisFlags, + } + } - // TODO(4bb4) question these defaults, maybe remove some of them - Self { - title: CString::new(title) - .unwrap_or_else(|_| panic!("String contains internal null bytes: {}", title)), - size: [DEFAULT_PLOT_SIZE_X, DEFAULT_PLOT_SIZE_Y], - x_label: CString::new("").unwrap(), - y_label: CString::new("").unwrap(), - x_limits: None, - y_limits: Default::default(), - x_tick_positions: None, - x_tick_labels: None, - show_x_default_ticks: false, - y_tick_positions: [POS_NONE; NUMBER_OF_Y_AXES], - y_tick_labels: [TICK_NONE; NUMBER_OF_Y_AXES], - show_y_default_ticks: [false; NUMBER_OF_Y_AXES], - legend_configuration: None, - plot_flags: PlotFlags::ANTIALIASED.bits() as sys::ImPlotFlags, - x_flags: AxisFlags::NONE.bits() as sys::ImPlotAxisFlags, - y_flags: [AxisFlags::NONE.bits() as sys::ImPlotAxisFlags; NUMBER_OF_Y_AXES], - } - } + pub fn size(mut self, size: [f32; 2]) -> Self { + self.size = size; + self + } - /// Sets the plot size, given as [size_x, size_y]. Units are the same as - /// what imgui uses. TODO(4bb4) ... which is? I'm not sure it's pixels - #[inline] - pub fn size(mut self, size: [f32; 2]) -> Self { - self.size = size; - self - } + pub fn with_flags(mut self, flags: &PlotFlags) -> Self { + self.flags = flags.bits() as ImPlotFlags; + self + } - /// Set the x label of the plot - /// - /// # Panics - /// Will panic if the label string contains internal null bytes. - #[inline] - pub fn x_label(mut self, label: &str) -> Self { - self.x_label = CString::new(label) - .unwrap_or_else(|_| panic!("String contains internal null bytes: {}", label)); - self - } + pub fn with_x_flags(mut self, flags: &PlotAxisFlags) -> Self { + self.x_flags = flags.bits() as ImPlotAxisFlags; + self + } - /// Set the y label of the plot - /// - /// # Panics - /// Will panic if the label string contains internal null bytes. - #[inline] - pub fn y_label(mut self, label: &str) -> Self { - self.y_label = CString::new(label) - .unwrap_or_else(|_| panic!("String contains internal null bytes: {}", label)); - self - } + pub fn with_y_flags(mut self, flags: &PlotAxisFlags) -> Self { + self.y_flags = flags.bits() as ImPlotAxisFlags; + self + } - /// Set the x limits of the plot. - /// - /// Note: This conflicts with `linked_x_limits`, whichever is called last on plot construction - /// takes effect. - #[inline] - pub fn x_limits>(mut self, limits: L, condition: Condition) -> Self { - self.x_limits = Some(AxisLimitSpecification::Single(limits.into(), condition)); - self - } + pub fn x_label(mut self, label: &str) -> Self { + self.x_label = CString::new(label) + .unwrap_or_else(|_| panic!("string contains internal null bytes: {}", label)); - /// Set linked x limits for this plot. Pass clones of the same `Rc` into other plots - /// to link their limits with the same values. - /// - /// Note: This conflicts with `x_limits`, whichever is called last on plot construction takes - /// effect. - #[inline] - pub fn linked_x_limits(mut self, limits: Rc>) -> Self { - self.x_limits = Some(AxisLimitSpecification::Linked(limits)); - self - } + self + } - /// Set the Y limits of the plot for the given Y axis. Call multiple times with different - /// `y_axis_choice` values to set for multiple axes, or use the convenience methods such as - /// [`Plot::y1_limits`]. - /// - /// Note: This conflicts with `linked_y_limits`, whichever is called last on plot construction - /// takes effect for a given axis. - #[inline] - pub fn y_limits>( - mut self, - limits: L, - y_axis_choice: YAxisChoice, - condition: Condition, - ) -> Self { - let axis_index = y_axis_choice as usize; - self.y_limits[axis_index] = Some(AxisLimitSpecification::Single(limits.into(), condition)); - self - } + pub fn y_label(mut self, label: &str) -> Self { + self.y_label = CString::new(label) + .unwrap_or_else(|_| panic!("string contains internal null bytes: {}", label)); - /// Convenience function to directly set the Y limits for the first Y axis. To programmatically - /// (or on demand) decide which axis to set limits for, use [`Plot::y_limits`] - #[inline] - pub fn y1_limits>(self, limits: L, condition: Condition) -> Self { - self.y_limits(limits, YAxisChoice::First, condition) - } + self + } - /// Convenience function to directly set the Y limits for the second Y axis. To - /// programmatically (or on demand) decide which axis to set limits for, use [`Plot::y_limits`] - #[inline] - pub fn y2_limits>(self, limits: L, condition: Condition) -> Self { - self.y_limits(limits, YAxisChoice::Second, condition) - } + pub fn begin(&self, plot_ui: &PlotUi) -> Option { + let should_render = unsafe { + let size_vec: ImVec2 = ImVec2 { + x: self.size[0], + y: self.size[1], + }; - /// Convenience function to directly set the Y limits for the third Y axis. To programmatically - /// (or on demand) decide which axis to set limits for, use [`Plot::y_limits`] - #[inline] - pub fn y3_limits>(self, limits: L, condition: Condition) -> Self { - self.y_limits(limits, YAxisChoice::Third, condition) - } + let should_render = sys::ImPlot_BeginPlot(self.title.as_ptr(), size_vec, self.flags); - /// Set linked Y limits of the plot for the given Y axis. Pass clones of the same `Rc` into - /// other plots to link their limits with the same values. Call multiple times with different - /// `y_axis_choice` values to set for multiple axes, or use the convenience methods such as - /// [`Plot::y1_limits`]. - /// - /// Note: This conflicts with `y_limits`, whichever is called last on plot construction takes - /// effect for a given axis. - #[inline] - pub fn linked_y_limits( - mut self, - limits: Rc>, - y_axis_choice: YAxisChoice, - ) -> Self { - let axis_index = y_axis_choice as usize; - self.y_limits[axis_index] = Some(AxisLimitSpecification::Linked(limits)); - self - } + should_render + }; - /// Convenience function to directly set linked Y limits for the first Y axis. To - /// programmatically (or on demand) decide which axis to set limits for, use - /// [`Plot::linked_y_limits`]. - #[inline] - pub fn linked_y1_limits(self, limits: Rc>) -> Self { - self.linked_y_limits(limits, YAxisChoice::First) - } + if should_render { + unsafe { + sys::ImPlot_SetupAxis(Axis::X1 as i32, self.x_label.as_ptr(), self.x_flags); + sys::ImPlot_SetupAxis(Axis::Y1 as i32, self.y_label.as_ptr(), self.y_flags); + } - /// Convenience function to directly set linked Y limits for the second Y axis. To - /// programmatically (or on demand) decide which axis to set limits for, use - /// [`Plot::linked_y_limits`]. - #[inline] - pub fn linked_y2_limits(self, limits: Rc>) -> Self { - self.linked_y_limits(limits, YAxisChoice::Second) - } + Some(PlotToken { + context: plot_ui.context, + plot_title: self.title.clone(), + }) + } else { + None + } + } - /// Convenience function to directly set linked Y limits for the third Y axis. To - /// programmatically (or on demand) decide which axis to set limits for, use - /// [`Plot::linked_y_limits`]. - #[inline] - pub fn linked_y3_limits(self, limits: Rc>) -> Self { - self.linked_y_limits(limits, YAxisChoice::Third) - } - - /// Set X ticks without labels for the plot. The vector contains one label each in - /// the form of a tuple `(label_position, label_string)`. The `show_default` setting - /// determines whether the default ticks are also shown. - #[inline] - pub fn x_ticks(mut self, ticks: &[f64], show_default: bool) -> Self { - self.x_tick_positions = Some(ticks.into()); - self.show_x_default_ticks = show_default; - self - } - - /// Set X ticks without labels for the plot. The vector contains one label each in - /// the form of a tuple `(label_position, label_string)`. The `show_default` setting - /// determines whether the default ticks are also shown. - #[inline] - pub fn y_ticks( - mut self, - y_axis_choice: YAxisChoice, - ticks: &[f64], - show_default: bool, - ) -> Self { - let axis_index = y_axis_choice as usize; - self.y_tick_positions[axis_index] = Some(ticks.into()); - self.show_y_default_ticks[axis_index] = show_default; - self - } - - /// Set X ticks with labels for the plot. The vector contains one position and label - /// each in the form of a tuple `(label_position, label_string)`. The `show_default` - /// setting determines whether the default ticks are also shown. - /// - /// # Panics - /// Will panic if any of the tick label strings contain internal null bytes. - #[inline] - pub fn x_ticks_with_labels( - mut self, - tick_labels: &[(f64, String)], - show_default: bool, - ) -> Self { - self.x_tick_positions = Some(tick_labels.iter().map(|x| x.0).collect()); - self.x_tick_labels = Some( - tick_labels - .iter() - .map(|x| { - CString::new(x.1.as_str()) - .unwrap_or_else(|_| panic!("String contains internal null bytes: {}", x.1)) - }) - .collect(), - ); - self.show_x_default_ticks = show_default; - self - } - - /// Set Y ticks with labels for the plot. The vector contains one position and label - /// each in the form of a tuple `(label_position, label_string)`. The `show_default` - /// setting determines whether the default ticks are also shown. - /// - /// # Panics - /// Will panic if any of the tick label strings contain internal null bytes. - #[inline] - pub fn y_ticks_with_labels( - mut self, - y_axis_choice: YAxisChoice, - tick_labels: &[(f64, String)], - show_default: bool, - ) -> Self { - let axis_index = y_axis_choice as usize; - self.y_tick_positions[axis_index] = Some(tick_labels.iter().map(|x| x.0).collect()); - self.y_tick_labels[axis_index] = Some( - tick_labels - .iter() - .map(|x| { - CString::new(x.1.as_str()) - .unwrap_or_else(|_| panic!("String contains internal null bytes: {}", x.1)) - }) - .collect(), - ); - self.show_y_default_ticks[axis_index] = show_default; - self - } - - /// Set the plot flags, see the help for `PlotFlags` for what the available flags are - #[inline] - pub fn with_plot_flags(mut self, flags: &PlotFlags) -> Self { - self.plot_flags = flags.bits() as sys::ImPlotFlags; - self - } - - /// Set the axis flags for the X axis in this plot - #[inline] - pub fn with_x_axis_flags(mut self, flags: &AxisFlags) -> Self { - self.x_flags = flags.bits() as sys::ImPlotAxisFlags; - self - } - - /// Set the axis flags for the selected Y axis in this plot - #[inline] - pub fn with_y_axis_flags(mut self, y_axis_choice: YAxisChoice, flags: &AxisFlags) -> Self { - let axis_index = y_axis_choice as usize; - self.y_flags[axis_index] = flags.bits() as sys::ImPlotAxisFlags; - self - } - - /// Set the legend location, orientation and whether it is to be drawn outside the plot - #[rustversion::attr(since(1.48), doc(alias = "SetLegendLocation"))] - #[inline] - pub fn with_legend_location( - mut self, - location: &PlotLocation, - orientation: &PlotOrientation, - outside: bool, - ) -> Self { - self.legend_configuration = Some((*location, *orientation, outside)); - self - } - - /// Internal helper function to set axis limits in case they are specified. - fn maybe_set_axis_limits(&self) { - // Limit-setting can either happen via direct limits or through linked limits. The version - // of implot we link to here has different APIs for the two (separate per-axis calls for - // direct, and one call for everything together for linked), hence the code here is a bit - // clunky and takes the two approaches separately instead of a unified "match". - - // --- Direct limit-setting --- - if let Some(AxisLimitSpecification::Single(limits, condition)) = &self.x_limits { - unsafe { - sys::ImPlot_SetNextPlotLimitsX( - limits.Min, - limits.Max, - *condition as sys::ImGuiCond, - ); - } - } - - self.y_limits - .iter() - .enumerate() - .for_each(|(k, limit_spec)| { - if let Some(AxisLimitSpecification::Single(limits, condition)) = limit_spec { - unsafe { - sys::ImPlot_SetNextPlotLimitsY( - limits.Min, - limits.Max, - *condition as sys::ImGuiCond, - k as i32, - ); - } - } - }); - - // --- Linked limit-setting --- - let (xmin_pointer, xmax_pointer) = - if let Some(AxisLimitSpecification::Linked(value)) = &self.x_limits { - let mut borrowed = value.borrow_mut(); - ( - &mut (*borrowed).Min as *mut _, - &mut (*borrowed).Max as *mut _, - ) - } else { - (std::ptr::null_mut(), std::ptr::null_mut()) - }; - - let y_limit_pointers: Vec<(*mut f64, *mut f64)> = self - .y_limits - .iter() - .map(|limit_spec| { - if let Some(AxisLimitSpecification::Linked(value)) = limit_spec { - let mut borrowed = value.borrow_mut(); - ( - &mut (*borrowed).Min as *mut _, - &mut (*borrowed).Max as *mut _, - ) - } else { - (std::ptr::null_mut(), std::ptr::null_mut()) - } - }) - .collect(); - - unsafe { - // Calling this unconditionally here as calling it with all NULL pointers should not - // affect anything. In terms of unsafety, the pointers should be OK as long as any plot - // struct that has an Rc to the same data is alive. - sys::ImPlot_LinkNextPlotLimits( - xmin_pointer, - xmax_pointer, - y_limit_pointers[0].0, - y_limit_pointers[0].1, - y_limit_pointers[1].0, - y_limit_pointers[1].1, - y_limit_pointers[2].0, - y_limit_pointers[2].1, - ) - } - } - - /// Internal helper function to set tick labels in case they are specified. This does the - /// preparation work that is the same for both the X and Y axis plots, then calls the - /// "set next plot ticks" wrapper functions for both X and Y. - fn maybe_set_tick_labels(&self) { - // Show x ticks if they are available - if self.x_tick_positions.is_some() && !self.x_tick_positions.as_ref().unwrap().is_empty() { - let mut pointer_vec; // The vector of pointers we create has to have a longer lifetime - let labels_pointer = if let Some(labels_value) = &self.x_tick_labels { - pointer_vec = labels_value - .iter() - .map(|x| x.as_ptr() as *const c_char) - .collect::>(); - pointer_vec.as_mut_ptr() - } else { - std::ptr::null_mut() - }; - - unsafe { - sys::ImPlot_SetNextPlotTicksXdoublePtr( - self.x_tick_positions.as_ref().unwrap().as_ptr(), - self.x_tick_positions.as_ref().unwrap().len() as i32, - labels_pointer, - self.show_x_default_ticks, - ) - } - } - - self.y_tick_positions - .iter() - .zip(self.y_tick_labels.iter()) - .zip(self.show_y_default_ticks.iter()) - .enumerate() - .for_each(|(k, ((positions, labels), show_defaults))| { - if positions.is_some() && !positions.as_ref().unwrap().is_empty() { - // The vector of pointers we create has to have a longer lifetime - let mut pointer_vec; - let labels_pointer = if let Some(labels_value) = &labels { - pointer_vec = labels_value - .iter() - .map(|x| x.as_ptr() as *const c_char) - .collect::>(); - pointer_vec.as_mut_ptr() - } else { - std::ptr::null_mut() - }; - - unsafe { - sys::ImPlot_SetNextPlotTicksYdoublePtr( - positions.as_ref().unwrap().as_ptr(), - positions.as_ref().unwrap().len() as i32, - labels_pointer, - *show_defaults, - k as i32, - ) - } - } - }); - } - - /// Attempt to show the plot. If this returns a token, the plot will actually - /// be drawn. In this case, use the drawing functionality to draw things on the - /// plot, and then call `end()` on the token when done with the plot. - /// If none was returned, that means the plot is not rendered. - /// - /// For a convenient implementation of all this, use [`build()`](struct.Plot.html#method.build) - /// instead. - #[rustversion::attr(since(1.48), doc(alias = "BeginPlot"))] - pub fn begin(&self, plot_ui: &PlotUi) -> Option { - self.maybe_set_axis_limits(); - self.maybe_set_tick_labels(); - - let should_render = unsafe { - let size_vec: ImVec2 = ImVec2 { - x: self.size[0], - y: self.size[1], - }; - sys::ImPlot_BeginPlot( - self.title.as_ptr(), - self.x_label.as_ptr(), - self.y_label.as_ptr(), - size_vec, - self.plot_flags, - self.x_flags, - self.y_flags[0], - self.y_flags[1], - self.y_flags[2], - ) - }; - - if should_render { - // Configure legend location, if one was set. This has to be called between begin() and - // end(), but since only the last call to it actually affects the outcome, I'm adding - // it here instead of as a freestanding function. If this is too restrictive (for - // example, if you want to set the location based on code running _during_ the plotting - // for some reason), file an issue and we'll move it. - if let Some(legend_config) = &self.legend_configuration { - // We introduce variables with typechecks here to safeguard against accidental - // changes in order in the config tuple - let location: PlotLocation = legend_config.0; - let orientation: PlotOrientation = legend_config.1; - let outside_plot: bool = legend_config.2; - unsafe { - sys::ImPlot_SetLegendLocation(location as i32, orientation as i32, outside_plot) - } - } - - Some(PlotToken { - context: plot_ui.context, - plot_title: self.title.clone(), - }) - } else { - // In contrast with imgui windows, end() does not have to be - // called if we don't render. This is more like an imgui popup modal. - None - } - } - - /// Creates a window and runs a closure to construct the contents. This internally - /// calls `begin` and `end`. - /// - /// Note: the closure is not called if ImPlot::BeginPlot() returned - /// false - TODO(4bb4) figure out if this is if things are not rendered - #[rustversion::attr(since(1.48), doc(alias = "BeginPlot"))] - #[rustversion::attr(since(1.48), doc(alias = "EndPlot"))] - pub fn build(self, plot_ui: &PlotUi, f: F) { - if let Some(token) = self.begin(plot_ui) { - f(); - token.end() - } - } + pub fn build(self, plot_ui: &PlotUi, f: F) { + if let Some(token) = self.begin(plot_ui) { + f(); + token.end() + } + } } -/// Tracks a plot that must be ended by calling `.end()` pub struct PlotToken { - context: *const Context, - /// For better error messages - plot_title: CString, + context: *const Context, + plot_title: CString, } impl PlotToken { - /// End a previously begin()'ed plot. - #[rustversion::attr(since(1.48), doc(alias = "EndPlot"))] - pub fn end(mut self) { - self.context = std::ptr::null(); - unsafe { sys::ImPlot_EndPlot() }; - } + pub fn end(mut self) { + self.context = std::ptr::null(); + unsafe { sys::ImPlot_EndPlot() }; + } } impl Drop for PlotToken { - fn drop(&mut self) { - if !self.context.is_null() && !std::thread::panicking() { - panic!( - "Warning: A PlotToken for plot \"{:?}\" was not called end() on", - self.plot_title - ); - } - } + fn drop(&mut self) { + if !self.context.is_null() && !std::thread::panicking() { + panic!( + "warning a plottoken for plot \"{:?}\" was not called end() on.", + self.plot_title + ); + } + } } diff --git a/src/plot_elements.rs b/src/plot_elements.rs index fc1ab4f..8b13789 100644 --- a/src/plot_elements.rs +++ b/src/plot_elements.rs @@ -1,435 +1 @@ -//! # Plot elements module -//! -//! This module defines the various structs that can be used for drawing different things such -//! as lines, bars, scatter plots and text in a plot. For the module to create plots themselves, -//! see `plot`. -use crate::sys; -use std::ffi::CString; -use std::os::raw::c_char; -pub use crate::sys::ImPlotPoint; - -// --- Actual plotting functionality ------------------------------------------------------------- -/// Struct to provide functionality for plotting a line in a plot. -pub struct PlotLine { - /// Label to show in the legend for this line - label: CString, -} - -impl PlotLine { - /// Create a new line to be plotted. Does not draw anything yet. - /// - /// # Panics - /// Will panic if the label string contains internal null bytes. - pub fn new(label: &str) -> Self { - Self { - label: CString::new(label) - .unwrap_or_else(|_| panic!("Label string has internal null bytes: {}", label)), - } - } - - /// Plot a line. Use this in closures passed to [`Plot::build()`](struct.Plot.html#method.build) - pub fn plot(&self, x: &[f64], y: &[f64]) { - // If there is no data to plot, we stop here - if x.len().min(y.len()) == 0 { - return; - } - unsafe { - sys::ImPlot_PlotLinedoublePtrdoublePtr( - self.label.as_ptr() as *const c_char, - x.as_ptr(), - y.as_ptr(), - x.len().min(y.len()) as i32, // "as" casts saturate as of Rust 1.45. This is safe here. - 0, // No offset - std::mem::size_of::() as i32, // Stride, set to one f64 for the standard use case - ); - } - } -} - -/// Struct to provide functionality for plotting a line in a plot with stairs style. -pub struct PlotStairs { - /// Label to show in the legend for this line - label: CString, -} - -impl PlotStairs { - /// Create a new line to be plotted. Does not draw anything yet. - /// - /// # Panics - /// Will panic if the label string contains internal null bytes. - pub fn new(label: &str) -> Self { - Self { - label: CString::new(label) - .unwrap_or_else(|_| panic!("Label string has internal null bytes: {}", label)), - } - } - - /// Plot a stairs style line. Use this in closures passed to - /// [`Plot::build()`](struct.Plot.html#method.build) - pub fn plot(&self, x: &[f64], y: &[f64]) { - // If there is no data to plot, we stop here - if x.len().min(y.len()) == 0 { - return; - } - unsafe { - sys::ImPlot_PlotStairsdoublePtrdoublePtr( - self.label.as_ptr() as *const c_char, - x.as_ptr(), - y.as_ptr(), - x.len().min(y.len()) as i32, // "as" casts saturate as of Rust 1.45. This is safe here. - 0, // No offset - std::mem::size_of::() as i32, // Stride, set to one f64 for the standard use case - ); - } - } -} - -/// Struct to provide functionality for creating a scatter plot -pub struct PlotScatter { - /// Label to show in the legend for this scatter plot - /// - /// # Panics - /// Will panic if the label string contains internal null bytes. - label: CString, -} - -impl PlotScatter { - /// Create a new scatter plot to be shown. Does not draw anything yet. - pub fn new(label: &str) -> Self { - Self { - label: CString::new(label) - .unwrap_or_else(|_| panic!("Label string has internal null bytes: {}", label)), - } - } - - /// Draw a previously-created scatter plot. Use this in closures passed to - /// [`Plot::build()`](struct.Plot.html#method.build) - pub fn plot(&self, x: &[f64], y: &[f64]) { - // If there is no data to plot, we stop here - if x.len().min(y.len()) == 0 { - return; - } - unsafe { - sys::ImPlot_PlotScatterdoublePtrdoublePtr( - self.label.as_ptr() as *const c_char, - x.as_ptr(), - y.as_ptr(), - x.len().min(y.len()) as i32, // "as" casts saturate as of Rust 1.45. This is safe here. - 0, // No offset - std::mem::size_of::() as i32, // Stride, set to one f64 for the standard use case - ); - } - } -} - -/// Struct to provide bar plotting functionality. -pub struct PlotBars { - /// Label to show in the legend for this line - label: CString, - - /// Width of the bars, in plot coordinate terms - bar_width: f64, - - /// Horizontal bar mode - horizontal_bars: bool, -} - -impl PlotBars { - /// Create a new bar plot to be shown. Defaults to drawing vertical bars. - /// Does not draw anything yet. - /// - /// # Panics - /// Will panic if the label string contains internal null bytes. - pub fn new(label: &str) -> Self { - Self { - label: CString::new(label) - .unwrap_or_else(|_| panic!("Label string has internal null bytes: {}", label)), - bar_width: 0.67, // Default value taken from C++ implot - horizontal_bars: false, - } - } - - /// Set the width of the bars - pub fn with_bar_width(mut self, bar_width: f64) -> Self { - self.bar_width = bar_width; - self - } - - /// Set the bars to be horizontal (default is vertical) - pub fn with_horizontal_bars(mut self) -> Self { - self.horizontal_bars = true; - self - } - - /// Draw a previously-created bar plot. Use this in closures passed to - /// [`Plot::build()`](struct.Plot.html#method.build). The `axis_positions` - /// specify where on the corresponding axis (X for vertical mode, Y for horizontal mode) the - /// bar is drawn, and the `bar_values` specify what values the bars have. - pub fn plot(&self, axis_positions: &[f64], bar_values: &[f64]) { - let number_of_points = axis_positions.len().min(bar_values.len()); - // If there is no data to plot, we stop here - if number_of_points == 0 { - return; - } - unsafe { - // C++ implot has separate functions for the two variants, but the interfaces - // are the same, so they are unified here. The x and y values have different - // meanings though, hence the swapping around before they are passed to the - // plotting function. - let (plot_function, x, y); - if self.horizontal_bars { - plot_function = sys::ImPlot_PlotBarsHdoublePtrdoublePtr - as unsafe extern "C" fn( - *const c_char, - *const f64, - *const f64, - i32, - f64, - i32, - i32, - ); - x = bar_values; - y = axis_positions; - } else { - plot_function = sys::ImPlot_PlotBarsdoublePtrdoublePtr - as unsafe extern "C" fn( - *const c_char, - *const f64, - *const f64, - i32, - f64, - i32, - i32, - ); - x = axis_positions; - y = bar_values; - }; - - plot_function( - self.label.as_ptr() as *const c_char, - x.as_ptr(), - y.as_ptr(), - number_of_points as i32, // "as" casts saturate as of Rust 1.45. This is safe here. - self.bar_width, - 0, // No offset - std::mem::size_of::() as i32, // Stride, set to one f64 for the standard use case - ); - } - } -} - -/// Struct to provide functionality for adding text within a plot -pub struct PlotText { - /// Label to show in plot - label: CString, - - /// X component of the pixel offset to be used. Will be used independently of the actual plot - /// scaling. Defaults to 0. - pixel_offset_x: f32, - - /// Y component of the pixel offset to be used. Will be used independently of the actual plot - /// scaling. Defaults to 0. - pixel_offset_y: f32, -} - -impl PlotText { - /// Create a new text label to be shown. Does not draw anything yet. - /// - /// # Panics - /// Will panic if the label string contains internal null bytes. - pub fn new(label: &str) -> Self { - Self { - label: CString::new(label) - .unwrap_or_else(|_| panic!("Label string has internal null bytes: {}", label)), - pixel_offset_x: 0.0, - pixel_offset_y: 0.0, - } - } - - /// Add a pixel offset to the text to be plotted. This offset will be independent of the - /// scaling of the plot itself. - pub fn with_pixel_offset(mut self, offset_x: f32, offset_y: f32) -> Self { - self.pixel_offset_x = offset_x; - self.pixel_offset_y = offset_y; - self - } - - /// Draw the text label in the plot at the given position, optionally vertically. Use this in - /// closures passed to [`Plot::build()`](struct.Plot.html#method.build) - pub fn plot(&self, x: f64, y: f64, vertical: bool) { - // If there is nothing to show, don't do anything - if self.label.as_bytes().is_empty() { - return; - } - - unsafe { - sys::ImPlot_PlotText( - self.label.as_ptr() as *const c_char, - x, - y, - vertical, - sys::ImVec2 { - x: self.pixel_offset_x, - y: self.pixel_offset_y, - }, - ); - } - } -} - -/// Struct to provide functionality for creating headmaps. -pub struct PlotHeatmap { - /// Label to show in plot - label: CString, - - /// Scale range of the values shown. If this is set to `None`, the scale - /// is computed based on the values given to the `plot` function. If there - /// is a value, the tuple is interpreted as `(minimum, maximum)`. - scale_range: Option<(f64, f64)>, - - /// Label C style format string, this is shown when a a value point is hovered. - /// None means don't show a label. The label is stored directly as an ImString because - /// that is what's needed for the plot call anyway. Conversion is done in the setter. - label_format: Option, - - /// Lower left point for the bounding rectangle. This is called `bounds_min` in the C++ code. - drawarea_lower_left: ImPlotPoint, - - /// Upper right point for the bounding rectangle. This is called `bounds_max` in the C++ code. - drawarea_upper_right: ImPlotPoint, -} - -impl PlotHeatmap { - /// Create a new heatmap to be shown. Uses the same defaults as the C++ version (see code for - /// what those are), aside from the `scale_min` and `scale_max` values, which default to - /// `None`, which is interpreted as "automatically make the scale fit the data". Does not draw - /// anything yet. - pub fn new(label: &str) -> Self { - Self { - label: CString::new(label) - .unwrap_or_else(|_| panic!("Label string has internal null bytes: {}", label)), - scale_range: None, - label_format: Some(CString::new("%.1f").unwrap()), - drawarea_lower_left: ImPlotPoint { x: 0.0, y: 0.0 }, - drawarea_upper_right: ImPlotPoint { x: 1.0, y: 1.0 }, - } - } - - /// Specify the scale for the shown colors by minimum and maximum value. - pub fn with_scale(mut self, scale_min: f64, scale_max: f64) -> Self { - self.scale_range = Some((scale_min, scale_max)); - self - } - - /// Specify the label format for hovered data points. `None` means no label is shown. - /// - /// # Panics - /// Will panic if the label format string contains internal null bytes. - /// - /// # Safety - /// This function directly sets the format string of a C formatting function (`sprintf`). As - /// such, one has to check oneself that the formatted numbers do not yield strings exceeding - /// the length of the buffer used in the C++ code (32 bytes right now, this might change in the - /// future, make sure to check in the vendored-in C++ code to be sure). While the string is - /// not used until later and hence the function here is strictly speaking safe, the effect - /// of this function can lead to unsoundness later, hence it is marked as unsafe. - pub unsafe fn with_label_format(mut self, label_format: Option<&str>) -> Self { - self.label_format = label_format.map(|x| { - CString::new(x) - .unwrap_or_else(|_| panic!("Format label string has internal null bytes: {}", x)) - }); - self - } - - /// Specify the drawing area as the lower left and upper right point - pub fn with_drawing_area(mut self, lower_left: ImPlotPoint, upper_right: ImPlotPoint) -> Self { - self.drawarea_lower_left = lower_left; - self.drawarea_upper_right = upper_right; - self - } - - /// Plot the heatmap, with the given values (assumed to be in row-major order), - /// number of rows and number of columns. - pub fn plot(&self, values: &[f64], number_of_rows: u32, number_of_cols: u32) { - // If no range was given, determine that range - let scale_range = self.scale_range.unwrap_or_else(|| { - let mut min_seen = values[0]; - let mut max_seen = values[0]; - values.iter().for_each(|value| { - min_seen = min_seen.min(*value); - max_seen = max_seen.max(*value); - }); - (min_seen, max_seen) - }); - - unsafe { - sys::ImPlot_PlotHeatmapdoublePtr( - self.label.as_ptr() as *const c_char, - values.as_ptr(), - number_of_rows as i32, // Not sure why C++ code uses a signed value here - number_of_cols as i32, // Not sure why C++ code uses a signed value here - scale_range.0, - scale_range.1, - // "no label" is taken as null pointer in the C++ code, but we're using - // option types in the Rust bindings because they are more idiomatic. - if self.label_format.is_some() { - self.label_format.as_ref().unwrap().as_ptr() as *const c_char - } else { - std::ptr::null() - }, - self.drawarea_lower_left, - self.drawarea_upper_right, - ); - } - } -} - -/// Struct to provide stem plotting functionality. -pub struct PlotStems { - /// Label to show in the legend for this line - label: CString, - - /// Reference value for the y value, which the stems are "with respect to" - reference_y: f64, -} - -impl PlotStems { - /// Create a new stem plot to be shown. Does not draw anything by itself, call - /// [`PlotStems::plot`] on the struct for that. - pub fn new(label: &str) -> Self { - Self { - label: CString::new(label) - .unwrap_or_else(|_| panic!("Label string has internal null bytes: {}", label)), - reference_y: 0.0, // Default value taken from C++ implot - } - } - - /// Set the reference y value for the stems - pub fn with_reference_y(mut self, reference_y: f64) -> Self { - self.reference_y = reference_y; - self - } - - /// Draw a previously-created stem plot. Use this in closures passed to - /// [`Plot::build()`](struct.Plot.html#method.build). The `axis_positions` specify where on the - /// X axis the stems are drawn, and the `stem_values` specify what values the stems have. - pub fn plot(&self, axis_positions: &[f64], stem_values: &[f64]) { - let number_of_points = axis_positions.len().min(stem_values.len()); - // If there is no data to plot, we stop here - if number_of_points == 0 { - return; - } - unsafe { - sys::ImPlot_PlotStemsdoublePtrdoublePtr( - self.label.as_ptr() as *const c_char, - axis_positions.as_ptr(), - stem_values.as_ptr(), - number_of_points as i32, // "as" casts saturate as of Rust 1.45. This is safe here. - self.reference_y, - 0, // No offset - std::mem::size_of::() as i32, // Stride, set to one f64 for the standard use case - ); - } - } -} diff --git a/src/rect.rs b/src/rect.rs new file mode 100644 index 0000000..ec95894 --- /dev/null +++ b/src/rect.rs @@ -0,0 +1,22 @@ +use sys::{ImPlotRect, ImVec4}; + +use crate::sys; + +pub fn drag_rect(rect: &mut ImPlotRect) { + unsafe { + sys::ImPlot_DragRect( + 0, + &mut rect.X.Min, + &mut rect.Y.Min, + &mut rect.X.Max, + &mut rect.Y.Max, + ImVec4 { + x: 1.0, + y: 0.0, + z: 1.0, + w: 0.4, + }, + 0, + ); + } +}