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, IVRVideoControlInheritance
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
settingsGLEquirectangularViewSettings-
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
Input
Gets the primary input pad for receiving equirectangular video frames.
public override MediaBlockPad Input { get; }Property Value
Inputs
Gets all input pads available on this block (single input for video processing).
public override MediaBlockPad[] Inputs { get; }Property Value
Mode
Gets or sets the VR viewing mode for different immersive display configurations.
public VRMode Mode { get; set; }Property Value
Output
Gets the primary output pad for providing perspective-transformed video frames.
public override MediaBlockPad Output { get; }Property Value
Outputs
Gets all output pads available on this block (single output for processed video).
public override MediaBlockPad[] Outputs { get; }Property Value
Pitch
Gets or sets the pitch rotation angle in degrees for vertical orientation control.
public float Pitch { get; set; }Property Value
Roll
Gets or sets the roll rotation angle in degrees for rotational orientation control.
public float Roll { get; set; }Property Value
Settings
Gets the equirectangular view settings that control VR perspective transformations and view parameters.
public GLEquirectangularViewSettings Settings { get; }Property Value
Type
Gets the media block type identifier for OpenGL equirectangular view operations.
public override MediaBlockType Type { get; }Property Value
Yaw
Gets or sets the yaw rotation angle in degrees for horizontal orientation control.
public float Yaw { get; set; }Property Value
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
-
trueif 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
disposingbool-
trueto release both managed and unmanaged resources;falseto 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
-
trueif 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
modeVRMode-
The VisioForge.Core.Types.VRMode to check for support.
Returns
- bool
-
trueif 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
pipelineMediaBlocksPipeline-
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