PolyMaterial.cpp 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /*
  2. * PolyMaterial.cpp
  3. * Poly
  4. *
  5. * Created by Ivan Safrin on 9/19/08.
  6. * Copyright 2008 __MyCompanyName__. All rights reserved.
  7. *
  8. */
  9. #include "PolyMaterial.h"
  10. using namespace Polycode;
  11. Material::Material(String name) : Resource(Resource::RESOURCE_MATERIAL) {
  12. this->name = name;
  13. }
  14. Material::~Material() {
  15. Logger::log("deleting material (%s)\n", name.c_str());
  16. vector<Shader*> materialShaders;
  17. vector<ShaderBinding*> shaderBindings;
  18. vector<ShaderRenderTarget*> renderTargets;
  19. for(int i=0; i < materialShaders.size(); i++) {
  20. delete materialShaders[i];
  21. }
  22. materialShaders.clear();
  23. for(int i=0; i < shaderBindings.size(); i++) {
  24. delete shaderBindings[i];
  25. }
  26. shaderBindings.clear();
  27. for(int i=0; i < renderTargets.size(); i++) {
  28. delete renderTargets[i];
  29. }
  30. renderTargets.clear();
  31. }
  32. void Material::addShader(Shader *shader,ShaderBinding *shaderBinding) {
  33. materialShaders.push_back(shader);
  34. shaderBindings.push_back(shaderBinding);
  35. }
  36. unsigned int Material::getNumShaders() {
  37. return materialShaders.size();
  38. }
  39. String Material::getName() {
  40. return name;
  41. }
  42. Shader *Material::getShader(unsigned int index) {
  43. return materialShaders[index];
  44. }
  45. ShaderBinding *Material::getShaderBinding(unsigned int index) {
  46. return shaderBindings[index];
  47. }
  48. void Material::loadMaterial(String fileName) {
  49. }
  50. void Material::addShaderRenderTarget(ShaderRenderTarget *newTarget) {
  51. renderTargets.push_back(newTarget);
  52. }
  53. int Material::getNumShaderRenderTargets() {
  54. return renderTargets.size();
  55. }
  56. ShaderRenderTarget *Material::getShaderRenderTarget(unsigned int index) {
  57. return renderTargets[index];
  58. }