class cv::MatAllocator

Custom array allocator.

#include <mat.hpp>

class MatAllocator
{
public:
    // methods

    virtual
    UMatData*
    allocate(
        int dims,
        const int* sizes,
        int type,
        void* data,
        size_t* step,
        int flags,
        UMatUsageFlags usageFlags
        ) const = 0;

    virtual
    bool
    allocate(
        UMatData* data,
        int accessflags,
        UMatUsageFlags usageFlags
        ) const = 0;

    virtual
    void
    copy(
        UMatData* srcdata,
        UMatData* dstdata,
        int dims,
        const size_t sz [],
        const size_t srcofs [],
        const size_t srcstep [],
        const size_t dstofs [],
        const size_t dststep [],
        bool sync
        ) const;

    virtual
    void
    deallocate(UMatData* data) const = 0;

    virtual
    void
    download(
        UMatData* data,
        void* dst,
        int dims,
        const size_t sz [],
        const size_t srcofs [],
        const size_t srcstep [],
        const size_t dststep []
        ) const;

    virtual
    BufferPoolController*
    getBufferPoolController(const char* id = NULL) const;

    virtual
    void
    map(
        UMatData* data,
        int accessflags
        ) const;

    virtual
    void
    unmap(UMatData* data) const;

    virtual
    void
    upload(
        UMatData* data,
        const void* src,
        int dims,
        const size_t sz [],
        const size_t dstofs [],
        const size_t dststep [],
        const size_t srcstep []
        ) const;
};