MainRendererPpsHdrEvent.cpp 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #include "anki/event/MainRendererPpsHdrEvent.h"
  2. #include "anki/renderer/MainRenderer.h"
  3. namespace anki {
  4. //==============================================================================
  5. MainRendererPpsHdrEvent::MainRendererPpsHdrEvent(float startTime,
  6. float duration,
  7. float exposure_,
  8. uint blurringIterationsNum_,
  9. float blurringDist_)
  10. : Event(ET_MAIN_RENDERER_PPS_HDR, startTime, duration)
  11. {
  12. finalData.exposure = exposure_;
  13. finalData.blurringIterationsNum = blurringIterationsNum_;
  14. finalData.blurringDist = blurringDist_;
  15. const Hdr& hdr =
  16. MainRendererSingleton::get().getPps().getHdr();
  17. originalData.exposure = hdr.getExposure();
  18. originalData.blurringIterationsNum = hdr.getBlurringIterationsNum();
  19. originalData.blurringDist = hdr.getBlurringDistance();
  20. }
  21. //==============================================================================
  22. MainRendererPpsHdrEvent::MainRendererPpsHdrEvent(
  23. const MainRendererPpsHdrEvent& b)
  24. : Event(ET_MAIN_RENDERER_PPS_HDR, 0.0, 0.0)
  25. {
  26. *this = b;
  27. }
  28. //==============================================================================
  29. MainRendererPpsHdrEvent& MainRendererPpsHdrEvent::operator=(
  30. const MainRendererPpsHdrEvent& b)
  31. {
  32. Event::operator=(b);
  33. finalData = b.finalData;
  34. originalData = b.originalData;
  35. return *this;
  36. }
  37. //==============================================================================
  38. void MainRendererPpsHdrEvent::updateSp(float /*prevUpdateTime*/, float crntTime)
  39. {
  40. float d = crntTime - getStartTime(); // delta
  41. float dp = d / getDuration(); // delta as percentage
  42. Hdr& hdr = MainRendererSingleton::get().getPps().getHdr();
  43. hdr.setExposure(interpolate(originalData.exposure, finalData.exposure, dp));
  44. hdr.setBlurringIterationsNum(
  45. interpolate(originalData.blurringIterationsNum,
  46. finalData.blurringIterationsNum, dp));
  47. hdr.setBlurringDistance(interpolate(originalData.blurringDist,
  48. finalData.blurringDist, dp));
  49. }
  50. } // end namespace