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
RevLine 
[9781]1
[9820]2#include "resource_shader.h"
[9790]3#include "debug.h"
[9781]4
5
[9820]6ResourceShader::ResourceShader(const std::string& vertexShaderName, const std::string& fragmentShaderName)
7    : NewResource(&ResourceShader::type)
[9784]8{
[9820]9  Resources::StorePointer* ptr = this->acquireResource(vertexShaderName +'|'+fragmentShaderName);
[9781]10
[9784]11  if (ptr)
[9786]12  {
[9820]13    PRINTF(5)("FOUND SHADER: %s\n", vertexShaderName.c_str());
14    this->acquireData(static_cast<ResourceShader::ShaderResourcePointer*>(ptr)->ptr());
[9786]15  }
[9784]16  else
17  {
[9820]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()));
[9784]26  }
27}
28
29
[9820]30Resources::Type ResourceShader::type("Shader");
[9784]31
32
33
34
35
[9820]36ResourceShader::ShaderResourcePointer::ShaderResourcePointer(const std::string& loadString, const Resources::KeepLevel& keepLevel, const ShaderData::Pointer& data)
[9791]37    : Resources::StorePointer(loadString, keepLevel) , pointer(data)
[9785]38{}
Note: See TracBrowser for help on using the repository browser.