//	Darkstar Engine  (c) UnderWorld Interactive Studio (all coding by Svarog    2007-2008)
//
//      Данный файл является частью Darkstar Engine. Любое использование кода файла
//      без согласия компании, является нарушением закона об авторском праве (в слу-
//      чае если не оговорено обратное).
//
//      Имя файла: compiled_effect_file_d3d10.hpp
//      Краткое описание: directx 10 part of loader and saver for compiled effect files 
//

#ifdef GD_D3D10

#include <Darkstar/Graphic System/Effect/compiled_effect_file.hpp>
#include <Darkstar/Kernel/logh.hpp>

using namespace gs;
using ker::Log;
using ker::Blob;

using namespace gs;
using ker::Blob;

void CompiledEffectFile::writeInputSignature(const Blob& input_signature)
{
	if(output == -1)
	{
		lwar << "Cannot write input signature because there is no target file";
		return;
	};

	unsigned int in_sig_size = input_signature.data_size;
	_write(output, (char*)&in_sig_size, sizeof(unsigned int));
	_write(output, (char*)input_signature.data, in_sig_size);
};

void CompiledEffectFile::_loadInputSignature(ker::DFile& input, shared_ptr<Effect>& effect)
{
	if(!input.getIsLoaded())
	{
		lwar << "Cannot load input signature because input file was not opened";
		return;
	};
	unsigned int input_sig_size;
	input.read(sizeof(unsigned int), &input_sig_size);
	shared_array<char> input_sig_data(new char[input_sig_size]);
	input.read(input_sig_size, input_sig_data.get());
	InputSignature blob;
	blob.code = input_sig_data;
	blob.size = input_sig_size;
	effect->setEffectInputSignature(blob);
};

#endif