// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.

namespace Gst.Video {

	using System;
	using System.Collections;
	using System.Collections.Generic;
	using System.Runtime.InteropServices;

#region Autogenerated code
	public partial class VideoOverlayRectangle : Gst.MiniObject {

		[DllImport("gstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
		static extern IntPtr gst_video_overlay_rectangle_get_type();

		public static GLib.GType GType { 
			get {
				IntPtr raw_ret = gst_video_overlay_rectangle_get_type();
				GLib.GType ret = new GLib.GType(raw_ret);
				return ret;
			}
		}

		[DllImport("gstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
		static extern IntPtr gst_video_overlay_rectangle_copy(IntPtr raw);

		public Gst.Video.VideoOverlayRectangle Copy() {
			IntPtr raw_ret = gst_video_overlay_rectangle_copy(Handle);
			Gst.Video.VideoOverlayRectangle ret = raw_ret == IntPtr.Zero ? null : (Gst.Video.VideoOverlayRectangle) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Video.VideoOverlayRectangle), true);
			return ret;
		}

		[DllImport("gstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
		static extern int gst_video_overlay_rectangle_get_flags(IntPtr raw);

		public Gst.Video.VideoOverlayFormatFlags Flags { 
			get {
				int raw_ret = gst_video_overlay_rectangle_get_flags(Handle);
				Gst.Video.VideoOverlayFormatFlags ret = (Gst.Video.VideoOverlayFormatFlags) raw_ret;
				return ret;
			}
		}

		[DllImport("gstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
		static extern float gst_video_overlay_rectangle_get_global_alpha(IntPtr raw);

		[DllImport("gstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
		static extern void gst_video_overlay_rectangle_set_global_alpha(IntPtr raw, float global_alpha);

		public float GlobalAlpha { 
			get {
				float raw_ret = gst_video_overlay_rectangle_get_global_alpha(Handle);
				float ret = raw_ret;
				return ret;
			}
			set {
				gst_video_overlay_rectangle_set_global_alpha(Handle, value);
			}
		}

		[DllImport("gstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
		static extern IntPtr gst_video_overlay_rectangle_get_pixels_argb(IntPtr raw, int flags);

		public Gst.Buffer GetPixelsArgb(Gst.Video.VideoOverlayFormatFlags flags) {
			IntPtr raw_ret = gst_video_overlay_rectangle_get_pixels_argb(Handle, (int) flags);
			Gst.Buffer ret = raw_ret == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Buffer), false);
			return ret;
		}

		[DllImport("gstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
		static extern IntPtr gst_video_overlay_rectangle_get_pixels_ayuv(IntPtr raw, int flags);

		public Gst.Buffer GetPixelsAyuv(Gst.Video.VideoOverlayFormatFlags flags) {
			IntPtr raw_ret = gst_video_overlay_rectangle_get_pixels_ayuv(Handle, (int) flags);
			Gst.Buffer ret = raw_ret == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Buffer), false);
			return ret;
		}

		[DllImport("gstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
		static extern IntPtr gst_video_overlay_rectangle_get_pixels_raw(IntPtr raw, int flags);

		public Gst.Buffer GetPixelsRaw(Gst.Video.VideoOverlayFormatFlags flags) {
			IntPtr raw_ret = gst_video_overlay_rectangle_get_pixels_raw(Handle, (int) flags);
			Gst.Buffer ret = raw_ret == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Buffer), false);
			return ret;
		}

		[DllImport("gstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
		static extern IntPtr gst_video_overlay_rectangle_get_pixels_unscaled_argb(IntPtr raw, int flags);

		public Gst.Buffer GetPixelsUnscaledArgb(Gst.Video.VideoOverlayFormatFlags flags) {
			IntPtr raw_ret = gst_video_overlay_rectangle_get_pixels_unscaled_argb(Handle, (int) flags);
			Gst.Buffer ret = raw_ret == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Buffer), false);
			return ret;
		}

		[DllImport("gstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
		static extern IntPtr gst_video_overlay_rectangle_get_pixels_unscaled_ayuv(IntPtr raw, int flags);

		public Gst.Buffer GetPixelsUnscaledAyuv(Gst.Video.VideoOverlayFormatFlags flags) {
			IntPtr raw_ret = gst_video_overlay_rectangle_get_pixels_unscaled_ayuv(Handle, (int) flags);
			Gst.Buffer ret = raw_ret == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Buffer), false);
			return ret;
		}

		[DllImport("gstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
		static extern IntPtr gst_video_overlay_rectangle_get_pixels_unscaled_raw(IntPtr raw, int flags);

		public Gst.Buffer GetPixelsUnscaledRaw(Gst.Video.VideoOverlayFormatFlags flags) {
			IntPtr raw_ret = gst_video_overlay_rectangle_get_pixels_unscaled_raw(Handle, (int) flags);
			Gst.Buffer ret = raw_ret == IntPtr.Zero ? null : (Gst.Buffer) GLib.Opaque.GetOpaque (raw_ret, typeof (Gst.Buffer), false);
			return ret;
		}

		[DllImport("gstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
		static extern bool gst_video_overlay_rectangle_get_render_rectangle(IntPtr raw, out int render_x, out int render_y, out uint render_width, out uint render_height);

		public bool GetRenderRectangle(out int render_x, out int render_y, out uint render_width, out uint render_height) {
			bool raw_ret = gst_video_overlay_rectangle_get_render_rectangle(Handle, out render_x, out render_y, out render_width, out render_height);
			bool ret = raw_ret;
			return ret;
		}

		[DllImport("gstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
		static extern uint gst_video_overlay_rectangle_get_seqnum(IntPtr raw);

		public uint Seqnum { 
			get {
				uint raw_ret = gst_video_overlay_rectangle_get_seqnum(Handle);
				uint ret = raw_ret;
				return ret;
			}
		}

		[DllImport("gstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
		static extern void gst_video_overlay_rectangle_set_render_rectangle(IntPtr raw, int render_x, int render_y, uint render_width, uint render_height);

		public void SetRenderRectangle(int render_x, int render_y, uint render_width, uint render_height) {
			gst_video_overlay_rectangle_set_render_rectangle(Handle, render_x, render_y, render_width, render_height);
		}

		public VideoOverlayRectangle(IntPtr raw) : base(raw) {}

		[DllImport("gstvideo-1.0-0.dll", CallingConvention = CallingConvention.Cdecl)]
		static extern IntPtr gst_video_overlay_rectangle_new_raw(IntPtr pixels, int render_x, int render_y, uint render_width, uint render_height, int flags);

		public VideoOverlayRectangle (Gst.Buffer pixels, int render_x, int render_y, uint render_width, uint render_height, Gst.Video.VideoOverlayFormatFlags flags) 
		{
			Raw = gst_video_overlay_rectangle_new_raw(pixels == null ? IntPtr.Zero : pixels.Handle, render_x, render_y, render_width, render_height, (int) flags);
		}


		// Internal representation of the wrapped structure ABI.
		static GLib.AbiStruct _abi_info = null;
		static public new GLib.AbiStruct abi_info {
			get {
				if (_abi_info == null)
					_abi_info = new GLib.AbiStruct (Gst.MiniObject.abi_info.Fields);

				return _abi_info;
			}
		}


		// End of the ABI representation.

#endregion
	}
}
