//	Darkstar Engine  (c) UnderWorld Interactive Studio (all coding by Svarog    2007)
//
//      Данный файл является частью Darkstar Engine. Любое использование кода файла
//      без согласия компании, является нарушением закона об авторском праве (в слу-
//      чае если не оговорено обратное).
//
//      Имя файла: cull_render_state.cpp
//      Краткое описание: Culling type state block
//

#include <Darkstar/Graphic System/Render State/cull_render_state.hpp>
#include <Darkstar/Graphic System/Render State/render_state_manager.hpp>

using gs::CullModeRenderState;
using gs::DCULL;
using gs::RenderStateManager;

CullModeRenderState::CullModeRenderState()
{
	cull_mode = DCULL_BACK;
};

CullModeRenderState::CullModeRenderState(const CullModeRenderState& cm)
{
	cull_mode = cm.getCullMode();
};

CullModeRenderState::CullModeRenderState(const DCULL& cullMode)
{
	cull_mode = cullMode;
};

CullModeRenderState::~CullModeRenderState()
{

};

bool CullModeRenderState::operator ==(const CullModeRenderState& state) const
{
	return (cull_mode == state.getCullMode());
};

void CullModeRenderState::setCullMode(const DCULL& cullMode)
{
	cull_mode = cullMode;
};

const DCULL& CullModeRenderState::getCullMode() const
{
	return cull_mode;
};

void CullModeRenderState::set()
{
	RenderStateManager::ptr()->setCullModeRenderState(*this);
};