namespace cv::ogl

namespace ogl {

// namespaces

namespace cv::ogl::ocl;

// enums

enum RenderModes;

// classes

class Arrays;
class Buffer;
class Texture2D;

// global functions

void
convertFromGLTexture2D(
    const Texture2D& texture,
    OutputArray dst
    );

void
convertToGLTexture2D(
    InputArray src,
    Texture2D& texture
    );

UMat
mapGLBuffer(
    const Buffer& buffer,
    int accessFlags = ACCESS_READ|ACCESS_WRITE
    );

void
render(
    const Texture2D& tex,
    Rect_<double> wndRect = Rect_<double>(0.0, 0.0, 1.0, 1.0),
    Rect_<double> texRect = Rect_<double>(0.0, 0.0, 1.0, 1.0)
    );

void
render(
    const Arrays& arr,
    int mode = POINTS,
    Scalar color = Scalar::all(255)
    );

void
render(
    const Arrays& arr,
    InputArray indices,
    int mode = POINTS,
    Scalar color = Scalar::all(255)
    );

void
unmapGLBuffer(UMat& u);

} // namespace ogl