mirror of
https://github.com/ocornut/imgui.git
synced 2024-11-24 13:49:01 +08:00
Merge branch 'master' into navigation
This commit is contained in:
commit
67191badc2
@ -162,14 +162,12 @@ static inline ImVec2 ImMul(const ImVec2& lhs, const ImVec2& rhs)
|
|||||||
|
|
||||||
// We call C++ constructor on own allocated memory via the placement "new(ptr) Type()" syntax.
|
// We call C++ constructor on own allocated memory via the placement "new(ptr) Type()" syntax.
|
||||||
// Defining a custom placement new() with a dummy parameter allows us to bypass including <new> which on some platforms complains when user has disabled exceptions.
|
// Defining a custom placement new() with a dummy parameter allows us to bypass including <new> which on some platforms complains when user has disabled exceptions.
|
||||||
struct ImNewAllocDummy {};
|
|
||||||
struct ImNewPlacementDummy {};
|
struct ImNewPlacementDummy {};
|
||||||
inline void* operator new(size_t, ImNewPlacementDummy, void* ptr) { return ptr; }
|
inline void* operator new(size_t, ImNewPlacementDummy, void* ptr) { return ptr; }
|
||||||
inline void operator delete(void*, ImNewPlacementDummy, void*) {} // This is only required so we can use the symetrical new()
|
inline void operator delete(void*, ImNewPlacementDummy, void*) {} // This is only required so we can use the symetrical new()
|
||||||
inline void operator delete(void* p, ImNewAllocDummy) { ImGui::MemFree(p); }
|
#define IM_PLACEMENT_NEW(_PTR) new(ImNewPlacementDummy(), _PTR)
|
||||||
#define IM_PLACEMENT_NEW(_PTR) new(ImNewPlacementDummy(), _PTR)
|
#define IM_NEW(_TYPE) new(ImNewPlacementDummy(), ImGui::MemAlloc(sizeof(_TYPE))) _TYPE
|
||||||
#define IM_NEW(_TYPE) new(ImNewPlacementDummy(), ImGui::MemAlloc(sizeof(_TYPE))) _TYPE
|
template <typename T> void IM_DELETE(T*& p) { if (p) { p->~T(); ImGui::MemFree(p); p = NULL; } }
|
||||||
#define IM_DELETE(_PTR) delete(ImNewAllocDummy(), _PTR), _PTR = NULL
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Types
|
// Types
|
||||||
|
Loading…
Reference in New Issue
Block a user