@ -1293,7 +1293,7 @@ struct ImVector
inline int _grow_capacity ( int sz ) const { int new_capacity = Capacity ? ( Capacity + Capacity / 2 ) : 8 ; return new_capacity > sz ? new_capacity : sz ; }
inline int _grow_capacity ( int sz ) const { int new_capacity = Capacity ? ( Capacity + Capacity / 2 ) : 8 ; return new_capacity > sz ? new_capacity : sz ; }
inline void resize ( int new_size ) { if ( new_size > Capacity ) reserve ( _grow_capacity ( new_size ) ) ; Size = new_size ; }
inline void resize ( int new_size ) { if ( new_size > Capacity ) reserve ( _grow_capacity ( new_size ) ) ; Size = new_size ; }
inline void resize ( int new_size , const T & v ) { if ( new_size > Capacity ) reserve ( _grow_capacity ( new_size ) ) ; if ( new_size > Size ) for ( int n = Size ; n < new_size ; n + + ) memcpy ( & Data [ n ] , & v , sizeof ( v ) ) ; Size = new_size ; }
inline void resize ( int new_size , const T & v ) { if ( new_size > Capacity ) reserve ( _grow_capacity ( new_size ) ) ; if ( new_size > Size ) for ( int n = Size ; n < new_size ; n + + ) memcpy ( & Data [ n ] , & v , sizeof ( v ) ) ; Size = new_size ; }
inline void shrink ( int new_size ) { IM_ASSERT ( new_size < = Size ) ; Size = new_size ; }
inline void shrink ( int new_size ) { IM_ASSERT ( new_size < = Size ) ; Size = new_size ; } // Resize a vector to a smaller size, guaranteed not to cause a reallocation
inline void reserve ( int new_capacity ) { if ( new_capacity < = Capacity ) return ; T * new_data = ( T * ) IM_ALLOC ( ( size_t ) new_capacity * sizeof ( T ) ) ; if ( Data ) { memcpy ( new_data , Data , ( size_t ) Size * sizeof ( T ) ) ; IM_FREE ( Data ) ; } Data = new_data ; Capacity = new_capacity ; }
inline void reserve ( int new_capacity ) { if ( new_capacity < = Capacity ) return ; T * new_data = ( T * ) IM_ALLOC ( ( size_t ) new_capacity * sizeof ( T ) ) ; if ( Data ) { memcpy ( new_data , Data , ( size_t ) Size * sizeof ( T ) ) ; IM_FREE ( Data ) ; } Data = new_data ; Capacity = new_capacity ; }
// NB: It is illegal to call push_back/push_front/insert with a reference pointing inside the ImVector data itself! e.g. v.push_back(v[10]) is forbidden.
// NB: It is illegal to call push_back/push_front/insert with a reference pointing inside the ImVector data itself! e.g. v.push_back(v[10]) is forbidden.
@ -1990,6 +1990,7 @@ struct ImDrawList
IMGUI_API void Clear ( ) ;
IMGUI_API void Clear ( ) ;
IMGUI_API void ClearFreeMemory ( ) ;
IMGUI_API void ClearFreeMemory ( ) ;
IMGUI_API void PrimReserve ( int idx_count , int vtx_count ) ;
IMGUI_API void PrimReserve ( int idx_count , int vtx_count ) ;
IMGUI_API void PrimUnreserve ( int idx_count , int vtx_count ) ;
IMGUI_API void PrimRect ( const ImVec2 & a , const ImVec2 & b , ImU32 col ) ; // Axis aligned rectangle (composed of two triangles)
IMGUI_API void PrimRect ( const ImVec2 & a , const ImVec2 & b , ImU32 col ) ; // Axis aligned rectangle (composed of two triangles)
IMGUI_API void PrimRectUV ( const ImVec2 & a , const ImVec2 & b , const ImVec2 & uv_a , const ImVec2 & uv_b , ImU32 col ) ;
IMGUI_API void PrimRectUV ( const ImVec2 & a , const ImVec2 & b , const ImVec2 & uv_a , const ImVec2 & uv_b , ImU32 col ) ;
IMGUI_API void PrimQuadUV ( const ImVec2 & a , const ImVec2 & b , const ImVec2 & c , const ImVec2 & d , const ImVec2 & uv_a , const ImVec2 & uv_b , const ImVec2 & uv_c , const ImVec2 & uv_d , ImU32 col ) ;
IMGUI_API void PrimQuadUV ( const ImVec2 & a , const ImVec2 & b , const ImVec2 & c , const ImVec2 & d , const ImVec2 & uv_a , const ImVec2 & uv_b , const ImVec2 & uv_c , const ImVec2 & uv_d , ImU32 col ) ;