"Initial commit to Gerrit"
[profile/ivi/cogl.git] / cogl / cogl-pipeline-state-private.h
1 /*
2  * Cogl
3  *
4  * An object oriented GL/GLES Abstraction/Utility Layer
5  *
6  * Copyright (C) 2008,2009,2010 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_STATE_PRIVATE_H
29 #define __COGL_PIPELINE_STATE_PRIVATE_H
30
31 CoglPipeline *
32 _cogl_pipeline_get_user_program (CoglPipeline *pipeline);
33
34 gboolean
35 _cogl_pipeline_has_vertex_snippets (CoglPipeline *pipeline);
36
37 gboolean
38 _cogl_pipeline_has_fragment_snippets (CoglPipeline *pipeline);
39
40 gboolean
41 _cogl_pipeline_has_non_layer_vertex_snippets (CoglPipeline *pipeline);
42
43 gboolean
44 _cogl_pipeline_has_non_layer_fragment_snippets (CoglPipeline *pipeline);
45
46 void
47 _cogl_pipeline_set_fog_state (CoglPipeline *pipeline,
48                               const CoglPipelineFogState *fog_state);
49
50 gboolean
51 _cogl_pipeline_color_equal (CoglPipeline *authority0,
52                             CoglPipeline *authority1);
53
54 gboolean
55 _cogl_pipeline_lighting_state_equal (CoglPipeline *authority0,
56                                      CoglPipeline *authority1);
57
58 gboolean
59 _cogl_pipeline_alpha_func_state_equal (CoglPipeline *authority0,
60                                        CoglPipeline *authority1);
61
62 gboolean
63 _cogl_pipeline_alpha_func_reference_state_equal (CoglPipeline *authority0,
64                                                  CoglPipeline *authority1);
65
66 gboolean
67 _cogl_pipeline_blend_state_equal (CoglPipeline *authority0,
68                                   CoglPipeline *authority1);
69
70 gboolean
71 _cogl_pipeline_depth_state_equal (CoglPipeline *authority0,
72                                   CoglPipeline *authority1);
73
74 gboolean
75 _cogl_pipeline_fog_state_equal (CoglPipeline *authority0,
76                                 CoglPipeline *authority1);
77
78 gboolean
79 _cogl_pipeline_point_size_equal (CoglPipeline *authority0,
80                                  CoglPipeline *authority1);
81
82 gboolean
83 _cogl_pipeline_logic_ops_state_equal (CoglPipeline *authority0,
84                                       CoglPipeline *authority1);
85
86 gboolean
87 _cogl_pipeline_user_shader_equal (CoglPipeline *authority0,
88                                   CoglPipeline *authority1);
89
90 gboolean
91 _cogl_pipeline_cull_face_state_equal (CoglPipeline *authority0,
92                                       CoglPipeline *authority1);
93
94 gboolean
95 _cogl_pipeline_uniforms_state_equal (CoglPipeline *authority0,
96                                      CoglPipeline *authority1);
97
98 gboolean
99 _cogl_pipeline_vertex_snippets_state_equal (CoglPipeline *authority0,
100                                             CoglPipeline *authority1);
101
102 gboolean
103 _cogl_pipeline_fragment_snippets_state_equal (CoglPipeline *authority0,
104                                               CoglPipeline *authority1);
105
106 void
107 _cogl_pipeline_hash_color_state (CoglPipeline *authority,
108                                  CoglPipelineHashState *state);
109
110 void
111 _cogl_pipeline_hash_blend_enable_state (CoglPipeline *authority,
112                                         CoglPipelineHashState *state);
113
114 void
115 _cogl_pipeline_hash_layers_state (CoglPipeline *authority,
116                                   CoglPipelineHashState *state);
117
118 void
119 _cogl_pipeline_hash_lighting_state (CoglPipeline *authority,
120                                     CoglPipelineHashState *state);
121
122 void
123 _cogl_pipeline_hash_alpha_func_state (CoglPipeline *authority,
124                                       CoglPipelineHashState *state);
125
126 void
127 _cogl_pipeline_hash_alpha_func_reference_state (CoglPipeline *authority,
128                                                 CoglPipelineHashState *state);
129
130 void
131 _cogl_pipeline_hash_blend_state (CoglPipeline *authority,
132                                  CoglPipelineHashState *state);
133
134 void
135 _cogl_pipeline_hash_user_shader_state (CoglPipeline *authority,
136                                        CoglPipelineHashState *state);
137
138 void
139 _cogl_pipeline_hash_depth_state (CoglPipeline *authority,
140                                  CoglPipelineHashState *state);
141
142 void
143 _cogl_pipeline_hash_fog_state (CoglPipeline *authority,
144                                CoglPipelineHashState *state);
145
146 void
147 _cogl_pipeline_hash_point_size_state (CoglPipeline *authority,
148                                       CoglPipelineHashState *state);
149
150 void
151 _cogl_pipeline_hash_logic_ops_state (CoglPipeline *authority,
152                                      CoglPipelineHashState *state);
153
154 void
155 _cogl_pipeline_hash_cull_face_state (CoglPipeline *authority,
156                                      CoglPipelineHashState *state);
157
158 void
159 _cogl_pipeline_hash_uniforms_state (CoglPipeline *authority,
160                                     CoglPipelineHashState *state);
161
162 void
163 _cogl_pipeline_hash_vertex_snippets_state (CoglPipeline *authority,
164                                            CoglPipelineHashState *state);
165
166 void
167 _cogl_pipeline_hash_fragment_snippets_state (CoglPipeline *authority,
168                                              CoglPipelineHashState *state);
169
170 void
171 _cogl_pipeline_compare_uniform_differences (unsigned long *differences,
172                                             CoglPipeline *pipeline0,
173                                             CoglPipeline *pipeline1);
174
175 #endif /* __COGL_PIPELINE_STATE_PRIVATE_H */