PolyShader.cpp 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /*
  2. * PolyShader.cpp
  3. * Poly
  4. *
  5. * Created by Ivan Safrin on 9/20/08.
  6. * Copyright 2008 __MyCompanyName__. All rights reserved.
  7. *
  8. */
  9. #include "PolyShader.h"
  10. using namespace Polycode;
  11. ShaderBinding::ShaderBinding(Shader *shader) {
  12. this->shader = shader;
  13. }
  14. ShaderBinding::~ShaderBinding() {
  15. }
  16. unsigned int ShaderBinding::getNumLocalParams() {
  17. return localParams.size();
  18. }
  19. LocalShaderParam *ShaderBinding::getLocalParam(unsigned int index) {
  20. return localParams[index];
  21. }
  22. LocalShaderParam *ShaderBinding::getLocalParamByName(string name) {
  23. for(int i=0; i < localParams.size(); i++) {
  24. if(localParams[i]->name == name) {
  25. return localParams[i];
  26. }
  27. }
  28. return NULL;
  29. }
  30. void ShaderBinding::addRenderTargetBinding(RenderTargetBinding *binding) {
  31. renderTargetBindings.push_back(binding);
  32. if(binding->mode == RenderTargetBinding::MODE_IN) {
  33. inTargetBindings.push_back(binding);
  34. } else {
  35. outTargetBindings.push_back(binding);
  36. }
  37. }
  38. unsigned int ShaderBinding::getNumRenderTargetBindings() {
  39. return renderTargetBindings.size();
  40. }
  41. RenderTargetBinding *ShaderBinding::getRenderTargetBinding(unsigned int index) {
  42. return renderTargetBindings[index];
  43. }
  44. unsigned int ShaderBinding::getNumInTargetBindings() {
  45. return inTargetBindings.size();
  46. }
  47. RenderTargetBinding *ShaderBinding::getInTargetBinding(unsigned int index) {
  48. return inTargetBindings[index];
  49. }
  50. unsigned int ShaderBinding::getNumOutTargetBindings() {
  51. return outTargetBindings.size();
  52. }
  53. RenderTargetBinding *ShaderBinding::getOutTargetBinding(unsigned int index) {
  54. return outTargetBindings[index];
  55. }
  56. Shader::Shader(int type) : Resource(Resource::RESOURCE_SHADER) {
  57. this->type = type;
  58. }
  59. Shader::~Shader() {
  60. }
  61. int Shader::getType() {
  62. return type;
  63. }
  64. void Shader::setName(string name) {
  65. this->name = name;
  66. }
  67. string Shader::getName() {
  68. return name;
  69. }