struct cv::UMatData

#include <mat.hpp>

struct UMatData
{
    // enums

    enum
    {
        COPY_ON_MAP          =1,
        HOST_COPY_OBSOLETE   =2,
        DEVICE_COPY_OBSOLETE =4,
        TEMP_UMAT            =8,
        TEMP_COPIED_UMAT     =24,
        USER_ALLOCATED       =32,
        DEVICE_MEM_MAPPED    =64,
    };

    // fields

    int allocatorFlags_;
    const MatAllocator* currAllocator;
    uchar* data;
    int flags;
    void* handle;
    int mapcount;
    uchar* origdata;
    UMatData* originalUMatData;
    const MatAllocator* prevAllocator;
    int refcount;
    size_t size;
    int urefcount;
    void* userdata;

    // construction

    UMatData(const MatAllocator* allocator);

    // methods

    bool
    copyOnMap() const;

    bool
    deviceCopyObsolete() const;

    bool
    deviceMemMapped() const;

    bool
    hostCopyObsolete() const;

    void
    lock();

    void
    markDeviceCopyObsolete(bool flag);

    void
    markDeviceMemMapped(bool flag);

    void
    markHostCopyObsolete(bool flag);

    bool
    tempCopiedUMat() const;

    bool
    tempUMat() const;

    void
    unlock();
};