12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- Namespace mojo3d
- #rem monkeydoc The MonochromeEffect class.
- #end
- Class MonochromeEffect Extends PostEffect
- #rem monkeydoc Creates a new monochrome effect shader.
- #end
- Method New( level:Float=1.0 )
-
- _shader=Shader.Open( "effects/monochrome" )
-
- _uniforms=New UniformBlock( 3 )
-
- Level=level
- End
-
- #rem monkeydoc The effect level.
-
- 0=no effect, 1=full effect.
-
- #end
- Property Level:Float()
-
- Return _uniforms.GetFloat( "Level" )
-
- Setter( level:Float )
-
- _uniforms.SetFloat( "Level",level )
- End
- Protected
-
- Method OnRender( target:RenderTarget,viewport:Recti ) Override
-
- Local size:=viewport.Size
- Local source:=target.GetColorTexture( 0 )
-
- If Not _target Or size.x>_target.Size.x Or size.y>_target.Size.y
- _target=CreateRenderTarget( size,source.Format,TextureFlags.Dynamic )
- End
-
- Super.SetRenderTarget( _target,New Recti( 0,0,size ) )
- Device.Shader=_shader
- Device.BindUniformBlock( _uniforms )
-
- RenderQuad()
- End
-
- Private
-
- Field _shader:Shader
- Field _uniforms:UniformBlock
- Field _target:RenderTarget
-
- End
|