alphaTest
{
	mtlAlphaTest == Always && mtlBlendOp == Add && mtlSrcBlend == SrcAlpha && mtlDestBlend == InvSrcAlpha:
	mtlAlphaTest == Always && mtlBlendOp == Add && mtlSrcBlend == SrcAlpha && mtlDestBlend == One:
		GT0;
	default:
		passthrough;
}

blendFunc
{
	default:
		Add, One, One;
}

separateAlphaBlendFunc
{
	default:
		Disable, One, Zero;
}

cullFace
{
	default:
		passthrough;
}

depthTest
{
	default:
		passthrough;
}

depthWrite
{
	mtlBlendOp == Disable:
		Enable;
	default:
		Disable;
}

colorWrite
{
	mtlBlendOp == Disable:
		Enable, Enable;
	default:
		Enable, Enable;
}

gammaWrite
{
	default:
		passthrough;
}

polygonOffset
{
	default:
		passthrough;
}

stencil
{
	default:
		passthrough;
}

wireframe
{
	default:
		Disable;
}