public void AddVertexBuffer(string name, IBufferObject vbo) { if (nameToVbo.ContainsKey(name) && nameToVbo[name] == vbo) { return; } nameToVbo[name] = vbo; if (vbo.UsesLayoutIndex) { vbo.LayoutIndex = nextLayoutIndex; nextLayoutIndex++; } vboNamesToBind.Add(name); vbo.OnChanged += () => { OnChanged?.Invoke(); }; OnChanged?.Invoke(); }
/// <summary> /// Initializes a new instance of the <see cref="SynchronizedBufferObject{T}" /> class. /// </summary> /// <param name="bufferObject">The <see cref="IBufferObject{T}"/> to wrap.</param> public SynchronizedBufferObject(IVertexBufferObject <T> bufferObject) { this.bufferObject = bufferObject; }