mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-21 06:33:31 +00:00
parent
21ed41da9a
commit
3bd4197951
@ -27,7 +27,7 @@ class Nano3d::Cube_shape
|
||||
|
||||
typedef Nano3d::Vertex_array<NUM_VERTICES> Vertex_array;
|
||||
|
||||
Vertex_array _vertices;
|
||||
Vertex_array _vertices { };
|
||||
|
||||
enum { VERTICES_PER_FACE = 4 };
|
||||
|
||||
|
@ -68,7 +68,7 @@ class Nano3d::Dodecahedron_shape
|
||||
|
||||
typedef Nano3d::Vertex_array<NUM_VERTICES> Vertex_array;
|
||||
|
||||
Vertex_array _vertices;
|
||||
Vertex_array _vertices { };
|
||||
|
||||
Edge _edges[NUM_EDGES];
|
||||
Face _faces[NUM_FACES];
|
||||
|
@ -35,7 +35,7 @@ namespace Nano3d {
|
||||
}
|
||||
|
||||
|
||||
struct Nano3d::Input_handler
|
||||
struct Nano3d::Input_handler : Genode::Interface
|
||||
{
|
||||
virtual void handle_input(Input::Event const [], unsigned num_events) = 0;
|
||||
};
|
||||
@ -55,6 +55,12 @@ class Nano3d::Scene
|
||||
|
||||
private:
|
||||
|
||||
/**
|
||||
* Noncopyable
|
||||
*/
|
||||
Scene(Scene const &);
|
||||
Scene &operator = (Scene const &);
|
||||
|
||||
Genode::Env &_env;
|
||||
|
||||
/**
|
||||
@ -279,9 +285,11 @@ class Nano3d::Scene
|
||||
:
|
||||
_env(env), _pos(pos), _size(size)
|
||||
{
|
||||
typedef Nitpicker::Session::View_handle View_handle;
|
||||
|
||||
Nitpicker::Rect rect(_pos, _size);
|
||||
_nitpicker.enqueue<Command::Geometry>(_view_handle, rect);
|
||||
_nitpicker.enqueue<Command::To_front>(_view_handle);
|
||||
_nitpicker.enqueue<Command::To_front>(_view_handle, View_handle());
|
||||
_nitpicker.execute();
|
||||
|
||||
_nitpicker.input()->sigh(_input_handler);
|
||||
@ -292,6 +300,8 @@ class Nano3d::Scene
|
||||
_framebuffer.framebuffer.sync_sigh(_sync_handler);
|
||||
}
|
||||
|
||||
virtual ~Scene() { }
|
||||
|
||||
unsigned long elapsed_ms() const { return _timer.elapsed_ms(); }
|
||||
|
||||
void input_handler(Input_handler *input_handler)
|
||||
|
@ -93,11 +93,11 @@ Nano3d::Sincos_frac16::Sincos_frac16()
|
||||
ny_high = ny_high << 1;
|
||||
|
||||
/* use new sin/cos values for next iteration, preserve sign */
|
||||
x_low = (nx_high & 0x80000000) ? (nx_high | (~0 << 16)) : (nx_high & 0xffff);
|
||||
x_low = (nx_high & 0x80000000) ? (nx_high | (~0U << 16)) : (nx_high & 0xffff);
|
||||
x_low = x_low >> 1;
|
||||
x_mid = nx_high >> 16;
|
||||
|
||||
y_low = (ny_high & 0x80000000) ? (ny_high | (~0 << 16)) : (ny_high & 0xffff);
|
||||
y_low = (ny_high & 0x80000000) ? (ny_high | (~0U << 16)) : (ny_high & 0xffff);
|
||||
y_low = y_low >> 1;
|
||||
y_mid = ny_high >> 16;
|
||||
}
|
||||
|
@ -52,12 +52,12 @@ struct Polygon::Point_base : Genode::Point<>
|
||||
/**
|
||||
* Return edge attribute by ID
|
||||
*/
|
||||
inline int edge_attr(int id) const { return x(); }
|
||||
inline int edge_attr(int) const { return x(); }
|
||||
|
||||
/**
|
||||
* Assign value to edge attribute with specified ID
|
||||
*/
|
||||
inline void edge_attr(int id, int value) { *this = Point_base(value, y()); }
|
||||
inline void edge_attr(int, int value) { *this = Point_base(value, y()); }
|
||||
};
|
||||
|
||||
|
||||
|
@ -56,7 +56,7 @@ struct Line_painter
|
||||
|
||||
Lut()
|
||||
{
|
||||
auto fill_segment = [&] (long x1, long y1, long x2, long y2)
|
||||
auto fill_segment = [&] (long x1, long y1, long x2, long)
|
||||
{
|
||||
for (long i = x1; i < x2; i++) value[i] = y1;
|
||||
};
|
||||
|
@ -118,6 +118,12 @@ class Polygon::Painter_base
|
||||
|
||||
int * const _edges = (int *)_alloc.alloc(_edges_size());
|
||||
|
||||
/**
|
||||
* Noncopyable
|
||||
*/
|
||||
Edge_buffers(Edge_buffers const &);
|
||||
Edge_buffers &operator = (Edge_buffers const &);
|
||||
|
||||
public:
|
||||
|
||||
Edge_buffers(Genode::Allocator &alloc, unsigned edge_len)
|
||||
|
@ -39,7 +39,7 @@ class Polygon::Shaded_painter : public Polygon::Painter_base
|
||||
*/
|
||||
struct Point : Point_base
|
||||
{
|
||||
Color color;
|
||||
Color color { };
|
||||
|
||||
Point() { }
|
||||
Point(int x, int y, Color color) : Point_base(x, y), color(color) { }
|
||||
|
@ -41,13 +41,13 @@ namespace Backdrop { struct Main; }
|
||||
|
||||
struct Backdrop::Main
|
||||
{
|
||||
Genode::Env &env;
|
||||
Genode::Env &_env;
|
||||
|
||||
Genode::Heap heap { env.ram(), env.rm() };
|
||||
Genode::Heap _heap { _env.ram(), _env.rm() };
|
||||
|
||||
Genode::Attached_rom_dataspace config { env, "config" };
|
||||
Genode::Attached_rom_dataspace _config { _env, "config" };
|
||||
|
||||
Nitpicker::Connection nitpicker { env, "backdrop" };
|
||||
Nitpicker::Connection _nitpicker { _env, "backdrop" };
|
||||
|
||||
struct Buffer
|
||||
{
|
||||
@ -116,50 +116,52 @@ struct Backdrop::Main
|
||||
}
|
||||
};
|
||||
|
||||
Constructible<Buffer> buffer;
|
||||
Constructible<Buffer> _buffer { };
|
||||
|
||||
Nitpicker::Session::View_handle view_handle = nitpicker.create_view();
|
||||
Nitpicker::Session::View_handle _view_handle = _nitpicker.create_view();
|
||||
|
||||
void _update_view()
|
||||
{
|
||||
/* display view behind all others */
|
||||
typedef Nitpicker::Session::Command Command;
|
||||
nitpicker.enqueue<Command::Background>(view_handle);
|
||||
Nitpicker::Rect rect(Nitpicker::Point(), buffer->size());
|
||||
nitpicker.enqueue<Command::Geometry>(view_handle, rect);
|
||||
nitpicker.enqueue<Command::To_back>(view_handle);
|
||||
nitpicker.execute();
|
||||
typedef Nitpicker::Session::Command Command;
|
||||
typedef Nitpicker::Session::View_handle View_handle;
|
||||
|
||||
_nitpicker.enqueue<Command::Background>(_view_handle);
|
||||
Nitpicker::Rect rect(Nitpicker::Point(), _buffer->size());
|
||||
_nitpicker.enqueue<Command::Geometry>(_view_handle, rect);
|
||||
_nitpicker.enqueue<Command::To_back>(_view_handle, View_handle());
|
||||
_nitpicker.execute();
|
||||
}
|
||||
|
||||
/**
|
||||
* Function called on config change or mode change
|
||||
*/
|
||||
void handle_config();
|
||||
void _handle_config();
|
||||
|
||||
void handle_config_signal() {
|
||||
Libc::with_libc([&] () { handle_config(); }); }
|
||||
void _handle_config_signal() {
|
||||
Libc::with_libc([&] () { _handle_config(); }); }
|
||||
|
||||
Signal_handler<Main> config_dispatcher = {
|
||||
env.ep(), *this, &Main::handle_config_signal };
|
||||
Signal_handler<Main> _config_handler = {
|
||||
_env.ep(), *this, &Main::_handle_config_signal };
|
||||
|
||||
void handle_sync();
|
||||
void _handle_sync();
|
||||
|
||||
Signal_handler<Main> sync_handler = {
|
||||
env.ep(), *this, &Main::handle_sync};
|
||||
Signal_handler<Main> _sync_handler = {
|
||||
_env.ep(), *this, &Main::_handle_sync};
|
||||
|
||||
template <typename PT>
|
||||
void paint_texture(Surface<PT> &, Texture<PT> const &, Surface_base::Point, bool);
|
||||
void _paint_texture(Surface<PT> &, Texture<PT> const &, Surface_base::Point, bool);
|
||||
|
||||
void apply_image(Xml_node);
|
||||
void apply_fill(Xml_node);
|
||||
void _apply_image(Xml_node);
|
||||
void _apply_fill(Xml_node);
|
||||
|
||||
Main(Genode::Env &env) : env(env)
|
||||
Main(Genode::Env &env) : _env(env)
|
||||
{
|
||||
nitpicker.mode_sigh(config_dispatcher);
|
||||
_nitpicker.mode_sigh(_config_handler);
|
||||
|
||||
config.sigh(config_dispatcher);
|
||||
_config.sigh(_config_handler);
|
||||
|
||||
handle_config();
|
||||
_handle_config();
|
||||
}
|
||||
};
|
||||
|
||||
@ -201,8 +203,8 @@ static Surface_base::Area calc_scaled_size(Xml_node operation,
|
||||
|
||||
|
||||
template <typename PT>
|
||||
void Backdrop::Main::paint_texture(Surface<PT> &surface, Texture<PT> const &texture,
|
||||
Surface_base::Point pos, bool tiled)
|
||||
void Backdrop::Main::_paint_texture(Surface<PT> &surface, Texture<PT> const &texture,
|
||||
Surface_base::Point pos, bool tiled)
|
||||
{
|
||||
/* prevent division by zero */
|
||||
if (texture.size().count() == 0)
|
||||
@ -230,7 +232,7 @@ void Backdrop::Main::paint_texture(Surface<PT> &surface, Texture<PT> const &text
|
||||
}
|
||||
|
||||
|
||||
void Backdrop::Main::apply_image(Xml_node operation)
|
||||
void Backdrop::Main::_apply_image(Xml_node operation)
|
||||
{
|
||||
typedef Surface_base::Point Point;
|
||||
typedef Surface_base::Area Area;
|
||||
@ -244,20 +246,20 @@ void Backdrop::Main::apply_image(Xml_node operation)
|
||||
png_file_name[0] = 0;
|
||||
operation.attribute("png").value(png_file_name, sizeof(png_file_name));
|
||||
|
||||
File file(png_file_name, heap);
|
||||
File file(png_file_name, _heap);
|
||||
|
||||
Anchor anchor(operation);
|
||||
|
||||
Png_image png_image(env.ram(), env.rm(), heap, file.data<void>());
|
||||
Png_image png_image(_env.ram(), _env.rm(), _heap, file.data<void>());
|
||||
|
||||
Area const scaled_size = calc_scaled_size(operation, png_image.size(),
|
||||
Area(buffer->mode.width(),
|
||||
buffer->mode.height()));
|
||||
Area(_buffer->mode.width(),
|
||||
_buffer->mode.height()));
|
||||
/*
|
||||
* Determine parameters of graphics operation
|
||||
*/
|
||||
int const h_gap = (int)buffer->mode.width() - scaled_size.w(),
|
||||
v_gap = (int)buffer->mode.height() - scaled_size.h();
|
||||
int const h_gap = (int)_buffer->mode.width() - scaled_size.w(),
|
||||
v_gap = (int)_buffer->mode.height() - scaled_size.h();
|
||||
|
||||
int const anchored_xpos = anchor.horizontal == Anchor::LOW ? 0
|
||||
: anchor.horizontal == Anchor::CENTER ? h_gap/2
|
||||
@ -281,8 +283,8 @@ void Backdrop::Main::apply_image(Xml_node operation)
|
||||
Texture<Pixel_rgb888> *png_texture = png_image.texture<Pixel_rgb888>();
|
||||
|
||||
/* create texture with the scaled image */
|
||||
Chunky_texture<Pixel_rgb888> scaled_texture(env.ram(), env.rm(), scaled_size);
|
||||
scale(*png_texture, scaled_texture, heap);
|
||||
Chunky_texture<Pixel_rgb888> scaled_texture(_env.ram(), _env.rm(), scaled_size);
|
||||
scale(*png_texture, scaled_texture, _heap);
|
||||
|
||||
png_image.release_texture(png_texture);
|
||||
|
||||
@ -292,17 +294,17 @@ void Backdrop::Main::apply_image(Xml_node operation)
|
||||
|
||||
/* create texture with down-sampled scaled image */
|
||||
typedef Pixel_rgb565 PT;
|
||||
Chunky_texture<PT> texture(env.ram(), env.rm(), scaled_size);
|
||||
convert_pixel_format(scaled_texture, texture, alpha, heap);
|
||||
Chunky_texture<PT> texture(_env.ram(), _env.rm(), scaled_size);
|
||||
convert_pixel_format(scaled_texture, texture, alpha, _heap);
|
||||
|
||||
/* paint texture onto surface */
|
||||
buffer->apply_to_surface<PT>([&] (Surface<PT> &surface) {
|
||||
paint_texture(surface, texture, pos, tiled);
|
||||
_buffer->apply_to_surface<PT>([&] (Surface<PT> &surface) {
|
||||
_paint_texture(surface, texture, pos, tiled);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
void Backdrop::Main::apply_fill(Xml_node operation)
|
||||
void Backdrop::Main::_apply_fill(Xml_node operation)
|
||||
{
|
||||
/*
|
||||
* Code specific for the screen mode's pixel format
|
||||
@ -313,57 +315,53 @@ void Backdrop::Main::apply_fill(Xml_node operation)
|
||||
|
||||
Color const color = Decorator::attribute(operation, "color", Color(0, 0, 0));
|
||||
|
||||
buffer->apply_to_surface<PT>([&] (Surface<PT> &surface) {
|
||||
_buffer->apply_to_surface<PT>([&] (Surface<PT> &surface) {
|
||||
Box_painter::paint(surface, Surface_base::Rect(Surface_base::Point(0, 0),
|
||||
buffer->size()), color);
|
||||
_buffer->size()), color);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
void Backdrop::Main::handle_config()
|
||||
void Backdrop::Main::_handle_config()
|
||||
{
|
||||
config.update();
|
||||
_config.update();
|
||||
|
||||
buffer.construct(env, nitpicker);
|
||||
_buffer.construct(_env, _nitpicker);
|
||||
|
||||
/* clear surface */
|
||||
apply_fill(Xml_node("<fill color=\"#000000\"/>"));
|
||||
_apply_fill(Xml_node("<fill color=\"#000000\"/>"));
|
||||
|
||||
/* apply graphics primitives defined in the config */
|
||||
try {
|
||||
for (unsigned i = 0; i < config.xml().num_sub_nodes(); i++) {
|
||||
try {
|
||||
Xml_node operation = config.xml().sub_node(i);
|
||||
_config.xml().for_each_sub_node([&] (Xml_node operation) {
|
||||
try {
|
||||
if (operation.has_type("image"))
|
||||
_apply_image(operation);
|
||||
|
||||
if (operation.has_type("image"))
|
||||
apply_image(operation);
|
||||
|
||||
if (operation.has_type("fill"))
|
||||
apply_fill(operation);
|
||||
}
|
||||
catch (...) {
|
||||
/*
|
||||
* Ignore failure of individual operation, i.e., non-existing
|
||||
* files or malformed PNG data.
|
||||
*/
|
||||
}
|
||||
if (operation.has_type("fill"))
|
||||
_apply_fill(operation);
|
||||
}
|
||||
} catch (...) { /* ignore failure to obtain config */ }
|
||||
catch (...) {
|
||||
/*
|
||||
* Ignore failure of individual operation, i.e., non-existing
|
||||
* files or malformed PNG data.
|
||||
*/
|
||||
}
|
||||
});
|
||||
|
||||
/* schedule buffer refresh */
|
||||
nitpicker.framebuffer()->sync_sigh(sync_handler);
|
||||
_nitpicker.framebuffer()->sync_sigh(_sync_handler);
|
||||
}
|
||||
|
||||
|
||||
void Backdrop::Main::handle_sync()
|
||||
void Backdrop::Main::_handle_sync()
|
||||
{
|
||||
Libc::with_libc([&] () {
|
||||
buffer->flush_surface();
|
||||
_buffer->flush_surface();
|
||||
_update_view();
|
||||
});
|
||||
|
||||
/* disable sync signal until the next call of 'handle_config' */
|
||||
nitpicker.framebuffer()->sync_sigh(Signal_context_capability());
|
||||
_nitpicker.framebuffer()->sync_sigh(Signal_context_capability());
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,5 +1,3 @@
|
||||
TARGET = backdrop
|
||||
SRC_CC = main.cc
|
||||
LIBS = base libc libpng zlib blit file
|
||||
|
||||
CC_CXX_WARN_STRICT =
|
||||
|
@ -125,7 +125,7 @@ class Cpu_load_display::Cpu : public Genode::List<Cpu>::Element
|
||||
|
||||
Genode::Allocator &_heap;
|
||||
Genode::Point<> const _pos;
|
||||
Genode::List<Timeline> _timelines;
|
||||
Genode::List<Timeline> _timelines { };
|
||||
|
||||
Timeline *_lookup_timeline(Xml_node subject)
|
||||
{
|
||||
@ -215,7 +215,7 @@ class Cpu_load_display::Cpu_registry
|
||||
|
||||
Genode::Allocator &_heap;
|
||||
|
||||
Genode::List<Cpu> _cpus;
|
||||
Genode::List<Cpu> _cpus { };
|
||||
|
||||
static Genode::Point<> _cpu_pos(Xml_node subject)
|
||||
{
|
||||
@ -446,7 +446,7 @@ class Cpu_load_display::Scene : public Nano3d::Scene<PT>
|
||||
|
||||
/* determine number of CPUs */
|
||||
unsigned num_cpus = 0;
|
||||
_cpu_registry.for_each_cpu([&] (Cpu const &cpu) { num_cpus++; });
|
||||
_cpu_registry.for_each_cpu([&] (Cpu const &) { num_cpus++; });
|
||||
|
||||
if (num_cpus == 0)
|
||||
return;
|
||||
|
@ -2,5 +2,3 @@ TARGET = cpu_load_display
|
||||
SRC_CC = main.cc
|
||||
LIBS = base
|
||||
INC_DIR += $(PRG_DIR)
|
||||
|
||||
CC_CXX_WARN_STRICT =
|
||||
|
@ -41,7 +41,7 @@ namespace Driver_manager {
|
||||
}
|
||||
|
||||
|
||||
struct Driver_manager::Block_devices_generator
|
||||
struct Driver_manager::Block_devices_generator : Interface
|
||||
{
|
||||
virtual void generate_block_devices() = 0;
|
||||
};
|
||||
@ -310,7 +310,7 @@ struct Driver_manager::Nvme_driver : Device_driver
|
||||
};
|
||||
|
||||
|
||||
struct Driver_manager::Main : Block_devices_generator
|
||||
struct Driver_manager::Main : private Block_devices_generator
|
||||
{
|
||||
Env &_env;
|
||||
|
||||
@ -325,11 +325,11 @@ struct Driver_manager::Main : Block_devices_generator
|
||||
Reporter _usb_drv_config { _env, "config", "usb_drv.config" };
|
||||
Reporter _block_devices { _env, "block_devices" };
|
||||
|
||||
Constructible<Intel_fb_driver> _intel_fb_driver;
|
||||
Constructible<Vesa_fb_driver> _vesa_fb_driver;
|
||||
Constructible<Boot_fb_driver> _boot_fb_driver;
|
||||
Constructible<Ahci_driver> _ahci_driver;
|
||||
Constructible<Nvme_driver> _nvme_driver;
|
||||
Constructible<Intel_fb_driver> _intel_fb_driver { };
|
||||
Constructible<Vesa_fb_driver> _vesa_fb_driver { };
|
||||
Constructible<Boot_fb_driver> _boot_fb_driver { };
|
||||
Constructible<Ahci_driver> _ahci_driver { };
|
||||
Constructible<Nvme_driver> _nvme_driver { };
|
||||
|
||||
bool _use_ohci { true };
|
||||
|
||||
|
@ -3,5 +3,3 @@ SRC_CC = main.cc
|
||||
LIBS += base
|
||||
|
||||
REQUIRES = x86
|
||||
|
||||
CC_CXX_WARN_STRICT =
|
||||
|
@ -22,7 +22,7 @@ namespace Menu_view { struct Box_layout_widget; }
|
||||
|
||||
struct Menu_view::Box_layout_widget : Widget
|
||||
{
|
||||
Area _min_size; /* value cached from layout computation */
|
||||
Area _min_size { }; /* value cached from layout computation */
|
||||
|
||||
enum Direction { VERTICAL, HORIZONTAL };
|
||||
|
||||
|
@ -33,7 +33,7 @@ struct Menu_view::Button_widget : Widget, Animator::Item
|
||||
Texture<Pixel_rgb888> const * default_texture = nullptr;
|
||||
Texture<Pixel_rgb888> const * hovered_texture = nullptr;
|
||||
|
||||
Lazy_value<int> blend;
|
||||
Lazy_value<int> blend { };
|
||||
|
||||
Padding padding { 9, 9, 2, 1 };
|
||||
|
||||
@ -158,6 +158,15 @@ struct Menu_view::Button_widget : Widget, Animator::Item
|
||||
|
||||
animated(blend != blend.dst());
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
/**
|
||||
* Noncopyable
|
||||
*/
|
||||
Button_widget(Button_widget const &);
|
||||
Button_widget &operator = (Button_widget const &);
|
||||
|
||||
};
|
||||
|
||||
#endif /* _BUTTON_WIDGET_H_ */
|
||||
|
@ -28,7 +28,7 @@ namespace Menu_view { struct Depgraph_widget; }
|
||||
|
||||
struct Menu_view::Depgraph_widget : Widget
|
||||
{
|
||||
Area _min_size; /* value cached from layout computation */
|
||||
Area _min_size { }; /* value cached from layout computation */
|
||||
|
||||
struct Depth_direction
|
||||
{
|
||||
@ -74,8 +74,8 @@ struct Menu_view::Depgraph_widget : Widget
|
||||
}
|
||||
};
|
||||
|
||||
Registry<Registered<Anchor> > _server_anchors;
|
||||
Registry<Registered<Anchor> > _client_anchors;
|
||||
Registry<Registered<Anchor> > _server_anchors { };
|
||||
Registry<Registered<Anchor> > _client_anchors { };
|
||||
|
||||
struct Dependency
|
||||
{
|
||||
@ -135,7 +135,7 @@ struct Menu_view::Depgraph_widget : Widget
|
||||
void apply_to_server(FN const &fn) const { fn(_server); }
|
||||
};
|
||||
|
||||
Registry<Registered<Dependency> > _deps;
|
||||
Registry<Registered<Dependency> > _deps { };
|
||||
|
||||
void cut_dependencies()
|
||||
{
|
||||
@ -359,7 +359,7 @@ struct Menu_view::Depgraph_widget : Widget
|
||||
typedef Registered<Node> Registered_node;
|
||||
typedef Registry<Registered_node> Node_registry;
|
||||
|
||||
Node_registry _nodes;
|
||||
Node_registry _nodes { };
|
||||
|
||||
Registered_node _root_node { _nodes, _factory.alloc, *this };
|
||||
|
||||
|
@ -86,6 +86,14 @@ struct Menu_view::Frame_widget : Widget
|
||||
child.size(Area(geometry().w() - _space().w(),
|
||||
geometry().h() - _space().h())); });
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
/**
|
||||
* Noncopyable
|
||||
*/
|
||||
Frame_widget(Frame_widget const &);
|
||||
Frame_widget &operator = (Frame_widget const &);
|
||||
};
|
||||
|
||||
#endif /* _FRAME_WIDGET_H_ */
|
||||
|
@ -26,7 +26,7 @@ struct Menu_view::Label_widget : Widget
|
||||
enum { LABEL_MAX_LEN = 256 };
|
||||
|
||||
typedef String<200> Text;
|
||||
Text text;
|
||||
Text text { };
|
||||
|
||||
Label_widget(Widget_factory &factory, Xml_node node, Unique_id unique_id)
|
||||
:
|
||||
@ -69,6 +69,14 @@ struct Menu_view::Label_widget : Widget
|
||||
Text_painter::Position(centered.x(), centered.y()),
|
||||
*font, Color(255, 255, 255), text.string());
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
/**
|
||||
* Noncopyable
|
||||
*/
|
||||
Label_widget(Label_widget const &);
|
||||
Label_widget &operator = (Label_widget const &);
|
||||
};
|
||||
|
||||
#endif /* _LABEL_WIDGET_H_ */
|
||||
|
@ -39,13 +39,13 @@ struct Menu_view::Main
|
||||
|
||||
Nitpicker::Connection _nitpicker { _env };
|
||||
|
||||
Constructible<Nitpicker_buffer> _buffer;
|
||||
Constructible<Nitpicker_buffer> _buffer { };
|
||||
|
||||
Nitpicker::Session::View_handle _view_handle = _nitpicker.create_view();
|
||||
|
||||
Point _position;
|
||||
Point _position { };
|
||||
|
||||
Area _configured_size;
|
||||
Area _configured_size { };
|
||||
|
||||
Area _root_widget_size() const
|
||||
{
|
||||
@ -54,7 +54,7 @@ struct Menu_view::Main
|
||||
max(_configured_size.h(), min_size.h()));
|
||||
}
|
||||
|
||||
Rect _view_geometry;
|
||||
Rect _view_geometry { };
|
||||
|
||||
void _update_view()
|
||||
{
|
||||
@ -63,11 +63,12 @@ struct Menu_view::Main
|
||||
return;
|
||||
|
||||
/* display view behind all others */
|
||||
typedef Nitpicker::Session::Command Command;
|
||||
typedef Nitpicker::Session::Command Command;
|
||||
typedef Nitpicker::Session::View_handle View_handle;
|
||||
|
||||
_view_geometry = Rect(_position, _buffer->size());
|
||||
_nitpicker.enqueue<Command::Geometry>(_view_handle, _view_geometry);
|
||||
_nitpicker.enqueue<Command::To_front>(_view_handle);
|
||||
_nitpicker.enqueue<Command::To_front>(_view_handle, View_handle());
|
||||
_nitpicker.execute();
|
||||
}
|
||||
|
||||
@ -108,7 +109,7 @@ struct Menu_view::Main
|
||||
|
||||
Style_database _styles { _env.ram(), _env.rm(), _heap, _fonts_dir };
|
||||
|
||||
Animator _animator;
|
||||
Animator _animator { };
|
||||
|
||||
Widget_factory _widget_factory { _heap, _styles, _animator };
|
||||
|
||||
@ -118,7 +119,7 @@ struct Menu_view::Main
|
||||
|
||||
Attached_dataspace _input_ds { _env.rm(), _nitpicker.input()->dataspace() };
|
||||
|
||||
Widget::Unique_id _hovered;
|
||||
Widget::Unique_id _hovered { };
|
||||
|
||||
void _handle_config();
|
||||
|
||||
|
@ -25,7 +25,13 @@ class Menu_view::Scratch_surface
|
||||
{
|
||||
private:
|
||||
|
||||
Area _size;
|
||||
/**
|
||||
* Noncopyable
|
||||
*/
|
||||
Scratch_surface(Scratch_surface const &);
|
||||
Scratch_surface &operator = (Scratch_surface const &);
|
||||
|
||||
Area _size { };
|
||||
Allocator &_alloc;
|
||||
unsigned char *_base = nullptr;
|
||||
size_t _num_bytes = 0;
|
||||
|
@ -91,8 +91,8 @@ class Menu_view::Style_database
|
||||
* The list is mutable because it is populated as a side effect of
|
||||
* calling the const lookup function.
|
||||
*/
|
||||
List<Texture_entry> mutable _textures;
|
||||
List<Font_entry> mutable _fonts;
|
||||
List<Texture_entry> mutable _textures { };
|
||||
List<Font_entry> mutable _fonts { };
|
||||
|
||||
template <typename T>
|
||||
T const *_lookup(List<T> &list, char const *path) const
|
||||
|
@ -8,5 +8,3 @@ INC_DIR += $(PRG_DIR)
|
||||
$(TARGET): menu_view_styles.tar
|
||||
menu_view_styles.tar:
|
||||
$(VERBOSE)cd $(PRG_DIR); tar cf $(PWD)/bin/$@ styles
|
||||
|
||||
CC_CXX_WARN_STRICT =
|
||||
|
@ -45,10 +45,17 @@ struct Menu_view::Margin
|
||||
};
|
||||
|
||||
|
||||
class Menu_view::Widget : public List_model<Widget>::Element
|
||||
class Menu_view::Widget : List_model<Widget>::Element
|
||||
{
|
||||
private:
|
||||
|
||||
friend class List_model<Widget>;
|
||||
friend class List<Widget>;
|
||||
|
||||
public:
|
||||
|
||||
using List_model<Widget>::Element::next;
|
||||
|
||||
enum { NAME_MAX_LEN = 32 };
|
||||
typedef String<NAME_MAX_LEN> Name;
|
||||
|
||||
@ -93,7 +100,7 @@ class Menu_view::Widget : public List_model<Widget>::Element
|
||||
|
||||
Type_name const _type_name;
|
||||
Name const _name;
|
||||
Version const _version;
|
||||
Version const _version { };
|
||||
|
||||
Unique_id const _unique_id;
|
||||
|
||||
@ -101,7 +108,7 @@ class Menu_view::Widget : public List_model<Widget>::Element
|
||||
|
||||
Widget_factory &_factory;
|
||||
|
||||
List_model<Widget> _children;
|
||||
List_model<Widget> _children { };
|
||||
|
||||
struct Model_update_policy : List_model<Widget>::Update_policy
|
||||
{
|
||||
@ -156,7 +163,7 @@ class Menu_view::Widget : public List_model<Widget>::Element
|
||||
* Position relative to the parent widget and actual size, defined by
|
||||
* the parent
|
||||
*/
|
||||
Rect _geometry;
|
||||
Rect _geometry { };
|
||||
|
||||
Animated_rect _animated_geometry { _factory.animator };
|
||||
|
||||
|
@ -75,7 +75,7 @@ class Scene : public Nano3d::Scene<PT>
|
||||
}
|
||||
};
|
||||
|
||||
Radial_texture _texture;
|
||||
Radial_texture _texture { };
|
||||
|
||||
Shape _shape = SHAPE_DODECAHEDRON;
|
||||
Painter _painter = PAINTER_TEXTURED;
|
||||
|
@ -2,5 +2,3 @@ TARGET = nano3d
|
||||
SRC_CC = main.cc
|
||||
LIBS = base
|
||||
INC_DIR += $(PRG_DIR)
|
||||
|
||||
CC_CXX_WARN_STRICT =
|
||||
|
@ -41,12 +41,12 @@ class Open_file
|
||||
/**
|
||||
* Signal handler to be informed about the established connection
|
||||
*/
|
||||
Genode::Signal_context_capability _connected_sigh;
|
||||
Genode::Signal_context_capability _connected_sigh { };
|
||||
|
||||
/**
|
||||
* Signal handler to be informed about data available to read
|
||||
*/
|
||||
Genode::Signal_context_capability _read_avail_sigh;
|
||||
Genode::Signal_context_capability _read_avail_sigh { };
|
||||
|
||||
/**
|
||||
* Buffer for incoming data
|
||||
@ -61,7 +61,7 @@ class Open_file
|
||||
*/
|
||||
enum { READ_BUF_SIZE = 4096 };
|
||||
char _read_buf[READ_BUF_SIZE];
|
||||
Genode::size_t _read_buf_bytes_used;
|
||||
Genode::size_t _read_buf_bytes_used { };
|
||||
|
||||
public:
|
||||
|
||||
@ -148,7 +148,7 @@ class Open_file
|
||||
namespace Terminal {
|
||||
|
||||
class Session_component : public Genode::Rpc_object<Session, Session_component>,
|
||||
public Open_file
|
||||
private Open_file
|
||||
{
|
||||
private:
|
||||
|
||||
@ -221,8 +221,8 @@ namespace Terminal {
|
||||
|
||||
void size_changed_sigh(Genode::Signal_context_capability) override { }
|
||||
|
||||
Genode::size_t read(void *buf, Genode::size_t) override { return 0; }
|
||||
Genode::size_t write(void const *buf, Genode::size_t) override { return 0; }
|
||||
Genode::size_t read(void *, Genode::size_t) override { return 0; }
|
||||
Genode::size_t write(void const *, Genode::size_t) override { return 0; }
|
||||
};
|
||||
|
||||
|
||||
|
@ -1,5 +1,3 @@
|
||||
TARGET = file_terminal
|
||||
SRC_CC = main.cc
|
||||
LIBS = base libc
|
||||
|
||||
CC_CXX_WARN_STRICT =
|
||||
|
@ -141,10 +141,10 @@ class Nit_fader::Framebuffer_session_component
|
||||
Nitpicker::Connection &_nitpicker;
|
||||
Src_buffer &_src_buffer;
|
||||
|
||||
Constructible<Dst_buffer> _dst_buffer;
|
||||
Constructible<Dst_buffer> _dst_buffer { };
|
||||
|
||||
|
||||
Lazy_value<int> _fade;
|
||||
Lazy_value<int> _fade { };
|
||||
|
||||
public:
|
||||
|
||||
@ -279,9 +279,10 @@ class Nit_fader::Nitpicker_session_component
|
||||
|
||||
Framebuffer::Session_capability _fb_cap { _env.ep().manage(_fb_session) };
|
||||
|
||||
Nitpicker::Session::View_handle _view_handle;
|
||||
Nitpicker::Session::View_handle _view_handle { };
|
||||
|
||||
bool _view_visible = false;
|
||||
Rect _view_geometry;
|
||||
Rect _view_geometry { };
|
||||
|
||||
void _update_view_visibility()
|
||||
{
|
||||
|
@ -2,5 +2,3 @@ TARGET = nit_fader
|
||||
SRC_CC = main.cc
|
||||
LIBS = base blit
|
||||
INC_DIR += $(PRG_DIR)
|
||||
|
||||
CC_CXX_WARN_STRICT =
|
||||
|
Loading…
Reference in New Issue
Block a user