
5 changed files with 41 additions and 27 deletions
@ -1,21 +1,22 @@ |
|||||
#include "mark.h" |
#include "mark.h" |
||||
|
|
||||
void markmap_init(Markmap* map) { |
void markmap_reusable_init(Markmap_reusable* map) { |
||||
map->buffer = NULL; |
map->buffer = NULL; |
||||
map->capacity = 0; |
map->capacity = 0; |
||||
} |
} |
||||
|
|
||||
void markmap_ensure_capacity(Markmap* map, Usz capacity) { |
void markmap_reusable_ensure_size(Markmap_reusable* map, Usz height, |
||||
|
Usz width) { |
||||
|
Usz capacity = height * width; |
||||
if (map->capacity < capacity) { |
if (map->capacity < capacity) { |
||||
map->buffer = realloc(map->buffer, capacity); |
map->buffer = realloc(map->buffer, capacity); |
||||
map->capacity = capacity; |
map->capacity = capacity; |
||||
} |
} |
||||
} |
} |
||||
|
|
||||
void markmap_clear(Markmap* map) { |
void markmap_reusable_deinit(Markmap_reusable* map) { free(map->buffer); } |
||||
memset(map->buffer, 0, map->capacity); |
|
||||
} |
|
||||
|
|
||||
void markmap_deinit(Markmap* map) { |
void markmap_clear(Markmap_buffer map, Usz height, Usz width) { |
||||
free(map->buffer); |
Usz cleared_size = height * width; |
||||
|
memset(map, 0, cleared_size); |
||||
} |
} |
||||
|
@ -1,4 +1,5 @@ |
|||||
#pragma once |
#pragma once |
||||
#include "base.h" |
#include "base.h" |
||||
|
#include "mark.h" |
||||
|
|
||||
void orca_run(Field* f); |
void orca_run(Field* field, Markmap_buffer markmap); |
||||
|
Loading…
Reference in new issue