Implement edge_holder API

This commit is contained in:
KitsuneAlex 2024-05-02 04:14:21 +02:00
parent 08020caec8
commit 9d050afdad
No known key found for this signature in database
GPG Key ID: 6B0CE864BB69B7D0
2 changed files with 16 additions and 16 deletions

View File

@ -341,25 +341,27 @@ MSDF_API void msdf_contour_free(msdf_contour_handle contour) {
msdf_delete(reinterpret_cast<msdfgen::Contour*>(contour));
}
// msdf_edge
// msdf_edge_holder
MSDF_API int msdf_edge_alloc(msdf_edge_holder_handle* edge) {
int msdf_edge_alloc(msdf_segment_handle segment, msdf_edge_holder_handle* edge) {
if(edge == nullptr || segment == nullptr) {
return MSDF_ERR_INVALID_ARG;
}
*edge = reinterpret_cast<msdf_edge_holder_handle>(msdf_new<msdfgen::EdgeHolder>(reinterpret_cast<msdfgen::EdgeSegment*>(segment)));
return MSDF_SUCCESS;
}
MSDF_API int msdf_edge_add_segment(msdf_edge_holder_handle edge, msdf_segment_handle segment) {
int msdf_edge_get_segment(msdf_edge_holder_handle edge, msdf_segment_handle* segment) {
if(edge == nullptr || segment == nullptr) {
return MSDF_ERR_INVALID_ARG;
}
msdfgen::EdgeSegment* p_segment = *reinterpret_cast<msdfgen::EdgeHolder*>(edge);
*segment = reinterpret_cast<msdf_segment_handle>(p_segment);
return MSDF_SUCCESS;
}
MSDF_API int msdf_edge_get_segment(msdf_edge_holder_handle edge, size_t index, msdf_segment_handle* segment) {
return MSDF_SUCCESS;
}
MSDF_API int msdf_edge_get_segment_count(msdf_edge_holder_handle edge, size_t* segment_count) {
return MSDF_SUCCESS;
}
MSDF_API void msdf_edge_free(msdf_edge_holder_handle edge) {
void msdf_edge_free(msdf_edge_holder_handle edge) {
msdf_delete(reinterpret_cast<msdfgen::EdgeHolder*>(edge));
}
// msdf_segment

View File

@ -165,10 +165,8 @@ MSDF_API int msdf_contour_get_winding(msdf_contour_handle contour, int* winding)
MSDF_API int msdf_contour_reverse(msdf_contour_handle contour);
MSDF_API void msdf_contour_free(msdf_contour_handle contour);
MSDF_API int msdf_edge_alloc(msdf_edge_holder_handle* edge);
MSDF_API int msdf_edge_add_segment(msdf_edge_holder_handle edge, msdf_segment_handle segment);
MSDF_API int msdf_edge_get_segment(msdf_edge_holder_handle edge, size_t index, msdf_segment_handle* segment);
MSDF_API int msdf_edge_get_segment_count(msdf_edge_holder_handle edge, size_t* segment_count);
MSDF_API int msdf_edge_alloc(msdf_segment_handle segment, msdf_edge_holder_handle* edge);
MSDF_API int msdf_edge_get_segment(msdf_edge_holder_handle edge, msdf_segment_handle* segment);
MSDF_API void msdf_edge_free(msdf_edge_holder_handle edge);
MSDF_API int msdf_segment_alloc(int type, msdf_segment_handle* segment);