| // Copyright 2016 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. |
| |
| #ifndef SRC_UI_LIB_ESCHER_SCENE_STAGE_H_ |
| #define SRC_UI_LIB_ESCHER_SCENE_STAGE_H_ |
| |
| #include <utility> |
| |
| #include "src/lib/fxl/macros.h" |
| #include "src/ui/lib/escher/geometry/types.h" |
| #include "src/ui/lib/escher/scene/ambient_light.h" |
| #include "src/ui/lib/escher/scene/directional_light.h" |
| #include "src/ui/lib/escher/scene/viewing_volume.h" |
| |
| namespace escher { |
| |
| class Stage { |
| public: |
| Stage(); |
| ~Stage(); |
| |
| const ViewingVolume& viewing_volume() const { return viewing_volume_; }; |
| void set_viewing_volume(ViewingVolume value); |
| |
| const DirectionalLight& key_light() const { return key_light_; } |
| void set_key_light(DirectionalLight value) { key_light_ = std::move(value); } |
| |
| const AmbientLight& fill_light() const { return fill_light_; } |
| void set_fill_light(AmbientLight value) { fill_light_ = std::move(value); } |
| |
| const vec4& clear_color() const { return clear_color_; }; |
| void set_clear_color(vec4 clear_color) { clear_color_ = clear_color; }; |
| void set_clear_color(vec3 clear_color) { set_clear_color(vec4(clear_color, 1.f)); } |
| |
| float width() const { return viewing_volume_.width(); } |
| float height() const { return viewing_volume_.height(); } |
| |
| private: |
| ViewingVolume viewing_volume_; |
| DirectionalLight key_light_; |
| AmbientLight fill_light_; |
| vec4 clear_color_; |
| |
| FXL_DISALLOW_COPY_AND_ASSIGN(Stage); |
| }; |
| |
| } // namespace escher |
| |
| #endif // SRC_UI_LIB_ESCHER_SCENE_STAGE_H_ |