void Bind(int stencilRef) const{
		mRasterizerState->Bind();
		mBlendState->Bind();	
		if (sForceIncrementalStencil) {
			Renderer::GetInstance().BindIncrementalStencilState(2);
		}
		else {
			mDepthStencilState->Bind(stencilRef);
		}
	}
	void DebugPrint() const{
		Logger::Log(FB_DEFAULT_LOG_ARG, FormatString("(info) RasterizerStates : 0x%x", mRasterizerState.get()).c_str());
		Logger::Log(FB_DEFAULT_LOG_ARG, FormatString("(info) BlendStates : 0x%x", mBlendState.get()).c_str());
		Logger::Log(FB_DEFAULT_LOG_ARG, FormatString("(info) DepthStencilStates : 0x%x", mDepthStencilState.get()).c_str());

		if (mRDesc){
			Logger::Log(FB_DEFAULT_LOG_ARG, FormatString("(info) RDesc scissor: %d", mRDesc->GetScissorEnable() ? 1 : 0).c_str());
		}
		else{
			Logger::Log(FB_DEFAULT_LOG_ARG, FormatString("(info) RDesc null").c_str());
		}

	}
	void UGraphicsDevice::SetRasterizerState(RasterizerStatePtr inRasterizerState)
	{
		mD3dDeviceCtx->RSSetState(inRasterizerState.get());
	}
void GraphicsDriver::SetRasterizerState(RasterizerStatePtr inRasterizerState)
{
	g_pImmediateContext->RSSetState( inRasterizerState.get() );
}