Table of Contents

Class GLEquirectangularViewBlock

Namespace
VisioForge.Core.MediaBlocks.OpenGL
Assembly
VisioForge.Core.dll

OpenGL-accelerated equirectangular view block for immersive 360-degree and VR video processing. Provides GPU-accelerated transformation of equirectangular (spherical) video content into perspective views with interactive controls for yaw, pitch, roll, and field of view, enabling VR video playback and immersive media experiences. Implements the VisioForge.Core.MediaBlocks.MediaBlock. Implements the VisioForge.Core.MediaBlocks.IMediaBlockInternals. Implements the IDisposable.

public class GLEquirectangularViewBlock : MediaBlock, IMediaBlock, IDisposable, IMediaBlockInternals, IVRVideoControl

Inheritance

Implements

Inherited Members

Extension Methods

Constructors

GLEquirectangularViewBlock(GLEquirectangularViewSettings)

Initializes a new instance of the VisioForge.Core.MediaBlocks.OpenGL.GLEquirectangularViewBlock class with the specified VR view settings. Creates the necessary input and output pads for processing 360-degree video with interactive perspective control.

public GLEquirectangularViewBlock(GLEquirectangularViewSettings settings)

Parameters

settings GLEquirectangularViewSettings

The equirectangular view settings that define the VR transformation and interaction parameters.

Properties

FieldOfView

Gets or sets the field of view angle in degrees for zoom and perspective control.

public float FieldOfView { get; set; }

Property Value

float

Input

Gets the primary input pad for receiving equirectangular video frames.

public override MediaBlockPad Input { get; }

Property Value

MediaBlockPad

Inputs

Gets all input pads available on this block (single input for video processing).

public override MediaBlockPad[] Inputs { get; }

Property Value

MediaBlockPad[]

Mode

Gets or sets the VR viewing mode for different immersive display configurations.

public VRMode Mode { get; set; }

Property Value

VRMode

Output

Gets the primary output pad for providing perspective-transformed video frames.

public override MediaBlockPad Output { get; }

Property Value

MediaBlockPad

Outputs

Gets all output pads available on this block (single output for processed video).

public override MediaBlockPad[] Outputs { get; }

Property Value

MediaBlockPad[]

Pitch

Gets or sets the pitch rotation angle in degrees for vertical orientation control.

public float Pitch { get; set; }

Property Value

float

Roll

Gets or sets the roll rotation angle in degrees for rotational orientation control.

public float Roll { get; set; }

Property Value

float

Settings

Gets the equirectangular view settings that control VR perspective transformations and view parameters.

public GLEquirectangularViewSettings Settings { get; }

Property Value

GLEquirectangularViewSettings

Type

Gets the media block type identifier for OpenGL equirectangular view operations.

public override MediaBlockType Type { get; }

Property Value

MediaBlockType

Yaw

Gets or sets the yaw rotation angle in degrees for horizontal orientation control.

public float Yaw { get; set; }

Property Value

float

Methods

Build()

Builds and initializes the OpenGL equirectangular view block within the pipeline context. Creates the GStreamer VR view element, applies the transformation settings, and establishes the necessary pad connections for processing 360-degree video with interactive perspective control.

public override bool Build()

Returns

bool

true if the equirectangular view block was successfully built and configured; otherwise, false.

CleanUp()

Cleans up all resources associated with the OpenGL equirectangular view operations, including GStreamer elements and GPU VR shader programs.

public void CleanUp()

Dispose(bool)

Releases unmanaged and managed resources used by the OpenGL equirectangular view block. Properly disposes of GStreamer elements and GPU VR transformation resources.

protected override void Dispose(bool disposing)

Parameters

disposing bool

true to release both managed and unmanaged resources; false to release only unmanaged resources.

GetCore()

Gets the core GStreamer element wrapper for advanced configuration and monitoring.

public BaseElement GetCore()

Returns

BaseElement

The BaseElement wrapper providing access to the underlying GStreamer equirectangular view element.

GetElement()

Gets the native GStreamer element for direct GStreamer pipeline integration.

public Element GetElement()

Returns

Element

The native Gst.Element representing the equirectangular VR view filter.

IsAvailable()

Determines whether OpenGL equirectangular view functionality is available on the current system. Requires OpenGL support and appropriate GStreamer OpenGL VR transformation plugins to be installed.

public static bool IsAvailable()

Returns

bool

true if 360-degree VR view operations are supported; otherwise, false.

IsModeSupported(VRMode)

Checks if a specific VR mode is supported by the implementing component (e.g., video block, effect, or renderer).

public bool IsModeSupported(VRMode mode)

Parameters

mode VRMode

The VisioForge.Core.Types.VRMode to check for support.

Returns

bool

true if the mode is supported; otherwise, false.

Update()

Updates the VR view settings dynamically, applying new perspective parameters and view controls in real-time.

public void Update()

IMediaBlockInternals.SetContext(MediaBlocksPipeline)

Sets the pipeline context for this OpenGL equirectangular view block, providing access to the parent pipeline and logging context.

void IMediaBlockInternals.SetContext(MediaBlocksPipeline pipeline)

Parameters

pipeline MediaBlocksPipeline

The parent MediaBlocks pipeline containing this equirectangular view block.

SettingsChanged

Occurs when VR view settings are changed, providing notification for dynamic view parameter updates.

public event EventHandler<EventArgs> SettingsChanged

Event Type

EventHandler<EventArgs>

See Also