"Initial commit to Gerrit"
[profile/ivi/cogl.git] / cogl / cogl-pipeline-layer-state-private.h
1 /*
2  * Cogl
3  *
4  * An object oriented GL/GLES Abstraction/Utility Layer
5  *
6  * Copyright (C) 2011 Intel Corporation.
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2 of the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with this library. If not, see
20  * <http://www.gnu.org/licenses/>.
21  *
22  *
23  *
24  * Authors:
25  *   Robert Bragg <robert@linux.intel.com>
26  */
27
28 #ifndef __COGL_PIPELINE_LAYER_STATE_PRIVATE_H
29 #define __COGL_PIPELINE_LAYER_STATE_PRIVATE_H
30
31 #include "cogl-pipeline-layer-state.h"
32 #include "cogl-pipeline-private.h"
33
34 CoglPipelineLayer *
35 _cogl_pipeline_set_layer_unit (CoglPipeline *required_owner,
36                                CoglPipelineLayer *layer,
37                                int unit_index);
38
39 CoglPipelineFilter
40 _cogl_pipeline_get_layer_min_filter (CoglPipeline *pipeline,
41                                      int layer_index);
42
43 CoglPipelineFilter
44 _cogl_pipeline_get_layer_mag_filter (CoglPipeline *pipeline,
45                                      int layer_index);
46
47 gboolean
48 _cogl_pipeline_layer_texture_type_equal (CoglPipelineLayer *authority0,
49                                          CoglPipelineLayer *authority1,
50                                          CoglPipelineEvalFlags flags);
51
52 gboolean
53 _cogl_pipeline_layer_texture_data_equal (CoglPipelineLayer *authority0,
54                                          CoglPipelineLayer *authority1,
55                                          CoglPipelineEvalFlags flags);
56
57 gboolean
58 _cogl_pipeline_layer_combine_state_equal (CoglPipelineLayer *authority0,
59                                           CoglPipelineLayer *authority1);
60
61 gboolean
62 _cogl_pipeline_layer_combine_constant_equal (CoglPipelineLayer *authority0,
63                                              CoglPipelineLayer *authority1);
64
65 gboolean
66 _cogl_pipeline_layer_filters_equal (CoglPipelineLayer *authority0,
67                                     CoglPipelineLayer *authority1);
68
69 gboolean
70 _cogl_pipeline_layer_wrap_modes_equal (CoglPipelineLayer *authority0,
71                                        CoglPipelineLayer *authority1);
72
73 gboolean
74 _cogl_pipeline_layer_user_matrix_equal (CoglPipelineLayer *authority0,
75                                         CoglPipelineLayer *authority1);
76
77 gboolean
78 _cogl_pipeline_layer_point_sprite_coords_equal (CoglPipelineLayer *authority0,
79                                                 CoglPipelineLayer *authority1);
80
81 gboolean
82 _cogl_pipeline_layer_vertex_snippets_equal (CoglPipelineLayer *authority0,
83                                             CoglPipelineLayer *authority1);
84
85 gboolean
86 _cogl_pipeline_layer_fragment_snippets_equal (CoglPipelineLayer *authority0,
87                                               CoglPipelineLayer *authority1);
88
89 void
90 _cogl_pipeline_layer_hash_unit_state (CoglPipelineLayer *authority,
91                                       CoglPipelineLayer **authorities,
92                                       CoglPipelineHashState *state);
93
94 void
95 _cogl_pipeline_layer_hash_texture_type_state (CoglPipelineLayer *authority,
96                                               CoglPipelineLayer **authorities,
97                                               CoglPipelineHashState *state);
98
99 void
100 _cogl_pipeline_layer_hash_texture_data_state (CoglPipelineLayer *authority,
101                                               CoglPipelineLayer **authorities,
102                                               CoglPipelineHashState *state);
103
104 void
105 _cogl_pipeline_layer_hash_filters_state (CoglPipelineLayer *authority,
106                                          CoglPipelineLayer **authorities,
107                                          CoglPipelineHashState *state);
108
109 void
110 _cogl_pipeline_layer_hash_wrap_modes_state (CoglPipelineLayer *authority,
111                                             CoglPipelineLayer **authorities,
112                                             CoglPipelineHashState *state);
113
114 void
115 _cogl_pipeline_layer_hash_combine_state (CoglPipelineLayer *authority,
116                                          CoglPipelineLayer **authorities,
117                                          CoglPipelineHashState *state);
118
119 void
120 _cogl_pipeline_layer_hash_combine_constant_state (CoglPipelineLayer *authority,
121                                                   CoglPipelineLayer **authorities,
122                                                   CoglPipelineHashState *state);
123
124 void
125 _cogl_pipeline_layer_hash_user_matrix_state (CoglPipelineLayer *authority,
126                                              CoglPipelineLayer **authorities,
127                                              CoglPipelineHashState *state);
128
129 void
130 _cogl_pipeline_layer_hash_point_sprite_state (CoglPipelineLayer *authority,
131                                               CoglPipelineLayer **authorities,
132                                               CoglPipelineHashState *state);
133
134 void
135 _cogl_pipeline_layer_hash_vertex_snippets_state (CoglPipelineLayer *authority,
136                                                  CoglPipelineLayer **authorities,
137                                                  CoglPipelineHashState *state);
138
139 void
140 _cogl_pipeline_layer_hash_fragment_snippets_state (CoglPipelineLayer *authority,
141                                                    CoglPipelineLayer **authorities,
142                                                    CoglPipelineHashState *state);
143
144 #endif /* __COGL_PIPELINE_LAYER_STATE_PRIVATE_H */