using XCEngine; namespace XCEngine.Rendering { public sealed class CommandBuffer { public CommandBuffer() : this(string.Empty) { } public CommandBuffer( string name) : this( name, 0ul) { } internal CommandBuffer( string name, ulong nativeHandle) { this.name = name ?? string.Empty; m_nativeHandle = nativeHandle; } public string name { get; set; } public bool isValid => m_nativeHandle != 0ul; public bool ClearRenderTarget( Color color) { return m_nativeHandle != 0ul && InternalCalls.Rendering_CommandBuffer_ClearRenderTarget( m_nativeHandle, ref color); } public bool DrawRendererList( RendererListHandle rendererList) { return m_nativeHandle != 0ul && rendererList.isValid && InternalCalls.Rendering_CommandBuffer_DrawRendererList( m_nativeHandle, rendererList.nativeIndex); } public bool DrawSkybox() { return m_nativeHandle != 0ul && InternalCalls.Rendering_CommandBuffer_DrawSkybox( m_nativeHandle); } private readonly ulong m_nativeHandle; } }