CoglBool _cogl_pipeline_has_non_layer_fragment_snippets (CoglPipeline *pipeline) { CoglPipeline *authority = _cogl_pipeline_get_authority (pipeline, COGL_PIPELINE_STATE_FRAGMENT_SNIPPETS); return !COGL_LIST_EMPTY (&authority->big_state->fragment_snippets); }
CoglBool _cogl_pipeline_has_non_layer_vertex_snippets (CoglPipeline *pipeline) { CoglPipeline *authority = _cogl_pipeline_get_authority (pipeline, COGL_PIPELINE_STATE_VERTEX_SNIPPETS); return !COGL_LIST_EMPTY (&authority->big_state->vertex_snippets); }
static CoglBool check_layer_has_fragment_snippet (CoglPipelineLayer *layer, void *user_data) { unsigned long state = COGL_PIPELINE_LAYER_STATE_FRAGMENT_SNIPPETS; CoglPipelineLayer *authority = _cogl_pipeline_layer_get_authority (layer, state); CoglBool *found_fragment_snippet = user_data; if (!COGL_LIST_EMPTY (&authority->big_state->fragment_snippets)) { *found_fragment_snippet = TRUE; return FALSE; } return TRUE; }
void _cogl_pipeline_snippet_list_add (CoglPipelineSnippetList *list, CoglSnippet *snippet) { CoglPipelineSnippet *pipeline_snippet = g_slice_new (CoglPipelineSnippet); pipeline_snippet->snippet = cogl_object_ref (snippet); _cogl_snippet_make_immutable (pipeline_snippet->snippet); if (COGL_LIST_EMPTY (list)) COGL_LIST_INSERT_HEAD (list, pipeline_snippet, list_node); else { CoglPipelineSnippet *tail; for (tail = COGL_LIST_FIRST (list); COGL_LIST_NEXT (tail, list_node); tail = COGL_LIST_NEXT (tail, list_node)); COGL_LIST_INSERT_AFTER (tail, pipeline_snippet, list_node); } }