PostProcess.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. #pragma once
  2. #include "..\..\..\Common_h\PostProcess\IPostProcess.h"
  3. #include "Filters\BlackAndWhite.h"
  4. #include "Filters\Blur.h"
  5. #include "Filters\MotionBlur.h"
  6. #include "Filters\MotionEffect.h"
  7. #include "Filters\Splash.h"
  8. //Простейший сервис, просто добавляет фильтры в рендер....
  9. class PostProcessService : public IPostProcessService
  10. {
  11. IRender *pRS;
  12. //BlackAndWhite filter_bw;
  13. //Blur filter_blur;
  14. //MotionBlur filter_motion;
  15. //MotionEffect filter_effect;
  16. Splash filter_splash;
  17. struct Node
  18. {
  19. const char *effect;
  20. // const char *object;
  21. string object;
  22. float weight;
  23. float k;
  24. Node()
  25. {
  26. reset();
  27. }
  28. bool operator !() const
  29. {
  30. // return !effect || !object;
  31. return !effect;
  32. }
  33. void set(const char *effect, const char *object, float weight, float k)
  34. {
  35. this->effect = effect;
  36. this->object = object;
  37. this->weight = weight;
  38. this->k = k;
  39. }
  40. void reset()
  41. {
  42. set(null,null,0.0f,0.0f);
  43. }
  44. };
  45. array<Node> nodes; int count; float weight;
  46. bool empty;
  47. bool trace;
  48. bool key;
  49. bool dflag;
  50. bool enabled;
  51. public:
  52. PostProcessService();
  53. virtual ~PostProcessService();
  54. virtual bool Init();
  55. virtual void StartFrame(float dltTime);
  56. virtual void EndFrame(float dltTime);
  57. void FilterNotify(const char *effect, const char *object, float weight, float k);
  58. //virtual IBlur *GetBlurFilter ();
  59. //virtual IMotionBlur *GetMotionBlurFilter();
  60. //BlackAndWhite *GetBlackFilter();
  61. //MotionEffect *GetMotionEffectFilter();
  62. Splash *GetSplashFilter();
  63. public:
  64. void _cdecl Console_EnableDraw(const ConsoleStack &params);
  65. void _cdecl Console_EnableList(const ConsoleStack &params);
  66. public:
  67. bool Enabled()
  68. {
  69. return enabled;
  70. }
  71. };