Exemplo n.º 1
0
bool ShadingResult::is_valid_linear_rgb() const
{
    assert(m_color_space == ColorSpaceLinearRGB);

    if (!is_valid_color(spectrum_as_color3f(m_main.m_color)))
        return false;

    if (!is_valid_color(m_main.m_alpha))
        return false;

    const size_t aov_count = m_aovs.size();

    for (size_t i = 0; i < aov_count; ++i)
    {
        const ShadingFragment& aov = m_aovs[i];

        if (!is_valid_color(spectrum_as_color3f(aov.m_color)))
            return false;

        if (!is_valid_color(aov.m_alpha))
            return false;
    }

    return true;
}
Exemplo n.º 2
0
static int parse_febg_color(const char *arg)
{
	int color = parse_color(arg);

	if (color < 0)
		color = strtos32_or_err(arg, _("argument error"));

	if (!is_valid_color(color) || color == GREY)
		errx(EXIT_FAILURE, "%s: %s", _("argument error"), arg);
	return color;
}
Exemplo n.º 3
0
static int parse_ulhb_color(char **av, int *oi)
{
	char *color_name;
	int bright = 0;
	int color = -1;

	if (av[*oi] && strcmp(av[*oi - 1], "bright") == 0) {
		bright = 1;
		color_name = av[*oi];
		(*oi)++;
	} else
		color_name = av[*oi - 1];

	color = parse_color(color_name);
	if (color < 0)
		color = strtos32_or_err(color_name, _("argument error"));
	if (!is_valid_color(color))
		errx(EXIT_FAILURE, "%s: %s", _("argument error"), color_name);
	if (bright && (color == BLACK || color == GREY))
		errx(EXIT_FAILURE, _("argument error: bright %s is not supported"), color_name);

	return color;
}