aboutsummaryrefslogtreecommitdiff
path: root/src/scene/light_impl.h
blob: 1aa0bb4add53a9123ed296bdbc1ed99c94b9d42d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#pragma once

#include <gfx/scene/light.h>

#include "types.h"

typedef struct Texture Texture;

/// An environment light.
typedef struct EnvironmentLight {
  const Texture* environment_map;
  const Texture* irradiance_map;              // Renderer implementation.
  const Texture* prefiltered_environment_map; // Renderer implementation.
  int max_reflection_lod; // Mandatory when prefiltered_environment_map is
                          // given.
} EnvironmentLight;

/// A scene light.
typedef struct Light {
  LightType type;
  union {
    EnvironmentLight environment;
  };
  node_idx parent; // Parent SceneNode.
} Light;