mirror of
https://github.com/brl/mutter.git
synced 2024-11-27 02:20:43 -05:00
On bad blend strings, print the error if not returning it
It's very common that there's no reasonable fallback to do if the blend or combine string you set isn't supported. So, rather than requiring everybody to pass in a GError purely to catch syntax erorrs, automatically g_warning() if a parse error is encountered and @error is NULL. http://bugzilla.openedhand.com/show_bug.cgi?id=1642 Signed-off-by: Robert Bragg <robert@linux.intel.com>
This commit is contained in:
parent
d873a57ec9
commit
08d580f68a
@ -419,7 +419,8 @@ void cogl_material_set_alpha_test_function (CoglHandle material,
|
|||||||
* @error: A GError that may report lack of driver support if you give
|
* @error: A GError that may report lack of driver support if you give
|
||||||
* separate blend string statements for the alpha channel and RGB
|
* separate blend string statements for the alpha channel and RGB
|
||||||
* channels since some drivers or backends such as GLES 1.1 dont
|
* channels since some drivers or backends such as GLES 1.1 dont
|
||||||
* support this.
|
* support this. May be %NULL, in which case a warning will be
|
||||||
|
* printed out if an error is encountered.
|
||||||
*
|
*
|
||||||
* If not already familiar; please refer
|
* If not already familiar; please refer
|
||||||
* <link linkend="cogl-Blend-Strings">here</link> for an overview of what blend
|
* <link linkend="cogl-Blend-Strings">here</link> for an overview of what blend
|
||||||
@ -536,6 +537,8 @@ void cogl_material_remove_layer (CoglHandle material,
|
|||||||
* @blend_string: A <link linkend="cogl-Blend-Strings">Cogl blend string</link>
|
* @blend_string: A <link linkend="cogl-Blend-Strings">Cogl blend string</link>
|
||||||
* describing the desired texture combine function.
|
* describing the desired texture combine function.
|
||||||
* @error: A GError that may report parse errors or lack of GPU/driver support.
|
* @error: A GError that may report parse errors or lack of GPU/driver support.
|
||||||
|
* May be %NULL, in which case a warning will be printed out if an
|
||||||
|
* error is encountered.
|
||||||
*
|
*
|
||||||
* If not already familiar; you can refer
|
* If not already familiar; you can refer
|
||||||
* <link linkend="cogl-Blend-Strings">here</link> for an overview of what blend
|
* <link linkend="cogl-Blend-Strings">here</link> for an overview of what blend
|
||||||
|
@ -533,6 +533,7 @@ cogl_material_set_blend (CoglHandle handle,
|
|||||||
CoglBlendStringStatement split[2];
|
CoglBlendStringStatement split[2];
|
||||||
CoglBlendStringStatement *rgb;
|
CoglBlendStringStatement *rgb;
|
||||||
CoglBlendStringStatement *a;
|
CoglBlendStringStatement *a;
|
||||||
|
GError *internal_error = NULL;
|
||||||
int count;
|
int count;
|
||||||
|
|
||||||
g_return_val_if_fail (cogl_is_material (handle), FALSE);
|
g_return_val_if_fail (cogl_is_material (handle), FALSE);
|
||||||
@ -543,9 +544,19 @@ cogl_material_set_blend (CoglHandle handle,
|
|||||||
_cogl_blend_string_compile (blend_description,
|
_cogl_blend_string_compile (blend_description,
|
||||||
COGL_BLEND_STRING_CONTEXT_BLENDING,
|
COGL_BLEND_STRING_CONTEXT_BLENDING,
|
||||||
statements,
|
statements,
|
||||||
error);
|
&internal_error);
|
||||||
if (!count)
|
if (!count)
|
||||||
return FALSE;
|
{
|
||||||
|
if (error)
|
||||||
|
g_propagate_error (error, internal_error);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
g_warning ("Cannot compile blend description: %s\n",
|
||||||
|
internal_error->message);
|
||||||
|
g_error_free (internal_error);
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
if (statements[0].mask == COGL_BLEND_STRING_CHANNEL_MASK_RGBA)
|
if (statements[0].mask == COGL_BLEND_STRING_CHANNEL_MASK_RGBA)
|
||||||
{
|
{
|
||||||
@ -806,6 +817,7 @@ cogl_material_set_layer_combine (CoglHandle handle,
|
|||||||
CoglBlendStringStatement split[2];
|
CoglBlendStringStatement split[2];
|
||||||
CoglBlendStringStatement *rgb;
|
CoglBlendStringStatement *rgb;
|
||||||
CoglBlendStringStatement *a;
|
CoglBlendStringStatement *a;
|
||||||
|
GError *internal_error = NULL;
|
||||||
int count;
|
int count;
|
||||||
|
|
||||||
g_return_val_if_fail (cogl_is_material (handle), FALSE);
|
g_return_val_if_fail (cogl_is_material (handle), FALSE);
|
||||||
@ -817,9 +829,19 @@ cogl_material_set_layer_combine (CoglHandle handle,
|
|||||||
_cogl_blend_string_compile (combine_description,
|
_cogl_blend_string_compile (combine_description,
|
||||||
COGL_BLEND_STRING_CONTEXT_TEXTURE_COMBINE,
|
COGL_BLEND_STRING_CONTEXT_TEXTURE_COMBINE,
|
||||||
statements,
|
statements,
|
||||||
error);
|
&internal_error);
|
||||||
if (!count)
|
if (!count)
|
||||||
return FALSE;
|
{
|
||||||
|
if (error)
|
||||||
|
g_propagate_error (error, internal_error);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
g_warning ("Cannot compile combine description: %s\n",
|
||||||
|
internal_error->message);
|
||||||
|
g_error_free (internal_error);
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
if (statements[0].mask == COGL_BLEND_STRING_CHANNEL_MASK_RGBA)
|
if (statements[0].mask == COGL_BLEND_STRING_CHANNEL_MASK_RGBA)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user