class cv::ocl::KernelArg

#include <ocl.hpp>

class KernelArg
{
public:
    // enums

    enum
    {
        LOCAL      =1,
        READ_ONLY  =2,
        WRITE_ONLY =4,
        READ_WRITE =6,
        CONSTANT   =8,
        PTR_ONLY   = 16,
        NO_SIZE    =256,
    };

    // fields

    int flags;
    int iwscale;
    UMat* m;
    const void* obj;
    size_t sz;
    int wscale;

    // construction

    KernelArg(
        int _flags,
        UMat* _m,
        int wscale = 1,
        int iwscale = 1,
        const void* _obj = 0,
        size_t _sz = 0
        );

    KernelArg();

    // methods

    static
    KernelArg
    Constant(const Mat& m);

    template <typename _Tp>
    static
    KernelArg
    Constant(
        const _Tp* arr,
        size_t n
        );

    static
    KernelArg
    Local();

    static
    KernelArg
    PtrReadOnly(const UMat& m);

    static
    KernelArg
    PtrReadWrite(const UMat& m);

    static
    KernelArg
    PtrWriteOnly(const UMat& m);

    static
    KernelArg
    ReadOnly(
        const UMat& m,
        int wscale = 1,
        int iwscale = 1
        );

    static
    KernelArg
    ReadOnlyNoSize(
        const UMat& m,
        int wscale = 1,
        int iwscale = 1
        );

    static
    KernelArg
    ReadWrite(
        const UMat& m,
        int wscale = 1,
        int iwscale = 1
        );

    static
    KernelArg
    ReadWriteNoSize(
        const UMat& m,
        int wscale = 1,
        int iwscale = 1
        );

    static
    KernelArg
    WriteOnly(
        const UMat& m,
        int wscale = 1,
        int iwscale = 1
        );

    static
    KernelArg
    WriteOnlyNoSize(
        const UMat& m,
        int wscale = 1,
        int iwscale = 1
        );
};