<Type Name="Pixdata" FullName="Gdk.Pixdata">
  <TypeSignature Language="C#" Maintainer="auto" Value="public struct Pixdata : IEquatable&lt;Gdk.Pixdata&gt;" />
  <TypeSignature Language="ILAsm" Value=".class public sequential ansi sealed beforefieldinit Pixdata extends System.ValueType implements class System.IEquatable`1&lt;valuetype Gdk.Pixdata&gt;" />
  <AssemblyInfo>
    <AssemblyName>gdk-sharp</AssemblyName>
    <AssemblyPublicKey>
    </AssemblyPublicKey>
  </AssemblyInfo>
  <ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the <link location="node:gtk-sharp/programming/threads">Gtk# Thread Programming</link> for details.</ThreadSafetyStatement>
  <Base>
    <BaseTypeName>System.ValueType</BaseTypeName>
  </Base>
  <Interfaces>
    <Interface>
      <InterfaceName>System.IEquatable&lt;Gdk.Pixdata&gt;</InterfaceName>
    </Interface>
  </Interfaces>
  <Docs>
    <summary>Contains functions for inlined pixbuf handling. It allows for pixbuf data to be accessed in a raw form, serialized, and stored.</summary>
    <remarks>At the time of this writing, gtk-sharp 0.98 has a bug where <see cref="M:Gdk.Pixdata.Serialize" /> and <see cref="M:Gdk.Pixdata.Deserialize" /> use <see cref="T:System.Byte" /> where Byte [] should be used making them function improperly. This problem should be fixed in a future release.</remarks>
  </Docs>
  <Members>
    <Member MemberName="Deserialize">
      <MemberSignature Language="C#" Value="public bool Deserialize (uint stream_length, byte[] stream);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool Deserialize(unsigned int32 stream_length, unsigned int8[] stream) cil managed" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="stream_length" Type="System.UInt32" />
        <Parameter Name="stream" Type="System.Byte[]" />
      </Parameters>
      <Docs>
        <param name="stream_length">A <see cref="T:System.UInt32" /> describing the length of "stream".</param>
        <param name="stream">a <see cref="T:System.Byte" /></param>
        <summary>Converts a serialized datastream, generated by <see cref="M:Gdk.Pixdata.Serialize" />, into pixdata.</summary>
        <returns>A <see cref="T:System.Boolean" />. True if successful, false if there was an error.</returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="Equals">
      <MemberSignature Language="C#" Value="public bool Equals (Gdk.Pixdata other);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance bool Equals(valuetype Gdk.Pixdata other) cil managed" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="other" Type="Gdk.Pixdata" />
      </Parameters>
      <Docs>
        <param name="other">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
        <since version="Gtk# 3.0" />
      </Docs>
    </Member>
    <Member MemberName="Equals">
      <MemberSignature Language="C#" Value="public override bool Equals (object other);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance bool Equals(object other) cil managed" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="other" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="other">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
        <since version="Gtk# 3.0" />
      </Docs>
    </Member>
    <Member MemberName="FromPixbuf">
      <MemberSignature Language="C#" Value="public IntPtr FromPixbuf (Gdk.Pixbuf pixbuf, bool use_rle);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance native int FromPixbuf(class Gdk.Pixbuf pixbuf, bool use_rle) cil managed" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.IntPtr</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="pixbuf" Type="Gdk.Pixbuf" />
        <Parameter Name="use_rle" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <param name="pixbuf">The 'Gdk.Pixbuf' which the Gdk.Pixdata is to be derived from.</param>
        <param name="use_rle">Whether to use run-length encoding for the pixel data.</param>
        <summary>Fils in the Gdk.Pixdata with data from an existing <see cref="T:Gdk.Pixbuf" />.</summary>
        <returns> If "ure_rle" is set to true, an <see cref="T:System.IntPtr" /> pointing to the new run-length encoded pixel data is returned, otherwise, <see cref="F:System.IntPtr.Zero" /></returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="GetHashCode">
      <MemberSignature Language="C#" Value="public override int GetHashCode ();" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance int32 GetHashCode() cil managed" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
        <since version="Gtk# 3.0" />
      </Docs>
    </Member>
    <Member MemberName="Height">
      <MemberSignature Language="C#" Value="public uint Height;" />
      <MemberSignature Language="ILAsm" Value=".field public unsigned int32 Height" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>The height of the image in pixels.</summary>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="Length">
      <MemberSignature Language="C#" Value="public int Length;" />
      <MemberSignature Language="ILAsm" Value=".field public int32 Length" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>The length of the raw structure.</summary>
        <remarks>This is either set to less than one to disable length checks or set to the length of the raw GdkPixbuf header, which is currently 24, plus the length of the pixel data.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Magic">
      <MemberSignature Language="C#" Value="public uint Magic;" />
      <MemberSignature Language="ILAsm" Value=".field public unsigned int32 Magic" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>The GdkPixbuf magic number.</summary>
        <remarks>All valid Gdk.Pixdata objects must have this set to 0x47646b50, which is 'GdkP' in ASCII.</remarks>
      </Docs>
    </Member>
    <Member MemberName="New">
      <MemberSignature Language="C#" Value="public static Gdk.Pixdata New (IntPtr raw);" />
      <MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype Gdk.Pixdata New(native int raw) cil managed" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gdk.Pixdata</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="raw" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <param name="raw">An <see cref="T:System.IntPtr" /> pointing to a raw GdkPixdata.</param>
        <summary>Creates a new Gdk.Pixdata from a pointer to a raw GdkPixdata.</summary>
        <returns>A new 'Gdk.Pixdata' synonymous with the "raw" parameter.</returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="PixdataType">
      <MemberSignature Language="C#" Value="public uint PixdataType;" />
      <MemberSignature Language="ILAsm" Value=".field public unsigned int32 PixdataType" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>An enumeration containing three sets of flax for the <see cref="T:Gdk.Pixdata" />. One used for colorspace, one for the width of the samples, and one for the encoding of the pixel data.</summary>
        <remarks>
          <list type="table">
            <listheader>
              <term>Value</term>
              <description>Description</description>
            </listheader>
            <item>
              <term>0x01</term>
              <description>Each pixel has red, green, and blue samples.</description>
            </item>
            <item>
              <term>0x02</term>
              <description>Each pixel has red, green, and blue samples, and an alpha value.</description>
            </item>
            <item>
              <term>0xFF</term>
              <description>A mask for the colortype flags.</description>
            </item>
            <item>
              <term>0x01 &lt;&lt; 16</term>
              <description>Each sample has 8 bits.</description>
            </item>
            <item>
              <term>0x0f &lt;&lt; 16</term>
              <description>A mask for the sample width flags.</description>
            </item>
            <item>
              <term>0x01 &lt;&lt; 24</term>
              <description>The pixel data is in raw form.</description>
            </item>
            <item>
              <term>0x02 &lt;&lt; 24</term>
              <description>The pixel data is run-length encoded. Runs may be up to 127 bytes long; their length is stored in a single byte preceding the pixel data for the run. If a run is constant, its length byte has the high bit set and the pixel data consists of a single pixel which must be repeated.</description>
            </item>
            <item>
              <term>0x0f &lt;&lt; 24</term>
              <description>A mask for the encoding flags.</description>
            </item>
          </list>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Rowstride">
      <MemberSignature Language="C#" Value="public uint Rowstride;" />
      <MemberSignature Language="ILAsm" Value=".field public unsigned int32 Rowstride" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>The distance in bytes between rows.</summary>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="Serialize">
      <MemberSignature Language="C#" Value="public byte[] Serialize ();" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance unsigned int8[] Serialize() cil managed" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Byte[]</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Generates serialized pixdata that can then be stored and converted back into a <see cref="T:Gdk.Pixdata" /> with <see cref="M:Gdk.Pixdata.Deserialize" />.</summary>
        <returns>the serialized pixdata.<see cref="T:System.Byte[]" /></returns>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Width">
      <MemberSignature Language="C#" Value="public uint Width;" />
      <MemberSignature Language="ILAsm" Value=".field public unsigned int32 Width" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>The width of the image in pixels.</summary>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="Zero">
      <MemberSignature Language="C#" Value="public static Gdk.Pixdata Zero;" />
      <MemberSignature Language="ILAsm" Value=".field public static valuetype Gdk.Pixdata Zero" />
      <MemberType>Field</MemberType>
      <ReturnValue>
        <ReturnType>Gdk.Pixdata</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>A blank Gdk.Pixdata, equivilent to Gdk.Pixdata Zero = new Gdk.Pixdata ();</summary>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
  </Members>
</Type>
