#pragma once

#include "ShaderTypes.h"
#include "VideoIOTypes.h"

#include <vector>

struct RenderFrameInput
{
	bool useCommittedLayerStates = false;
	bool hasInputSource = false;
	unsigned renderWidth = 0;
	unsigned renderHeight = 0;
	unsigned inputFrameWidth = 0;
	unsigned inputFrameHeight = 0;
	unsigned captureTextureWidth = 0;
	VideoIOPixelFormat inputPixelFormat = VideoIOPixelFormat::Uyvy8;
	unsigned historyCap = 0;
	double oscSmoothing = 0.0;
};

struct RenderFrameState
{
	bool hasInputSource = false;
	unsigned inputFrameWidth = 0;
	unsigned inputFrameHeight = 0;
	unsigned captureTextureWidth = 0;
	VideoIOPixelFormat inputPixelFormat = VideoIOPixelFormat::Uyvy8;
	unsigned historyCap = 0;
	std::vector<RuntimeRenderState> layerStates;
};
