/// <inheritdoc/> protected internal override void OnDestroyed() { if (GraphicsDevice != null) { GraphicsDevice.RegisterBufferMemoryUsage(-SizeInBytes); } base.OnDestroyed(); }
/// <summary> /// Initializes a new instance of the <see cref="Buffer" /> class. /// </summary> /// <param name="description">The description.</param> /// <param name="viewFlags">Type of the buffer.</param> /// <param name="viewFormat">The view format.</param> /// <param name="dataPointer">The data pointer.</param> protected Buffer InitializeFromImpl(BufferDescription description, BufferFlags viewFlags, PixelFormat viewFormat, IntPtr dataPointer) { bufferDescription = description; nativeDescription = ConvertToNativeDescription(GraphicsDevice, Description); ViewFlags = viewFlags; InitCountAndViewFormat(out this.elementCount, ref viewFormat); ViewFormat = viewFormat; Recreate(dataPointer); if (GraphicsDevice != null) { GraphicsDevice.RegisterBufferMemoryUsage(SizeInBytes); } return(this); }
/// <inheritdoc/> protected internal override void OnDestroyed() { using (GraphicsDevice.UseOpenGLCreationContext()) { GL.DeleteTextures(1, ref TextureId); GL.DeleteBuffers(1, ref BufferId); } BufferId = 0; if (GraphicsDevice != null) { GraphicsDevice.RegisterBufferMemoryUsage(-SizeInBytes); } base.OnDestroyed(); }
/// <summary> /// Initializes a new instance of the <see cref="Buffer" /> class. /// </summary> /// <param name="description">The description.</param> /// <param name="viewFlags">Type of the buffer.</param> /// <param name="viewFormat">The view format.</param> /// <param name="dataPointer">The data pointer.</param> protected Buffer InitializeFromImpl(BufferDescription description, BufferFlags viewFlags, PixelFormat viewFormat, IntPtr dataPointer) { bufferDescription = description; ViewFlags = viewFlags; bool isCompressed; OpenGLConvertExtensions.ConvertPixelFormat(GraphicsDevice, ref viewFormat, out TextureInternalFormat, out TextureFormat, out TextureType, out bufferTextureElementSize, out isCompressed); ViewFormat = viewFormat; Recreate(dataPointer); if (GraphicsDevice != null) { GraphicsDevice.RegisterBufferMemoryUsage(SizeInBytes); } return(this); }
/// <summary> /// Initializes a new instance of the <see cref="Buffer" /> class. /// </summary> /// <param name="description">The description.</param> /// <param name="viewFlags">Type of the buffer.</param> /// <param name="viewFormat">The view format.</param> /// <param name="dataPointer">The data pointer.</param> protected Buffer InitializeFromImpl(BufferDescription description, BufferFlags viewFlags, PixelFormat viewFormat, IntPtr dataPointer) { bufferDescription = description; nativeDescription = ConvertToNativeDescription(Description); ViewFlags = viewFlags; InitCountAndViewFormat(out this.elementCount, ref viewFormat); ViewFormat = viewFormat; NativeDeviceChild = new SharpDX.Direct3D11.Buffer(GraphicsDevice.NativeDevice, dataPointer, nativeDescription); // Staging resource don't have any views if (nativeDescription.Usage != ResourceUsage.Staging) { this.InitializeViews(); } if (GraphicsDevice != null) { GraphicsDevice.RegisterBufferMemoryUsage(SizeInBytes); } return(this); }
/// <inheritdoc/> protected internal override void OnDestroyed() { GraphicsDevice.RegisterBufferMemoryUsage(-SizeInBytes); if (NativeBufferView != VkBufferView.Null) { GraphicsDevice.Collect(NativeBufferView); NativeBufferView = VkBufferView.Null; } if (NativeBuffer != VkBuffer.Null) { GraphicsDevice.Collect(NativeBuffer); NativeBuffer = VkBuffer.Null; } if (NativeMemory != VkDeviceMemory.Null) { GraphicsDevice.Collect(NativeMemory); NativeMemory = VkDeviceMemory.Null; } base.OnDestroyed(); }