Esempio n. 1
0
	bool Shader::Load(const void* wrapper)
	{
		EntityManager::Ptr entityMgr = EntityManager::Instance();
		std::string str;

		if (!LoadMemberValue(wrapper, "type", str))
		{
			FURYE << "Shader param 'type' not found!";
			return false;
		}
		m_Type = EnumUtil::ShaderTypeFromString(str);

		// read shader texture flags

		std::vector<ShaderTexture> textures;

		m_TextureFlags = 0;
		if (LoadArray(wrapper, "textures", [&](const void* node) -> bool
		{
			if (!LoadValue(node, str))
			{
				FURYE << "Shader's texture flag not found!";
				return false;
			}
			textures.push_back(EnumUtil::ShaderTextureFromString(str));
			return true;
		}))
		{
			for (auto texture : textures)
				m_TextureFlags = m_TextureFlags | (unsigned int)texture;
		}

		// end: read shader texture flags

		if (!LoadMemberValue(wrapper, "path", str))
		{
			FURYE << "Shader param 'path' not found!";
			return false;
		}
		LoadAndCompile(FileUtil::GetAbsPath() + str);

		return true;
	}
Esempio n. 2
0
	bool Shader::Load(const void* wrapper)
	{
		EntityUtil::Ptr entityUtil = EntityUtil::Instance();
		EnumUtil::Ptr enumUtil = EnumUtil::Instance();

		std::string str;

		if (!LoadMemberValue(wrapper, "type", str))
		{
			LOGE << "Shader param 'type' not found!";
			return false;
		}
		m_Type = enumUtil->ShaderTypeFromString(str);

		if (!LoadMemberValue(wrapper, "path", str))
		{
			LOGE << "Shader param 'path' not found!";
			return false;
		}
		LoadAndCompile(str);

		return true;
	}
LptaD3DVertexShaderManager::LptaD3DVertexShaderManager(LPDIRECT3DDEVICE9 d3ddev) : d3ddev(d3ddev)
{
    LPDIRECT3DVERTEXSHADER9 defaultShader = LoadAndCompile(defaultShaderProgram);
    this->SetNullResource(LptaD3DVertexShader(GetNextId(), defaultShader));
}