/*
 * Copyright (c) Contributors to the Open 3D Engine Project.
 * For complete copyright and license terms please see the LICENSE at the root of this distribution.
 * 
 * SPDX-License-Identifier: Apache-2.0 OR MIT
 *
 */


ShaderResourceGroupSemantic Slot1
{
    FrequencyId = 0;
};

partial ShaderResourceGroup PartialSRG1 : Slot1
{
    struct Colors
    {
        float4 m_color0;
        float4 m_color1;
    } m_colors;
}

ShaderResourceGroupSemantic Slot2
{
    FrequencyId = 1;
};

ShaderResourceGroup CompleteSRG2 : Slot2
{
    struct Colors
    {
        float4 m_color0;
        float4 m_color1;
    } m_colors;
}

partial ShaderResourceGroup PartialSRG1
{
    float4 GetColorsSum()
    {
        return m_colors.m_color0 + m_colors.m_color1 + CompleteSRG2::m_colors.m_color0;
    }
}

ShaderResourceGroupSemantic MainSlot
{
    FrequencyId = 2;
};

ShaderResourceGroup MainSRG : MainSlot
{
    float4 m_outputColor;
}

[numthreads(1, 1, 1)]
void MainCS(uint3 dispatch_id : SV_DispatchThreadID)
{
    MainSRG::m_outputColor = float4(0,0,0,0);
}
