gstgl.glmemory

Module for [GLMemory] class

class GLMemory

Types 1

GstGLMemory is a #GstGLBaseMemory subclass providing support for the mapping of OpenGL textures.

#GstGLMemory is created or wrapped through [gstgl.glbase_memory.GLBaseMemory.alloc] with #GstGLVideoAllocationParams.

Data is uploaded or downloaded from the GPU as is necessary.

The #GstCaps that is used for #GstGLMemory based buffers should contain the [gstgl.types.CAPS_FEATURE_MEMORY_GL_MEMORY] as a #GstCapsFeatures and should contain a 'texture-target' field with one of the #GstGLTextureTarget values as a string, i.e. some combination of 'texture-target=(string){2D, rectangle, external-oes}'.

Methods
void * _cPtr(Flag!"Dup" dup = No.Dup)
GType _gType() @property
GLMemory self()Returns `this`, for use in `with` statements.
gstgl.glbase_memory.GLBaseMemory mem() @propertyGet `mem` field. Returns: the parent #GstGLBaseMemory object
uint texId() @propertyGet `texId` field. Returns: the GL texture id for this memory
void texId(uint propval) @propertySet `texId` field. Params: propval = the GL texture id for this memory
gstgl.types.GLTextureTarget texTarget() @propertyGet `texTarget` field. Returns: the GL texture target for this memory
void texTarget(gstgl.types.GLTextureTarget propval) @propertySet `texTarget` field. Params: propval = the GL texture target for this memory
gstgl.types.GLFormat texFormat() @propertyGet `texFormat` field. Returns: the texture type
void texFormat(gstgl.types.GLFormat propval) @propertySet `texFormat` field. Params: propval = the texture type
gstvideo.video_info.VideoInfo info() @propertyGet `info` field. Returns: the texture's #GstVideoInfo
gstvideo.video_alignment.VideoAlignment valign() @propertyGet `valign` field. Returns: data alignment for system memory mapping
void valign(gstvideo.video_alignment.VideoAlignment propval) @propertySet `valign` field. Params: propval = data alignment for system memory mapping
uint plane() @propertyGet `plane` field. Returns: data plane in @info
void plane(uint propval) @propertySet `plane` field. Params: propval = data plane in @info
bool textureWrapped() @property
void textureWrapped(bool propval) @property
uint unpackLength() @property
void unpackLength(uint propval) @property
uint texWidth() @property
void texWidth(uint propval) @property
bool copyInto(uint texId, gstgl.types.GLTextureTarget target, gstgl.types.GLFormat texFormat, int width, int height)Copies glmem into the texture specified by texid. The format of texid is specified by texformat, width and height.
bool copyTeximage(uint texId, gstgl.types.GLTextureTarget outTarget, gstgl.types.GLFormat outTexFormat, int outWidth, int outHeight)Copies the texture in #GstGLMemory into the texture specified by texid, outtarget, outtexformat, outwidth and outheight.
void init_(gst.allocator.Allocator allocator, gst.memory.Memory parent, gstgl.glcontext.GLContext context, gstgl.types.GLTextureTarget target, gstgl.types.GLFormat texFormat, gst.allocation_params.AllocationParams params, gstvideo.video_info.VideoInfo info, uint plane, gstvideo.video_alignment.VideoAlignment valign, void * userData = null, glib.types.DestroyNotify notify = null)Initializes mem with the required parameters. info is assumed to have already have been modified with [gstvideo.videoinfo.VideoInfo.align].
bool readPixels(void * writePointer = null)Reads the texture in #GstGLMemory into writepointer if no buffer is bound to `GLPIXELPACKBUFFER`. Otherwise writepointer is the byte offset into the currently bound `GLPIXELPACKBUFFER` buffer to s...
void texsubimage(void * readPointer = null)Reads the texture in readpointer into glmem.
void initOnce()Initializes the GL Base Texture allocator. It is safe to call this function multiple times. This must be called before any other GstGLMemory operation.
Constructors
this(uint texId = uint.init, gstgl.types.GLTextureTarget texTarget = gstgl.types.GLTextureTarget.init, gstgl.types.GLFormat texFormat = gstgl.types.GLFormat.init, gstvideo.video_alignment.VideoAlignment valign = gstvideo.video_alignment.VideoAlignment.init, uint plane = uint.init, bool textureWrapped = bool.init, uint unpackLength = uint.init, uint texWidth = uint.init)Create a `glmemory.GLMemory` boxed type. Params: texId = the GL texture id for this memory texTarget = the GL texture target for this memory texFormat = the texture type valign = data alignment for...
this(void * ptr, Flag!"Take" take)