diff --git a/repos/gems/include/nano3d/scene.h b/repos/gems/include/nano3d/scene.h
index 0254985f8..5b0ef27dd 100644
--- a/repos/gems/include/nano3d/scene.h
+++ b/repos/gems/include/nano3d/scene.h
@@ -69,6 +69,8 @@ class Nano3d::Scene
{
enum { NUM_BUFFERS = 3 };
+ Genode::Region_map &rm;
+
static Framebuffer::Session &
_init_framebuffer(Nitpicker::Connection &nitpicker,
Nitpicker::Area const size)
@@ -104,7 +106,7 @@ class Nano3d::Scene
return Nitpicker::Area(mode.width(), mode.height()/NUM_BUFFERS);
}
- Genode::Attached_dataspace ds { framebuffer.dataspace() };
+ Genode::Attached_dataspace ds { rm, framebuffer.dataspace() };
PT *pixel_base(unsigned i)
{
@@ -134,12 +136,13 @@ class Nano3d::Scene
NUM_BUFFERS*size().count());
}
- Mapped_framebuffer(Nitpicker::Connection &nitpicker, Nitpicker::Area size)
+ Mapped_framebuffer(Nitpicker::Connection &nitpicker, Nitpicker::Area size,
+ Genode::Region_map &rm)
:
- framebuffer(_init_framebuffer(nitpicker, size))
+ rm(rm), framebuffer(_init_framebuffer(nitpicker, size))
{ }
- } _framebuffer { _nitpicker, _size };
+ } _framebuffer { _nitpicker, _size, _env.rm() };
Nitpicker::Session::View_handle _view_handle = _nitpicker.create_view();
@@ -189,7 +192,7 @@ class Nano3d::Scene
Timer::Connection _timer { _env };
- Genode::Attached_dataspace _input_ds { _nitpicker.input()->dataspace() };
+ Genode::Attached_dataspace _input_ds { _env.rm(), _nitpicker.input()->dataspace() };
Input_handler *_input_handler_callback = nullptr;
diff --git a/repos/gems/src/app/nano3d/main.cc b/repos/gems/src/app/nano3d/main.cc
index 42256a6da..656cbdc2e 100644
--- a/repos/gems/src/app/nano3d/main.cc
+++ b/repos/gems/src/app/nano3d/main.cc
@@ -12,6 +12,7 @@
*/
/* Genode includes */
+#include
#include
#include
#include
@@ -33,7 +34,8 @@ class Scene : public Nano3d::Scene
private:
- Genode::Env &_env;
+ Genode::Env &_env;
+ Genode::Heap _heap { _env.ram(), _env.rm() };
Nitpicker::Area const _size;
@@ -114,10 +116,8 @@ class Scene : public Nano3d::Scene
private:
- Polygon::Shaded_painter _shaded_painter {
- *Genode::env()->heap(), _size.h() };
- Polygon::Textured_painter _textured_painter {
- *Genode::env()->heap(), _size.h() };
+ Polygon::Shaded_painter _shaded_painter { _heap, _size.h() };
+ Polygon::Textured_painter _textured_painter { _heap, _size.h() };
Nano3d::Cube_shape const _cube { 7000 };
Nano3d::Dodecahedron_shape const _dodecahedron { 10000 };