📄 resourcetype_raw.cpp
字号:
/* $Id: resourcetype_raw.cpp,v 1.9 2003/09/03 22:58:17 mbn Exp $
**
** ClanLib Game SDK
** Copyright (C) 2003 The ClanLib Team
** For a total list of contributers see the file CREDITS.
**
** This library is free software; you can redistribute it and/or
** modify it under the terms of the GNU Lesser General Public
** License as published by the Free Software Foundation; either
** version 2.1 of the License, or (at your option) any later version.
**
** This library is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
** Lesser General Public License for more details.
**
** You should have received a copy of the GNU Lesser General Public
** License along with this library; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
**
File purpose:
Raw resource type
*/
#include "Core/precomp.h"
#include "API/Core/Resources/resourcetype_raw.h"
#include "API/Core/Resources/resource.h"
#include "API/Core/Resources/resource_manager.h"
#include "API/Core/IOData/inputsource.h"
#include "API/Core/IOData/inputsource_provider.h"
#include "API/Core/IOData/outputsource.h"
#include "API/Core/IOData/outputsource_provider.h"
/////////////////////////////////////////////////////////////////////////////
// CL_ResourceData_Raw construction:
CL_ResourceData_Raw::CL_ResourceData_Raw(CL_Resource &resource)
: CL_ResourceData(resource)
{
resource.attach_data("raw", this);
}
/////////////////////////////////////////////////////////////////////////////
// CL_ResourceData_Raw implementation:
void CL_ResourceData_Raw::on_load()
{
CL_ResourceManager manager = get_resource().get_manager();
std::string filename = get_resource().get_element().get_attribute("file");
CL_InputSource *input = manager.get_resource_provider()->open_source(filename.c_str());
try
{
int length = input->size();
value = std::vector<unsigned char>(length);
input->read(&value.front(), length);
}
catch (...)
{
delete input;
throw;
}
delete input;
}
void CL_ResourceData_Raw::on_unload()
{
value = std::vector<unsigned char>();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -