MaterialInputVariable.cpp 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. #include "MaterialInputVariable.h"
  2. #include "SProgUniVar.h"
  3. #include "Texture.h"
  4. #include "Util/Assert.h"
  5. //==============================================================================
  6. // Constructor =
  7. //==============================================================================
  8. MaterialInputVariable::MaterialInputVariable(const SProgUniVar& svar, float val)
  9. : sProgVar(svar)
  10. {
  11. ASSERT(svar.getGlDataType() == GL_FLOAT);
  12. scalar = val;
  13. }
  14. MaterialInputVariable::MaterialInputVariable(const SProgUniVar& svar,
  15. const Vec2& val)
  16. : sProgVar(svar)
  17. {
  18. ASSERT(svar.getGlDataType() == GL_FLOAT_VEC2);
  19. vec2 = val;
  20. }
  21. MaterialInputVariable::MaterialInputVariable(const SProgUniVar& svar,
  22. const Vec3& val)
  23. : sProgVar(svar)
  24. {
  25. ASSERT(svar.getGlDataType() == GL_FLOAT_VEC3);
  26. vec3 = val;
  27. }
  28. MaterialInputVariable::MaterialInputVariable(const SProgUniVar& svar,
  29. const Vec4& val)
  30. : sProgVar(svar)
  31. {
  32. ASSERT(svar.getGlDataType() == GL_FLOAT_VEC4);
  33. vec4 = val;
  34. }
  35. MaterialInputVariable::MaterialInputVariable(const SProgUniVar& svar, Fai val)
  36. : sProgVar(svar)
  37. {
  38. ASSERT(svar.getGlDataType() == GL_SAMPLER_2D);
  39. fai = val;
  40. }
  41. MaterialInputVariable::MaterialInputVariable(const SProgUniVar& svar,
  42. const char* texFilename)
  43. : sProgVar(svar)
  44. {
  45. ASSERT(svar.getGlDataType() == GL_SAMPLER_2D);
  46. texture.loadRsrc(texFilename);
  47. }
  48. //==============================================================================
  49. // Destructor =
  50. //==============================================================================
  51. MaterialInputVariable::~MaterialInputVariable()
  52. {}
  53. //==============================================================================
  54. // Accessors =
  55. //==============================================================================
  56. float MaterialInputVariable::getFloat() const
  57. {
  58. ASSERT(sProgVar.getGlDataType() == GL_FLOAT);
  59. return scalar;
  60. }
  61. const Vec2& MaterialInputVariable::getVec2() const
  62. {
  63. ASSERT(sProgVar.getGlDataType() == GL_FLOAT_VEC2);
  64. return vec2;
  65. }
  66. const Vec3& MaterialInputVariable::getVec3() const
  67. {
  68. ASSERT(sProgVar.getGlDataType() == GL_FLOAT_VEC3);
  69. return vec3;
  70. }
  71. const Vec4& MaterialInputVariable::getVec4() const
  72. {
  73. ASSERT(sProgVar.getGlDataType() == GL_FLOAT_VEC4);
  74. return vec4;
  75. }
  76. MaterialInputVariable::Fai MaterialInputVariable::getFai() const
  77. {
  78. ASSERT(sProgVar.getGlDataType() == GL_SAMPLER_2D);
  79. return fai;
  80. }
  81. const Texture& MaterialInputVariable::getTexture() const
  82. {
  83. ASSERT(sProgVar.getGlDataType() == GL_SAMPLER_2D);
  84. return *texture;
  85. }