CmGpuProgram.cpp 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #include "CmGpuProgram.h"
  2. #include "CmHighLevelGpuProgram.h"
  3. #include "CmVector3.h"
  4. #include "CmVector4.h"
  5. #include "CmRenderSystemCapabilities.h"
  6. #include "CmException.h"
  7. #include "CmRenderSystem.h"
  8. #include "CmAsyncOp.h"
  9. #include "CmGpuParams.h"
  10. #include "CmGpuProgInclude.h"
  11. #include "CmGpuProgramRTTI.h"
  12. namespace BansheeEngine
  13. {
  14. GpuProgram::GpuProgram(const String& source, const String& entryPoint,
  15. GpuProgramType gptype, GpuProgramProfile profile, const Vector<HGpuProgInclude>* includes, bool isAdjacencyInfoRequired)
  16. :mEntryPoint(entryPoint), mType(gptype),
  17. mProfile(profile), mNeedsAdjacencyInfo(isAdjacencyInfoRequired)
  18. {
  19. if(includes != nullptr)
  20. {
  21. StringStream stringStream;
  22. for(auto iter = includes->begin(); iter != includes->end(); ++iter)
  23. {
  24. if(*iter != nullptr)
  25. {
  26. stringStream << (*iter)->getString();
  27. }
  28. }
  29. stringStream << source;
  30. mSource = stringStream.str();
  31. }
  32. else
  33. {
  34. mSource = source;
  35. }
  36. }
  37. GpuProgram::~GpuProgram()
  38. {
  39. }
  40. bool GpuProgram::isSupported() const
  41. {
  42. return false;
  43. }
  44. bool GpuProgram::isRequiredCapabilitiesSupported(void) const
  45. {
  46. return true;
  47. }
  48. GpuParamsPtr GpuProgram::createParameters(void)
  49. {
  50. return cm_shared_ptr<GpuParams, PoolAlloc>(std::ref(mParametersDesc), false);
  51. }
  52. const String& GpuProgram::getLanguage(void) const
  53. {
  54. static const String language = "asm";
  55. return language;
  56. }
  57. /************************************************************************/
  58. /* SERIALIZATION */
  59. /************************************************************************/
  60. RTTITypeBase* GpuProgram::getRTTIStatic()
  61. {
  62. return GpuProgramRTTI::instance();
  63. }
  64. RTTITypeBase* GpuProgram::getRTTI() const
  65. {
  66. return GpuProgram::getRTTIStatic();
  67. }
  68. }