// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only

// RHI version, note the explicit binding (1)

#if QSSG_REDUCE_MAX_NUM_LIGHTS
#define MAX_NUM_LIGHTS 5
#else
#define MAX_NUM_LIGHTS 15
#endif

struct LightSource
{
    vec4  position;
    vec4  direction;              // Specifies the light direction in world coordinates.
    vec4  diffuse;
    vec4  specular;
    float coneAngle;              // Specifies the intensity distribution of the light.
    float innerConeAngle;         // Specifies the maximum spread angle of the light.
    float constantAttenuation;    // Specifies the constant light attenuation factor.
    float linearAttenuation;      // Specifies the linear light attenuation factor.
    float quadraticAttenuation;   // Specifies the quadratic light attenuation factor.
};

layout (std140, binding = 1) uniform cbLights
{
    int uNumLights;
    LightSource lights[MAX_NUM_LIGHTS];
} ubLights;
