internal void apply(Shader shader, string targetName) { Fbo target = getBuffer(targetName); target.updateTexture(delegate() { Shader.Bind(shader); FullscreenQuad.render(null, target.Width, target.Height); Shader.Unbind(); }); }
internal void setBuffer(Fbo fbo) { if (buffer == null) { buffer = fbo; } else { throw new Exception("Error, buffer already initialized!"); } }
internal Fbo getBuffer(string buffer) { if (fbos.ContainsKey(buffer)) { return(fbos[buffer]); } Fbo fbo = new Fbo(512, 512, false); fbos.Add(buffer, fbo); return(fbo); }
internal void createBuffers() { StringCounter sc = new StringCounter(); foreach (BufferReference b in references) { sc.add(b.Name); } StringCounter usages = new StringCounter(); foreach (BufferReference b in references) { Fbo buff = allocate(b.Name); b.setBuffer(buff); usages.add(b.Name); if (usages.countsOf(b.Name) == sc.countsOf(b.Name)) { release(buff); } } }
private void release(Fbo buff) { creators[new Size { Width = buff.Width, Height = buff.Height }].release(buff); }
public void release(Fbo fbo) { pool.release(fbo); }
public override void apply(Shader sh, RenderArgs ra) { Fbo buff = ra.getBuffer(buffer); buff.bindTexture(location); }
public Task <int> SaveFboAsync(Fbo fbo) { return(_database.InsertAsync(fbo)); }