Original Post
I'm writing a paint app where the pixel processing is (optionally) done in HW. Brushes can affect the canvas not only by copying pixels to it, but also affect it in ways that require pixel shaders (burn, blur, desaturate etc). As I understand it, pixel shaders can't access the surface they render to. The only way I can think of is the following: * Copy the region that will be affected from the canvas to a new texture * Use this texture and the brush texture as samplers in a shader * RenderToTexture * Copy the texture back to the canvas' region All this copying seems a bit unnecessary. Is there a better way?