Make RenderParams fields optional

This commit is contained in:
josh committed 2026-11-02 21:04:11 -05:00
1 parent 1475434c4c
commit bf09c094e1
3 files changed
+29 -7

No files matched your search

+1 -1
View File
@@ -139,7 +139,7 @@ int Cli::run(int argc, char * argv[])
return 0; return 0;
} }
static bool parse_size(const char * flag, const char * value, size_t * out) static bool parse_size(const char * flag, const char * value, opt<size_t> * out)
{ {
bool valid = value[0] != '\0'; bool valid = value[0] != '\0';
for (const char * c = value; *c != '\0'; c++) for (const char * c = value; *c != '\0'; c++)
+21 -3
View File
@@ -1,7 +1,25 @@
#include <fart/RenderParams.h> #include <fart/RenderParams.h>
RenderParams::RenderParams() void RenderParams::merge(const RenderParams & other)
{ {
width = 800; if (!width)
height = 600; {
width = other.width;
}
if (!height)
{
height = other.height;
}
}
void RenderParams::apply_defaults()
{
if (!width)
{
width = 800u;
}
if (!height)
{
height = 600u;
}
} }
+7 -3
View File
@@ -4,8 +4,12 @@
struct RenderParams struct RenderParams
{ {
size_t width = 0u; opt<size_t> width;
size_t height = 0u; opt<size_t> height;
RenderParams(); /* Set each field that is not already set to the value from other. */
void merge(const RenderParams & other);
/* Fill in any unset fields with default values. */
void apply_defaults();
}; };