summaryrefslogtreecommitdiffstats
path: root/libdimensionxx/scene.cpp
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@gmail.com>2009-07-12 21:17:20 +0000
committerTavian Barnes <tavianator@gmail.com>2009-07-12 21:17:20 +0000
commit597b9a13dae1f514ca8afa56bab008cb67d4ac40 (patch)
tree16d1f85568b839b7847aff9570d43940bee67f15 /libdimensionxx/scene.cpp
parentbcf65bd050d9fbe364a60ab7ec0221539ca2c2af (diff)
downloaddimension-597b9a13dae1f514ca8afa56bab008cb67d4ac40.tar.xz
Add ability to set rendering quality.
Diffstat (limited to 'libdimensionxx/scene.cpp')
-rw-r--r--libdimensionxx/scene.cpp23
1 files changed, 21 insertions, 2 deletions
diff --git a/libdimensionxx/scene.cpp b/libdimensionxx/scene.cpp
index f41f3b5..5695c1b 100644
--- a/libdimensionxx/scene.cpp
+++ b/libdimensionxx/scene.cpp
@@ -23,7 +23,7 @@
namespace Dimension
{
// Allocate a dmnsn_scene
- Scene::Scene(const Color& background, Camera& camera, Canvas& canvas)
+ Scene::Scene(Camera& camera, Canvas& canvas)
: m_scene(new dmnsn_scene*(dmnsn_new_scene())), m_camera(camera.copy()),
m_canvas(new Canvas(canvas)), m_objects(dmnsn()->objects)
{
@@ -31,9 +31,10 @@ namespace Dimension
throw Dimension_Error("Couldn't allocate scene.");
}
- dmnsn()->background = background.dmnsn();
+ dmnsn()->background = Color(sRGB(0.0, 0.0, 0.0)).dmnsn();
dmnsn()->camera = this->camera().dmnsn();
dmnsn()->canvas = this->canvas().dmnsn();
+ dmnsn()->quality = static_cast<dmnsn_quality>(RENDER_FULL);
}
// Delete the scene
@@ -53,6 +54,12 @@ namespace Dimension
return Color(dmnsn()->background);
}
+ void
+ Scene::background(const Color& color)
+ {
+ dmnsn()->background = color.dmnsn();
+ }
+
Camera&
Scene::camera()
{
@@ -89,6 +96,18 @@ namespace Dimension
return m_objects;
}
+ Quality
+ Scene::quality() const
+ {
+ return static_cast<Quality>(dmnsn()->quality);
+ }
+
+ void
+ Scene::quality(Quality quality)
+ {
+ dmnsn()->quality = static_cast<dmnsn_quality>(quality);
+ }
+
// Access the wrapped C object.
dmnsn_scene*