Shader.h 670 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #pragma once
  2. #include "Common.h"
  3. NS_BF_BEGIN;
  4. class Texture;
  5. class Shader;
  6. class ShaderParam
  7. {
  8. public:
  9. virtual ~ShaderParam() {}
  10. virtual void SetTexture(Texture* texture) = 0;
  11. virtual void SetFloat2(float x, float y) { SetFloat4(x, y, 0, 1); }
  12. virtual void SetFloat3(float x, float y, float z) { SetFloat4(x, y, z, 1); }
  13. virtual void SetFloat4(float x, float y, float z, float w) = 0;
  14. };
  15. class Shader
  16. {
  17. public:
  18. ShaderParam* mTextureParam;
  19. int mLastResizeCount;
  20. int mVertexSize;
  21. public:
  22. virtual void Init();
  23. public:
  24. Shader();
  25. virtual ~Shader();
  26. virtual ShaderParam* GetShaderParam(const StringImpl& name) = 0;
  27. };
  28. NS_BF_END;