Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/new_class_id/src/lib/graphics/resource_shader.cc @ 9820

Last change on this file since 9820 was 9820, checked in by bensch, 18 years ago

added resource_shader, the new ResourceLoadHandler for the Shader

File size: 1.3 KB
Line 
1
2#include "resource_shader.h"
3#include "debug.h"
4
5
6ResourceShader::ResourceShader(const std::string& vertexShaderName, const std::string& fragmentShaderName)
7    : NewResource(&ResourceShader::type)
8{
9  Resources::StorePointer* ptr = this->acquireResource(vertexShaderName +'|'+fragmentShaderName);
10
11  if (ptr)
12  {
13    PRINTF(5)("FOUND SHADER: %s\n", vertexShaderName.c_str());
14    this->acquireData(static_cast<ResourceShader::ShaderResourcePointer*>(ptr)->ptr());
15  }
16  else
17  {
18    PRINTF(5)("NOT FOUND SHADER: %s\n", vertexShaderName.c_str());
19    std::string vertexFileName = this->NewResource::locateFile(vertexShaderName);
20    std::string fragmentFileName;
21    if (!fragmentShaderName.empty())
22      fragmentFileName = this->NewResource::locateFile(fragmentShaderName);
23
24    this->Shader::load(vertexFileName, fragmentFileName);
25    this->NewResource::addResource(new ResourceShader::ShaderResourcePointer(vertexShaderName+'|'+fragmentShaderName, Resources::KeepLevel(0), this->Shader::dataPointer()));
26  }
27}
28
29
30Resources::Type ResourceShader::type("Shader");
31
32
33
34
35
36ResourceShader::ShaderResourcePointer::ShaderResourcePointer(const std::string& loadString, const Resources::KeepLevel& keepLevel, const ShaderData::Pointer& data)
37    : Resources::StorePointer(loadString, keepLevel) , pointer(data)
38{}
Note: See TracBrowser for help on using the repository browser.