// Copyright 2017 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

library fuchsia.ui.gfx;

/// These are all of the types of parameters that can be set to configure a
/// `Renderer`.
union RendererParam {
    1: ShadowTechnique shadow_technique;

    [Deprecated]
    2: RenderFrequency reserved; // No longer supported.

    3: bool enable_debugging;
};

/// Represents the shadow algorithm that the `Renderer` should use when lighting
/// the scene.
enum ShadowTechnique {
    /// No shadows.
    UNSHADOWED = 0;
    /// Default.  Screen-space, depth-buffer based shadows; SSDO-ish.
    SCREEN_SPACE = 1;
    /// Basic shadow map.
    SHADOW_MAP = 2;
    /// Moment shadow map (see http:///momentsingraphics.de).
    MOMENT_SHADOW_MAP = 3;
    /// Stencil shadow volume.
    STENCIL_SHADOW_VOLUME = 4;
};

[Deprecated]
enum RenderFrequency {
    WHEN_REQUESTED = 0;
    CONTINUOUSLY = 1;
};
