// ------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
// ------------------------------------------------------------------------------

namespace Win32.Graphics.DirectComposition;

/// <include file='../DirectComposition.xml' path='doc/member[@name="DCOMPOSITION_FRAME_STATISTICS"]/*' />
/// <unmanaged>DCOMPOSITION_FRAME_STATISTICS</unmanaged>
public partial struct FrameStatistics
{
	/// <include file='../DirectComposition.xml' path='doc/member[@name="DCOMPOSITION_FRAME_STATISTICS::lastFrameTime"]/*' />
	public LargeInteger lastFrameTime;

	/// <include file='../DirectComposition.xml' path='doc/member[@name="DCOMPOSITION_FRAME_STATISTICS::currentCompositionRate"]/*' />
	public Graphics.Dxgi.Common.Rational currentCompositionRate;

	/// <include file='../DirectComposition.xml' path='doc/member[@name="DCOMPOSITION_FRAME_STATISTICS::currentTime"]/*' />
	public LargeInteger currentTime;

	/// <include file='../DirectComposition.xml' path='doc/member[@name="DCOMPOSITION_FRAME_STATISTICS::timeFrequency"]/*' />
	public LargeInteger timeFrequency;

	/// <include file='../DirectComposition.xml' path='doc/member[@name="DCOMPOSITION_FRAME_STATISTICS::nextEstimatedFrameTime"]/*' />
	public LargeInteger nextEstimatedFrameTime;
}

/// <include file='../DirectComposition.xml' path='doc/member[@name="COMPOSITION_FRAME_STATS"]/*' />
/// <unmanaged>COMPOSITION_FRAME_STATS</unmanaged>
public partial struct CompositionFrameStats
{
	/// <include file='../DirectComposition.xml' path='doc/member[@name="COMPOSITION_FRAME_STATS::startTime"]/*' />
	public ulong startTime;

	/// <include file='../DirectComposition.xml' path='doc/member[@name="COMPOSITION_FRAME_STATS::targetTime"]/*' />
	public ulong targetTime;

	/// <include file='../DirectComposition.xml' path='doc/member[@name="COMPOSITION_FRAME_STATS::framePeriod"]/*' />
	public ulong framePeriod;
}

/// <include file='../DirectComposition.xml' path='doc/member[@name="COMPOSITION_TARGET_ID"]/*' />
/// <unmanaged>COMPOSITION_TARGET_ID</unmanaged>
public partial struct CompositionTargetId
{
	/// <include file='../DirectComposition.xml' path='doc/member[@name="COMPOSITION_TARGET_ID::displayAdapterLuid"]/*' />
	public Luid displayAdapterLuid;

	/// <include file='../DirectComposition.xml' path='doc/member[@name="COMPOSITION_TARGET_ID::renderAdapterLuid"]/*' />
	public Luid renderAdapterLuid;

	/// <include file='../DirectComposition.xml' path='doc/member[@name="COMPOSITION_TARGET_ID::vidPnSourceId"]/*' />
	public uint vidPnSourceId;

	/// <include file='../DirectComposition.xml' path='doc/member[@name="COMPOSITION_TARGET_ID::vidPnTargetId"]/*' />
	public uint vidPnTargetId;

	/// <include file='../DirectComposition.xml' path='doc/member[@name="COMPOSITION_TARGET_ID::uniqueId"]/*' />
	public uint uniqueId;
}

/// <include file='../DirectComposition.xml' path='doc/member[@name="COMPOSITION_STATS"]/*' />
/// <unmanaged>COMPOSITION_STATS</unmanaged>
public partial struct CompositionStats
{
	/// <include file='../DirectComposition.xml' path='doc/member[@name="COMPOSITION_STATS::presentCount"]/*' />
	public uint presentCount;

	/// <include file='../DirectComposition.xml' path='doc/member[@name="COMPOSITION_STATS::refreshCount"]/*' />
	public uint refreshCount;

	/// <include file='../DirectComposition.xml' path='doc/member[@name="COMPOSITION_STATS::virtualRefreshCount"]/*' />
	public uint virtualRefreshCount;

	/// <include file='../DirectComposition.xml' path='doc/member[@name="COMPOSITION_STATS::time"]/*' />
	public ulong time;
}

/// <include file='../DirectComposition.xml' path='doc/member[@name="COMPOSITION_TARGET_STATS"]/*' />
/// <unmanaged>COMPOSITION_TARGET_STATS</unmanaged>
public partial struct CompositionTargetStats
{
	/// <include file='../DirectComposition.xml' path='doc/member[@name="COMPOSITION_TARGET_STATS::outstandingPresents"]/*' />
	public uint outstandingPresents;

	/// <include file='../DirectComposition.xml' path='doc/member[@name="COMPOSITION_TARGET_STATS::presentTime"]/*' />
	public ulong presentTime;

	/// <include file='../DirectComposition.xml' path='doc/member[@name="COMPOSITION_TARGET_STATS::vblankDuration"]/*' />
	public ulong vblankDuration;

	/// <include file='../DirectComposition.xml' path='doc/member[@name="COMPOSITION_TARGET_STATS::presentedStats"]/*' />
	public CompositionStats presentedStats;

	/// <include file='../DirectComposition.xml' path='doc/member[@name="COMPOSITION_TARGET_STATS::completedStats"]/*' />
	public CompositionStats completedStats;
}

/// <include file='../DirectComposition.xml' path='doc/member[@name="DCompositionInkTrailPoint"]/*' />
/// <unmanaged>DCompositionInkTrailPoint</unmanaged>
public partial struct InkTrailPoint
{
	/// <include file='../DirectComposition.xml' path='doc/member[@name="DCompositionInkTrailPoint::x"]/*' />
	public float x;

	/// <include file='../DirectComposition.xml' path='doc/member[@name="DCompositionInkTrailPoint::y"]/*' />
	public float y;

	/// <include file='../DirectComposition.xml' path='doc/member[@name="DCompositionInkTrailPoint::radius"]/*' />
	public float radius;
}
