create_dynarray_from_memory -> create_dynarray

master
rexim 2020-01-12 02:05:05 +07:00
parent c1021a9d6a
commit 6b988f7626
6 changed files with 18 additions and 45 deletions

View File

@ -14,18 +14,19 @@ typedef struct {
} Dynarray;
static inline
Dynarray create_dynarray(size_t element_size)
Dynarray create_dynarray_malloc(size_t element_size)
{
Dynarray result = {
.element_size = element_size,
.count = 0,
.data = malloc(DYNARRAY_CAPACITY * element_size)
};
trace_assert(result.data);
return result;
}
static inline
Dynarray create_dynarray_from_memory(Memory *memory, size_t element_size)
Dynarray create_dynarray(Memory *memory, size_t element_size)
{
trace_assert(memory);
Dynarray result = {

View File

@ -34,9 +34,9 @@ Boxes *create_boxes_from_rect_layer(const RectLayer *layer, RigidBodies *rigid_b
}
boxes->lt = lt;
boxes->boxes_ids = create_dynarray(ENTITY_MAX_ID_SIZE);
boxes->body_ids = create_dynarray(sizeof(RigidBodyId));
boxes->body_colors = create_dynarray(sizeof(Color));
boxes->boxes_ids = create_dynarray_malloc(ENTITY_MAX_ID_SIZE);
boxes->body_ids = create_dynarray_malloc(sizeof(RigidBodyId));
boxes->body_colors = create_dynarray_malloc(sizeof(Color));
boxes->rigid_bodies = rigid_bodies;

View File

@ -141,21 +141,6 @@ LayerPtr label_layer_as_layer(LabelLayer *label_layer)
return layer;
}
LabelLayer create_label_layer(const char *id_name_prefix)
{
LabelLayer result = {0};
result.ids = create_dynarray(sizeof(char) * LABEL_LAYER_ID_MAX_SIZE);
result.positions = create_dynarray(sizeof(Vec2f));
result.colors = create_dynarray(sizeof(Color));
result.texts = create_dynarray(sizeof(char) * LABEL_LAYER_TEXT_MAX_SIZE);
result.color_picker = create_color_picker_from_rgba(COLOR_RED);
result.selection = -1;
result.edit_field.font_size = LABELS_SIZE;
result.edit_field.font_color = COLOR_RED;
result.id_name_prefix = id_name_prefix;
return result;
}
LabelLayer *create_label_layer_from_memory(Memory *memory,
const char *id_name_prefix)
{
@ -164,10 +149,10 @@ LabelLayer *create_label_layer_from_memory(Memory *memory,
LabelLayer *result = memory_alloc(memory, sizeof(LabelLayer));
memset(result, 0, sizeof(LabelLayer));
result->ids = create_dynarray_from_memory(memory, sizeof(char) * LABEL_LAYER_ID_MAX_SIZE);
result->positions = create_dynarray_from_memory(memory, sizeof(Vec2f));
result->colors = create_dynarray_from_memory(memory, sizeof(Color));
result->texts = create_dynarray_from_memory(memory, sizeof(char) * LABEL_LAYER_TEXT_MAX_SIZE);
result->ids = create_dynarray(memory, sizeof(char) * LABEL_LAYER_ID_MAX_SIZE);
result->positions = create_dynarray(memory, sizeof(Vec2f));
result->colors = create_dynarray(memory, sizeof(Color));
result->texts = create_dynarray(memory, sizeof(char) * LABEL_LAYER_TEXT_MAX_SIZE);
result->color_picker = create_color_picker_from_rgba(COLOR_RED);
result->selection = -1;
result->edit_field.font_size = LABELS_SIZE;

View File

@ -139,19 +139,6 @@ LayerPtr point_layer_as_layer(PointLayer *point_layer)
return layer;
}
PointLayer create_point_layer(const char *id_name_prefix)
{
PointLayer result = {0};
result.state = POINT_LAYER_IDLE;
result.positions = create_dynarray(sizeof(Vec2f));
result.colors = create_dynarray(sizeof(Color));
result.ids = create_dynarray(sizeof(char) * ID_MAX_SIZE);
result.edit_field.font_size = POINT_LAYER_ID_TEXT_SIZE;
result.edit_field.font_color = POINT_LAYER_ID_TEXT_COLOR;
result.id_name_prefix = id_name_prefix;
return result;
}
PointLayer *create_point_layer_from_memory(Memory *memory,
const char *id_name_prefix)
{
@ -161,9 +148,9 @@ PointLayer *create_point_layer_from_memory(Memory *memory,
PointLayer *result = memory_alloc(memory, sizeof(PointLayer));
memset(result, 0, sizeof(PointLayer));
result->state = POINT_LAYER_IDLE;
result->positions = create_dynarray_from_memory(memory, sizeof(Vec2f));
result->colors = create_dynarray_from_memory(memory, sizeof(Color));
result->ids = create_dynarray_from_memory(memory, sizeof(char) * ID_MAX_SIZE);
result->positions = create_dynarray(memory, sizeof(Vec2f));
result->colors = create_dynarray(memory, sizeof(Color));
result->ids = create_dynarray(memory, sizeof(char) * ID_MAX_SIZE);
result->edit_field.font_size = POINT_LAYER_ID_TEXT_SIZE;
result->edit_field.font_color = POINT_LAYER_ID_TEXT_COLOR;
result->id_name_prefix = id_name_prefix;

View File

@ -806,10 +806,10 @@ RectLayer *create_rect_layer_from_memory(Memory *memory,
RectLayer *rect_layer = memory_alloc(memory, sizeof(RectLayer));
rect_layer->ids = create_dynarray_from_memory(memory, sizeof(char) * ENTITY_MAX_ID_SIZE);
rect_layer->rects = create_dynarray_from_memory(memory, sizeof(Rect));
rect_layer->colors = create_dynarray_from_memory(memory, sizeof(Color));
rect_layer->actions = create_dynarray_from_memory(memory, sizeof(Action));
rect_layer->ids = create_dynarray(memory, sizeof(char) * ENTITY_MAX_ID_SIZE);
rect_layer->rects = create_dynarray(memory, sizeof(Rect));
rect_layer->colors = create_dynarray(memory, sizeof(Color));
rect_layer->actions = create_dynarray(memory, sizeof(Action));
rect_layer->id_edit_field.font_size = RECT_LAYER_ID_LABEL_SIZE;
rect_layer->id_edit_field.font_color = COLOR_BLACK;
rect_layer->color_picker = create_color_picker_from_rgba(rgba(1.0f, 0.0f, 0.0f, 1.0f));

View File

@ -32,7 +32,7 @@ void level_picker_populate(LevelPicker *level_picker,
{
dynarray_clear(&level_picker->items);
level_picker->items = create_dynarray(METADATA_FILEPATH_MAX_SIZE);
level_picker->items = create_dynarray_malloc(METADATA_FILEPATH_MAX_SIZE);
DIR *level_dir = opendir(dirpath);
if (level_dir == NULL) {