Add project files.

This commit is contained in:
Joshua Askharoun
2022-03-03 08:14:05 -06:00
parent cfa6f93211
commit 1198cc8a66
967 changed files with 118389 additions and 0 deletions
+195
View File
@@ -0,0 +1,195 @@
// Decompiled with JetBrains decompiler
// Type: Microsoft.Iris.Image
// Assembly: UIX, Version=4.8.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
// MVID: A56C6C9D-B7F6-46A9-8BDE-B3D9B8D60B11
// Assembly location: C:\Program Files\Zune\UIX.dll
using Microsoft.Iris.Drawing;
using Microsoft.Iris.Markup;
using Microsoft.Iris.Render;
using Microsoft.Iris.Session;
using System;
namespace Microsoft.Iris
{
public class Image : AssemblyObjectProxyHelper.IFrameworkProxyObject
{
private UIImage _uiImage;
private ImageLoadCompleteHandler _completeHandlers;
public Image(string source)
: this(source, 0, 0, false)
{
}
public Image(string source, ImageInset imageInset)
: this(source, imageInset.ToInset(), 0, 0, false, false)
{
}
public Image(string source, int maximumWidth, int maximumHeight)
: this(source, maximumWidth, maximumHeight, false)
{
}
public Image(string source, int maximumWidth, int maximumHeight, bool flippable)
: this(source, maximumWidth, maximumHeight, flippable, false)
{
}
public Image(
string source,
int maximumWidth,
int maximumHeight,
bool flippable,
bool antialiasEdges)
: this(source, Inset.Zero, maximumWidth, maximumHeight, flippable, antialiasEdges)
{
}
internal Image(
string source,
Inset inset,
int maximumWidth,
int maximumHeight,
bool flippable,
bool antialiasEdges)
{
if (source == null)
throw new ArgumentNullException(nameof(source));
_uiImage = new UriImage(source, inset, new Size(maximumWidth, maximumHeight), flippable, antialiasEdges);
}
public Image(
string uniqueID,
int imageWidth,
int imageHeight,
int stride,
RawImageFormat format,
IntPtr data)
: this(uniqueID, imageWidth, imageHeight, stride, format, data, 0, 0, false)
{
}
public Image(
string uniqueID,
int imageWidth,
int imageHeight,
int stride,
RawImageFormat format,
IntPtr data,
int maximumWidth,
int maximumHeight,
bool flippable)
: this(uniqueID, imageWidth, imageHeight, stride, format, data, maximumWidth, maximumHeight, flippable, false)
{
}
public Image(
string uniqueID,
int imageWidth,
int imageHeight,
int stride,
RawImageFormat format,
IntPtr data,
int maximumWidth,
int maximumHeight,
bool flippable,
bool anitaliasEdges)
{
SurfaceFormat surfaceFormat;
if (!ImageFormatUtils.RawImageFormatToSurfaceFormat(format, out surfaceFormat))
throw new ArgumentException(nameof(format));
uniqueID = "RAW:" + uniqueID;
_uiImage = new RawImage(uniqueID, new Size(imageWidth, imageHeight), stride, surfaceFormat, data, false, Inset.Zero, new Size(maximumWidth, maximumHeight), flippable, anitaliasEdges);
}
public string Source => _uiImage.Source;
public bool Load()
{
UIDispatcher.VerifyOnApplicationThread();
_uiImage.Load();
return _uiImage.Status == ImageStatus.Loading;
}
public event ImageLoadCompleteHandler ImageLoadComplete
{
add
{
UIDispatcher.VerifyOnApplicationThread();
if (_uiImage.Status == ImageStatus.PendingLoad)
throw new InvalidOperationException("Image Load event cannot be used before Load is called");
if (_completeHandlers == null)
_uiImage.LoadComplete += new ContentLoadCompleteHandler(OnContentLoadComplete);
_completeHandlers += value;
}
remove
{
UIDispatcher.VerifyOnApplicationThread();
if (_uiImage.Status == ImageStatus.PendingLoad)
throw new InvalidOperationException("Image Load event cannot be used before Load is called");
_completeHandlers -= value;
if (_completeHandlers != null)
return;
_uiImage.LoadComplete -= new ContentLoadCompleteHandler(OnContentLoadComplete);
}
}
public int Width
{
get
{
UIDispatcher.VerifyOnApplicationThread();
return _uiImage.Width;
}
}
public int Height
{
get
{
UIDispatcher.VerifyOnApplicationThread();
return _uiImage.Height;
}
}
public static void RemoveCache(string source) => RemoveCache(source, 0, 0, false, false);
public static void RemoveCache(string source, int maximumWidth, int maximumHeight) => RemoveCache(source, maximumWidth, maximumHeight, false, false);
public static void RemoveCache(
string source,
int maximumWidth,
int maximumHeight,
bool flippable)
{
RemoveCache(source, maximumWidth, maximumHeight, flippable, false);
}
public static void RemoveCache(
string source,
int maximumWidth,
int maximumHeight,
bool flippable,
bool antialiasEdges)
{
if (source == null)
throw new ArgumentNullException(nameof(source));
UriImage.RemoveCache(source, new Size(maximumWidth, maximumHeight), flippable, antialiasEdges);
}
private void OnContentLoadComplete(object owner, ImageStatus status) => _completeHandlers(this);
internal UIImage UIImage
{
get
{
UIDispatcher.VerifyOnApplicationThread();
return _uiImage;
}
}
object AssemblyObjectProxyHelper.IFrameworkProxyObject.FrameworkObject => _uiImage;
}
}