4 #include "system/stacktrace.h"
5 #include "game/camera.h"
8 #include "background_layer.h"
9 #include "undo_history.h"
12 BackgroundLayer create_background_layer(Color color)
14 BackgroundLayer layer = {
15 .color_picker = create_color_picker_from_rgba(color),
21 int background_layer_read_from_line_stream(BackgroundLayer *layer,
22 LineStream *line_stream)
24 if (color_picker_read_from_line_stream(
30 layer->prev_color = color_picker_rgba(&layer->color_picker);
35 int background_layer_render(BackgroundLayer *layer,
43 return color_picker_render(
52 void background_undo_color(void *layer, void *context, size_t context_size)
55 trace_assert(context);
56 trace_assert(sizeof(Color) == context_size);
58 BackgroundLayer *background_layer = layer;
59 Color *color = context;
61 background_layer->color_picker = create_color_picker_from_rgba(*color);
64 int background_layer_event(BackgroundLayer *layer,
65 const SDL_Event *event,
67 UndoHistory *undo_history)
72 trace_assert(undo_history);
76 if (color_picker_event(
84 if (selected && !color_picker_drag(&layer->color_picker)) {
88 background_undo_color,
89 &layer->prev_color, sizeof(layer->prev_color));
90 layer->prev_color = color_picker_rgba(&layer->color_picker);
96 int background_layer_dump_stream(BackgroundLayer *layer,
100 trace_assert(stream);
103 color_picker_rgba(&layer->color_picker),
106 return fprintf(stream, "\n");;