fxaaeffect.monkey2 805 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. Namespace mojo3d
  2. #rem monkeydoc The FXAAEffect class.
  3. #end
  4. Class FXAAEffect Extends PostEffect
  5. #rem monkeydoc Creates a new fxaa effect shader.
  6. #end
  7. Method New()
  8. _shader=Shader.Open( "effects/fxaa" )
  9. _uniforms=New UniformBlock( 3 )
  10. End
  11. Protected
  12. Method OnRender( target:RenderTarget,viewport:Recti ) Override
  13. Local size:=viewport.Size
  14. Local source:=target.GetColorTexture( 0 )
  15. If Not _target Or size.x>_target.Size.x Or size.y>_target.Size.y
  16. _target=CreateRenderTarget( size,source.Format,TextureFlags.Dynamic )
  17. End
  18. Super.SetRenderTarget( _target,New Recti( 0,0,size ) )
  19. Device.Shader=_shader
  20. Device.BindUniformBlock( _uniforms )
  21. RenderQuad()
  22. End
  23. Private
  24. Field _shader:Shader
  25. Field _uniforms:UniformBlock
  26. Field _target:RenderTarget
  27. End