mirror of
https://github.com/brl/mutter.git
synced 2024-11-27 02:20:43 -05:00
material: Adds _get_layer_combine_constant API
This adds an internal _cogl_material_get_layer_combine_constant function so we can query the current layer combine constant back. We should probably make this a public property getter, but for now we just need this so we can read the constant in the arbfp backend.
This commit is contained in:
parent
c9ac838fad
commit
bc187dc31e
@ -913,5 +913,10 @@ _cogl_material_foreach_layer (CoglMaterial *material,
|
|||||||
int
|
int
|
||||||
_cogl_material_layer_get_unit_index (CoglMaterialLayer *layer);
|
_cogl_material_layer_get_unit_index (CoglMaterialLayer *layer);
|
||||||
|
|
||||||
|
void
|
||||||
|
_cogl_material_get_layer_combine_constant (CoglMaterial *material,
|
||||||
|
int layer_index,
|
||||||
|
float *constant);
|
||||||
|
|
||||||
#endif /* __COGL_MATERIAL_PRIVATE_H */
|
#endif /* __COGL_MATERIAL_PRIVATE_H */
|
||||||
|
|
||||||
|
@ -4875,6 +4875,32 @@ changed:
|
|||||||
handle_automatic_blend_enable (material, COGL_MATERIAL_STATE_LAYERS);
|
handle_automatic_blend_enable (material, COGL_MATERIAL_STATE_LAYERS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
_cogl_material_get_layer_combine_constant (CoglMaterial *material,
|
||||||
|
int layer_index,
|
||||||
|
float *constant)
|
||||||
|
{
|
||||||
|
CoglMaterialLayerState change =
|
||||||
|
COGL_MATERIAL_LAYER_STATE_COMBINE_CONSTANT;
|
||||||
|
CoglMaterialLayer *layer;
|
||||||
|
CoglMaterialLayer *authority;
|
||||||
|
|
||||||
|
g_return_if_fail (cogl_is_material (material));
|
||||||
|
|
||||||
|
/* Note: this will ensure that the layer exists, creating one if it
|
||||||
|
* doesn't already.
|
||||||
|
*
|
||||||
|
* Note: If the layer already existed it's possibly owned by another
|
||||||
|
* material. If the layer is created then it will be owned by
|
||||||
|
* material. */
|
||||||
|
layer = _cogl_material_get_layer (material, layer_index);
|
||||||
|
/* FIXME: we shouldn't ever construct a layer in a getter function */
|
||||||
|
|
||||||
|
authority = _cogl_material_layer_get_authority (layer, change);
|
||||||
|
memcpy (constant, authority->big_state->texture_combine_constant,
|
||||||
|
sizeof (float) * 4);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
cogl_material_set_layer_matrix (CoglMaterial *material,
|
cogl_material_set_layer_matrix (CoglMaterial *material,
|
||||||
int layer_index,
|
int layer_index,
|
||||||
|
Loading…
Reference in New Issue
Block a user