<Type Name="Pixdata" FullName="Gdk.Pixdata">
  <TypeSignature Language="C#" Maintainer="auto" Value="public struct Pixdata" />
  <AssemblyInfo>
    <AssemblyName>gdk-sharp</AssemblyName>
    <AssemblyPublicKey>
    </AssemblyPublicKey>
    <AssemblyVersion>2.12.0.0</AssemblyVersion>
  </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>
  <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>
  <Base>
    <BaseTypeName>System.ValueType</BaseTypeName>
  </Base>
  <Interfaces />
  <Members>
    <Member MemberName="Zero">
      <MemberSignature Language="C#" Value="public static 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>
    <Member MemberName="New">
      <MemberSignature Language="C#" Value="public static Gdk.Pixdata New (IntPtr raw);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Gdk.Pixdata</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="raw" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <summary>Creates a new Gdk.Pixdata from a pointer to a raw GdkPixdata.</summary>
        <param name="raw">An <see cref="T:System.IntPtr" /> pointing to a raw GdkPixdata.</param>
        <returns>A new 'Gdk.Pixdata' synonymous with the "raw" parameter.</returns>
        <remarks>To be added</remarks>
      </Docs>
    </Member>
    <Member MemberName="FromPixbuf">
      <MemberSignature Language="C#" Value="public IntPtr FromPixbuf (Gdk.Pixbuf pixbuf, bool use_rle);" />
      <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>
        <summary>Fils in the Gdk.Pixdata with data from an existing <see cref="T:Gdk.Pixbuf" />.</summary>
        <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>
        <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="Magic">
      <MemberSignature Language="C#" Value="public uint 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="Length">
      <MemberSignature Language="C#" Value="public int 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="PixdataType">
      <MemberSignature Language="C#" Value="public uint 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;" />
      <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="Width">
      <MemberSignature Language="C#" Value="public uint 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="Height">
      <MemberSignature Language="C#" Value="public uint 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="Deserialize">
      <MemberSignature Language="C#" Value="public bool Deserialize (uint stream_length, byte[] stream);" />
      <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>
        <summary>Converts a serialized datastream, generated by <see cref="M:Gdk.Pixdata.Serialize" />, into pixdata.</summary>
        <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>
        <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="Serialize">
      <MemberSignature Language="C#" Value="public byte[] Serialize ();" />
      <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>
  </Members>
</Type>
