clutter 2.2.4-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (744) hide show
  1. checksums.yaml +7 -0
  2. data/Rakefile +147 -0
  3. data/lib/clutter.rb +169 -0
  4. data/lib/clutter/actor-iter.rb +33 -0
  5. data/lib/clutter/actor.rb +34 -0
  6. data/lib/clutter/animatable.rb +26 -0
  7. data/lib/clutter/brightness-contrast-effect.rb +44 -0
  8. data/lib/clutter/cairo.rb +24 -0
  9. data/lib/clutter/clutter.rb +25 -0
  10. data/lib/clutter/color.rb +83 -0
  11. data/lib/clutter/event.rb +21 -0
  12. data/lib/clutter/point.rb +25 -0
  13. data/lib/clutter/text-buffer.rb +36 -0
  14. data/lib/clutter/text.rb +23 -0
  15. data/lib/clutter/threads.rb +38 -0
  16. data/sample/basic-actor.rb +123 -0
  17. data/sample/bin-layout.rb +213 -0
  18. data/sample/box-layout.rb +194 -0
  19. data/sample/canvas.rb +115 -0
  20. data/sample/constraints.rb +79 -0
  21. data/sample/drag-action.rb +175 -0
  22. data/sample/drop-action.rb +196 -0
  23. data/sample/easing-modes.rb +141 -0
  24. data/sample/flow-layout.rb +119 -0
  25. data/sample/grid-layout.rb +237 -0
  26. data/sample/image-content.rb +86 -0
  27. data/sample/pan-action.rb +98 -0
  28. data/sample/redhand.png +0 -0
  29. data/sample/rounded-rectangle.rb +88 -0
  30. data/sample/scroll-actor.rb +103 -0
  31. data/test/clutter-test-utils.rb +38 -0
  32. data/test/run-test.rb +59 -0
  33. data/test/test-clutter-actor.rb +242 -0
  34. data/test/test-clutter-blur-effect.rb +27 -0
  35. data/test/test-clutter-brightness-contrast-effect.rb +56 -0
  36. data/test/test-clutter-canvas.rb +43 -0
  37. data/test/test-clutter-color.rb +50 -0
  38. data/test/test-clutter-colorize-effect.rb +31 -0
  39. data/test/test-clutter-desaturate-effect.rb +30 -0
  40. data/test/test-clutter-feature.rb +34 -0
  41. data/test/test-clutter-flow-layout.rb +83 -0
  42. data/test/test-clutter-page-turn-effect.rb +46 -0
  43. data/test/test-clutter-property-transiton.rb +30 -0
  44. data/test/test-clutter-shader-effect.rb +65 -0
  45. data/test/test-clutter-text-buffer.rb +72 -0
  46. data/test/test-clutter-timeline.rb +59 -0
  47. data/vendor/local/bin/json-glib-format.exe +0 -0
  48. data/vendor/local/bin/json-glib-validate.exe +0 -0
  49. data/vendor/local/bin/libclutter-1.0-0.dll +0 -0
  50. data/vendor/local/bin/libcogl-20.dll +0 -0
  51. data/vendor/local/bin/libcogl-pango-20.dll +0 -0
  52. data/vendor/local/bin/libcogl-path-20.dll +0 -0
  53. data/vendor/local/bin/libjson-glib-1.0-0.dll +0 -0
  54. data/vendor/local/include/clutter-1.0/cally/cally-actor.h +160 -0
  55. data/vendor/local/include/clutter-1.0/cally/cally-clone.h +84 -0
  56. data/vendor/local/include/clutter-1.0/cally/cally-factory.h +117 -0
  57. data/vendor/local/include/clutter-1.0/cally/cally-group.h +87 -0
  58. data/vendor/local/include/clutter-1.0/cally/cally-main.h +44 -0
  59. data/vendor/local/include/clutter-1.0/cally/cally-rectangle.h +84 -0
  60. data/vendor/local/include/clutter-1.0/cally/cally-root.h +84 -0
  61. data/vendor/local/include/clutter-1.0/cally/cally-stage.h +84 -0
  62. data/vendor/local/include/clutter-1.0/cally/cally-text.h +84 -0
  63. data/vendor/local/include/clutter-1.0/cally/cally-texture.h +84 -0
  64. data/vendor/local/include/clutter-1.0/cally/cally-util.h +84 -0
  65. data/vendor/local/include/clutter-1.0/cally/cally.h +40 -0
  66. data/vendor/local/include/clutter-1.0/clutter/clutter-action.h +111 -0
  67. data/vendor/local/include/clutter-1.0/clutter/clutter-actor-meta.h +119 -0
  68. data/vendor/local/include/clutter-1.0/clutter/clutter-actor.h +836 -0
  69. data/vendor/local/include/clutter-1.0/clutter/clutter-align-constraint.h +77 -0
  70. data/vendor/local/include/clutter-1.0/clutter/clutter-animatable.h +121 -0
  71. data/vendor/local/include/clutter-1.0/clutter/clutter-backend.h +83 -0
  72. data/vendor/local/include/clutter-1.0/clutter/clutter-bin-layout.h +86 -0
  73. data/vendor/local/include/clutter-1.0/clutter/clutter-bind-constraint.h +77 -0
  74. data/vendor/local/include/clutter-1.0/clutter/clutter-binding-pool.h +135 -0
  75. data/vendor/local/include/clutter-1.0/clutter/clutter-blur-effect.h +59 -0
  76. data/vendor/local/include/clutter-1.0/clutter/clutter-box-layout.h +168 -0
  77. data/vendor/local/include/clutter-1.0/clutter/clutter-brightness-contrast-effect.h +88 -0
  78. data/vendor/local/include/clutter-1.0/clutter/clutter-cairo.h +61 -0
  79. data/vendor/local/include/clutter-1.0/clutter/clutter-canvas.h +106 -0
  80. data/vendor/local/include/clutter-1.0/clutter/clutter-child-meta.h +122 -0
  81. data/vendor/local/include/clutter-1.0/clutter/clutter-click-action.h +120 -0
  82. data/vendor/local/include/clutter-1.0/clutter/clutter-clone.h +94 -0
  83. data/vendor/local/include/clutter-1.0/clutter/clutter-cogl-compat.h +52 -0
  84. data/vendor/local/include/clutter-1.0/clutter/clutter-color-static.h +79 -0
  85. data/vendor/local/include/clutter-1.0/clutter/clutter-color.h +200 -0
  86. data/vendor/local/include/clutter-1.0/clutter/clutter-colorize-effect.h +67 -0
  87. data/vendor/local/include/clutter-1.0/clutter/clutter-config.h +19 -0
  88. data/vendor/local/include/clutter-1.0/clutter/clutter-constraint.h +120 -0
  89. data/vendor/local/include/clutter-1.0/clutter/clutter-container.h +196 -0
  90. data/vendor/local/include/clutter-1.0/clutter/clutter-content.h +103 -0
  91. data/vendor/local/include/clutter-1.0/clutter/clutter-deform-effect.h +117 -0
  92. data/vendor/local/include/clutter-1.0/clutter/clutter-deprecated.h +44 -0
  93. data/vendor/local/include/clutter-1.0/clutter/clutter-desaturate-effect.h +65 -0
  94. data/vendor/local/include/clutter-1.0/clutter/clutter-device-manager.h +110 -0
  95. data/vendor/local/include/clutter-1.0/clutter/clutter-drag-action.h +152 -0
  96. data/vendor/local/include/clutter-1.0/clutter/clutter-drop-action.h +115 -0
  97. data/vendor/local/include/clutter-1.0/clutter/clutter-effect.h +130 -0
  98. data/vendor/local/include/clutter-1.0/clutter/clutter-enum-types.h +190 -0
  99. data/vendor/local/include/clutter-1.0/clutter/clutter-enums.h +1385 -0
  100. data/vendor/local/include/clutter-1.0/clutter/clutter-event.h +588 -0
  101. data/vendor/local/include/clutter-1.0/clutter/clutter-feature.h +42 -0
  102. data/vendor/local/include/clutter-1.0/clutter/clutter-fixed-layout.h +82 -0
  103. data/vendor/local/include/clutter-1.0/clutter/clutter-flow-layout.h +129 -0
  104. data/vendor/local/include/clutter-1.0/clutter/clutter-gesture-action.h +179 -0
  105. data/vendor/local/include/clutter-1.0/clutter/clutter-grid-layout.h +161 -0
  106. data/vendor/local/include/clutter-1.0/clutter/clutter-group.h +96 -0
  107. data/vendor/local/include/clutter-1.0/clutter/clutter-image.h +141 -0
  108. data/vendor/local/include/clutter-1.0/clutter/clutter-input-device.h +140 -0
  109. data/vendor/local/include/clutter-1.0/clutter/clutter-interval.h +159 -0
  110. data/vendor/local/include/clutter-1.0/clutter/clutter-keyframe-transition.h +120 -0
  111. data/vendor/local/include/clutter-1.0/clutter/clutter-keysyms.h +2304 -0
  112. data/vendor/local/include/clutter-1.0/clutter/clutter-layout-manager.h +227 -0
  113. data/vendor/local/include/clutter-1.0/clutter/clutter-layout-meta.h +103 -0
  114. data/vendor/local/include/clutter-1.0/clutter/clutter-list-model.h +91 -0
  115. data/vendor/local/include/clutter-1.0/clutter/clutter-macros.h +327 -0
  116. data/vendor/local/include/clutter-1.0/clutter/clutter-main.h +184 -0
  117. data/vendor/local/include/clutter-1.0/clutter/clutter-marshal.h +273 -0
  118. data/vendor/local/include/clutter-1.0/clutter/clutter-model.h +422 -0
  119. data/vendor/local/include/clutter-1.0/clutter/clutter-offscreen-effect.h +122 -0
  120. data/vendor/local/include/clutter-1.0/clutter/clutter-page-turn-effect.h +80 -0
  121. data/vendor/local/include/clutter-1.0/clutter/clutter-paint-node.h +102 -0
  122. data/vendor/local/include/clutter-1.0/clutter/clutter-paint-nodes.h +150 -0
  123. data/vendor/local/include/clutter-1.0/clutter/clutter-pan-action.h +147 -0
  124. data/vendor/local/include/clutter-1.0/clutter/clutter-path-constraint.h +72 -0
  125. data/vendor/local/include/clutter-1.0/clutter/clutter-path.h +181 -0
  126. data/vendor/local/include/clutter-1.0/clutter/clutter-property-transition.h +91 -0
  127. data/vendor/local/include/clutter-1.0/clutter/clutter-rotate-action.h +100 -0
  128. data/vendor/local/include/clutter-1.0/clutter/clutter-script.h +220 -0
  129. data/vendor/local/include/clutter-1.0/clutter/clutter-scriptable.h +112 -0
  130. data/vendor/local/include/clutter-1.0/clutter/clutter-scroll-actor.h +97 -0
  131. data/vendor/local/include/clutter-1.0/clutter/clutter-settings.h +27 -0
  132. data/vendor/local/include/clutter-1.0/clutter/clutter-shader-effect.h +121 -0
  133. data/vendor/local/include/clutter-1.0/clutter/clutter-shader-types.h +104 -0
  134. data/vendor/local/include/clutter-1.0/clutter/clutter-snap-constraint.h +81 -0
  135. data/vendor/local/include/clutter-1.0/clutter/clutter-stage-manager.h +86 -0
  136. data/vendor/local/include/clutter-1.0/clutter/clutter-stage.h +250 -0
  137. data/vendor/local/include/clutter-1.0/clutter/clutter-swipe-action.h +109 -0
  138. data/vendor/local/include/clutter-1.0/clutter/clutter-tap-action.h +102 -0
  139. data/vendor/local/include/clutter-1.0/clutter/clutter-test-utils.h +164 -0
  140. data/vendor/local/include/clutter-1.0/clutter/clutter-text-buffer.h +172 -0
  141. data/vendor/local/include/clutter-1.0/clutter/clutter-text.h +307 -0
  142. data/vendor/local/include/clutter-1.0/clutter/clutter-texture.h +130 -0
  143. data/vendor/local/include/clutter-1.0/clutter/clutter-timeline.h +226 -0
  144. data/vendor/local/include/clutter-1.0/clutter/clutter-transition-group.h +91 -0
  145. data/vendor/local/include/clutter-1.0/clutter/clutter-transition.h +132 -0
  146. data/vendor/local/include/clutter-1.0/clutter/clutter-types.h +773 -0
  147. data/vendor/local/include/clutter-1.0/clutter/clutter-units.h +184 -0
  148. data/vendor/local/include/clutter-1.0/clutter/clutter-version.h +329 -0
  149. data/vendor/local/include/clutter-1.0/clutter/clutter-zoom-action.h +114 -0
  150. data/vendor/local/include/clutter-1.0/clutter/clutter.h +117 -0
  151. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-actor.h +161 -0
  152. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-alpha.h +144 -0
  153. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-animatable.h +47 -0
  154. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-animation.h +206 -0
  155. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-animator.h +186 -0
  156. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-backend.h +64 -0
  157. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-behaviour-depth.h +101 -0
  158. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-behaviour-ellipse.h +159 -0
  159. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-behaviour-opacity.h +115 -0
  160. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-behaviour-path.h +135 -0
  161. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-behaviour-rotate.h +119 -0
  162. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-behaviour-scale.h +107 -0
  163. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-behaviour.h +170 -0
  164. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-bin-layout.h +56 -0
  165. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-box.h +143 -0
  166. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-cairo-texture.h +139 -0
  167. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-container.h +93 -0
  168. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-fixed.h +98 -0
  169. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-frame-source.h +49 -0
  170. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-group.h +62 -0
  171. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-input-device.h +41 -0
  172. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-keysyms.h +2306 -0
  173. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-main.h +96 -0
  174. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-media.h +121 -0
  175. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-rectangle.h +117 -0
  176. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-score.h +144 -0
  177. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-shader.h +182 -0
  178. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-stage-manager.h +42 -0
  179. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-stage.h +102 -0
  180. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-state.h +187 -0
  181. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-table-layout.h +172 -0
  182. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-texture.h +138 -0
  183. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-timeline.h +41 -0
  184. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-timeout-pool.h +69 -0
  185. data/vendor/local/include/clutter-1.0/clutter/deprecated/clutter-util.h +40 -0
  186. data/vendor/local/include/clutter-1.0/clutter/win32/clutter-win32.h +63 -0
  187. data/vendor/local/include/cogl/cogl-pango/cogl-pango.h +298 -0
  188. data/vendor/local/include/cogl/cogl-path/cogl-path-enum-types.h +20 -0
  189. data/vendor/local/include/cogl/cogl-path/cogl-path-types.h +85 -0
  190. data/vendor/local/include/cogl/cogl-path/cogl-path.h +68 -0
  191. data/vendor/local/include/cogl/cogl-path/cogl1-path-functions.h +467 -0
  192. data/vendor/local/include/cogl/cogl-path/cogl2-path-functions.h +545 -0
  193. data/vendor/local/include/cogl/cogl/cogl-atlas-texture.h +258 -0
  194. data/vendor/local/include/cogl/cogl/cogl-attribute-buffer.h +152 -0
  195. data/vendor/local/include/cogl/cogl/cogl-attribute.h +558 -0
  196. data/vendor/local/include/cogl/cogl/cogl-auto-texture.h +221 -0
  197. data/vendor/local/include/cogl/cogl/cogl-bitmap.h +336 -0
  198. data/vendor/local/include/cogl/cogl/cogl-buffer.h +324 -0
  199. data/vendor/local/include/cogl/cogl/cogl-clip-state.h +266 -0
  200. data/vendor/local/include/cogl/cogl/cogl-clutter.h +54 -0
  201. data/vendor/local/include/cogl/cogl/cogl-color.h +604 -0
  202. data/vendor/local/include/cogl/cogl/cogl-context.h +401 -0
  203. data/vendor/local/include/cogl/cogl/cogl-defines.h +58 -0
  204. data/vendor/local/include/cogl/cogl/cogl-deprecated.h +43 -0
  205. data/vendor/local/include/cogl/cogl/cogl-depth-state.h +270 -0
  206. data/vendor/local/include/cogl/cogl/cogl-display.h +234 -0
  207. data/vendor/local/include/cogl/cogl/cogl-enum-types.h +99 -0
  208. data/vendor/local/include/cogl/cogl/cogl-error.h +185 -0
  209. data/vendor/local/include/cogl/cogl/cogl-euler.h +269 -0
  210. data/vendor/local/include/cogl/cogl/cogl-fence.h +143 -0
  211. data/vendor/local/include/cogl/cogl/cogl-fixed.h +811 -0
  212. data/vendor/local/include/cogl/cogl/cogl-frame-info.h +148 -0
  213. data/vendor/local/include/cogl/cogl/cogl-framebuffer-deprecated.h +264 -0
  214. data/vendor/local/include/cogl/cogl/cogl-framebuffer.h +1818 -0
  215. data/vendor/local/include/cogl/cogl/cogl-gles2-types.h +474 -0
  216. data/vendor/local/include/cogl/cogl/cogl-gles2.h +420 -0
  217. data/vendor/local/include/cogl/cogl/cogl-glib-source.h +97 -0
  218. data/vendor/local/include/cogl/cogl/cogl-index-buffer.h +107 -0
  219. data/vendor/local/include/cogl/cogl/cogl-indices.h +165 -0
  220. data/vendor/local/include/cogl/cogl/cogl-macros.h +273 -0
  221. data/vendor/local/include/cogl/cogl/cogl-material-compat.h +1391 -0
  222. data/vendor/local/include/cogl/cogl/cogl-matrix-stack.h +645 -0
  223. data/vendor/local/include/cogl/cogl/cogl-matrix.h +821 -0
  224. data/vendor/local/include/cogl/cogl/cogl-meta-texture.h +194 -0
  225. data/vendor/local/include/cogl/cogl/cogl-object.h +251 -0
  226. data/vendor/local/include/cogl/cogl/cogl-offscreen.h +172 -0
  227. data/vendor/local/include/cogl/cogl/cogl-onscreen-template.h +125 -0
  228. data/vendor/local/include/cogl/cogl/cogl-onscreen.h +1012 -0
  229. data/vendor/local/include/cogl/cogl/cogl-output.h +261 -0
  230. data/vendor/local/include/cogl/cogl/cogl-pango.h +40 -0
  231. data/vendor/local/include/cogl/cogl/cogl-pipeline-layer-state.h +620 -0
  232. data/vendor/local/include/cogl/cogl/cogl-pipeline-state.h +980 -0
  233. data/vendor/local/include/cogl/cogl/cogl-pipeline.h +194 -0
  234. data/vendor/local/include/cogl/cogl/cogl-pixel-buffer.h +138 -0
  235. data/vendor/local/include/cogl/cogl/cogl-poll.h +200 -0
  236. data/vendor/local/include/cogl/cogl/cogl-primitive-texture.h +111 -0
  237. data/vendor/local/include/cogl/cogl/cogl-primitive.h +942 -0
  238. data/vendor/local/include/cogl/cogl/cogl-primitives.h +197 -0
  239. data/vendor/local/include/cogl/cogl/cogl-quaternion.h +564 -0
  240. data/vendor/local/include/cogl/cogl/cogl-renderer.h +446 -0
  241. data/vendor/local/include/cogl/cogl/cogl-shader.h +704 -0
  242. data/vendor/local/include/cogl/cogl/cogl-snippet.h +866 -0
  243. data/vendor/local/include/cogl/cogl/cogl-sub-texture.h +136 -0
  244. data/vendor/local/include/cogl/cogl/cogl-swap-chain.h +71 -0
  245. data/vendor/local/include/cogl/cogl/cogl-texture-2d-gl.h +78 -0
  246. data/vendor/local/include/cogl/cogl/cogl-texture-2d-sliced.h +301 -0
  247. data/vendor/local/include/cogl/cogl/cogl-texture-2d.h +234 -0
  248. data/vendor/local/include/cogl/cogl/cogl-texture-3d.h +204 -0
  249. data/vendor/local/include/cogl/cogl/cogl-texture-deprecated.h +105 -0
  250. data/vendor/local/include/cogl/cogl/cogl-texture-rectangle.h +218 -0
  251. data/vendor/local/include/cogl/cogl/cogl-texture.h +524 -0
  252. data/vendor/local/include/cogl/cogl/cogl-type-casts.h +53 -0
  253. data/vendor/local/include/cogl/cogl/cogl-types.h +925 -0
  254. data/vendor/local/include/cogl/cogl/cogl-vector.h +356 -0
  255. data/vendor/local/include/cogl/cogl/cogl-version.h +348 -0
  256. data/vendor/local/include/cogl/cogl/cogl-vertex-buffer.h +451 -0
  257. data/vendor/local/include/cogl/cogl/cogl-win32-renderer.h +123 -0
  258. data/vendor/local/include/cogl/cogl/cogl.h +194 -0
  259. data/vendor/local/include/cogl/cogl/cogl1-context.h +862 -0
  260. data/vendor/local/include/cogl/cogl/cogl2-experimental.h +37 -0
  261. data/vendor/local/include/cogl/cogl/deprecated/cogl-auto-texture.h +221 -0
  262. data/vendor/local/include/cogl/cogl/deprecated/cogl-clip-state.h +266 -0
  263. data/vendor/local/include/cogl/cogl/deprecated/cogl-clutter.h +54 -0
  264. data/vendor/local/include/cogl/cogl/deprecated/cogl-fixed.h +811 -0
  265. data/vendor/local/include/cogl/cogl/deprecated/cogl-framebuffer-deprecated.h +264 -0
  266. data/vendor/local/include/cogl/cogl/deprecated/cogl-material-compat.h +1391 -0
  267. data/vendor/local/include/cogl/cogl/deprecated/cogl-shader.h +704 -0
  268. data/vendor/local/include/cogl/cogl/deprecated/cogl-texture-deprecated.h +105 -0
  269. data/vendor/local/include/cogl/cogl/deprecated/cogl-type-casts.h +53 -0
  270. data/vendor/local/include/cogl/cogl/deprecated/cogl-vertex-buffer.h +451 -0
  271. data/vendor/local/include/cogl/cogl/gl-prototypes/cogl-core-functions.h +198 -0
  272. data/vendor/local/include/cogl/cogl/gl-prototypes/cogl-gles2-functions.h +43 -0
  273. data/vendor/local/include/cogl/cogl/gl-prototypes/cogl-glsl-functions.h +286 -0
  274. data/vendor/local/include/cogl/cogl/gl-prototypes/cogl-in-gles-core-functions.h +148 -0
  275. data/vendor/local/include/cogl/cogl/gl-prototypes/cogl-in-gles2-core-functions.h +186 -0
  276. data/vendor/local/include/json-glib-1.0/json-glib/json-builder.h +120 -0
  277. data/vendor/local/include/json-glib-1.0/json-glib/json-enum-types.h +41 -0
  278. data/vendor/local/include/json-glib-1.0/json-glib/json-generator.h +120 -0
  279. data/vendor/local/include/json-glib-1.0/json-glib/json-glib.h +47 -0
  280. data/vendor/local/include/json-glib-1.0/json-glib/json-gobject.h +199 -0
  281. data/vendor/local/include/json-glib-1.0/json-glib/json-gvariant.h +53 -0
  282. data/vendor/local/include/json-glib-1.0/json-glib/json-parser.h +188 -0
  283. data/vendor/local/include/json-glib-1.0/json-glib/json-path.h +102 -0
  284. data/vendor/local/include/json-glib-1.0/json-glib/json-reader.h +171 -0
  285. data/vendor/local/include/json-glib-1.0/json-glib/json-types.h +445 -0
  286. data/vendor/local/include/json-glib-1.0/json-glib/json-version-macros.h +135 -0
  287. data/vendor/local/include/json-glib-1.0/json-glib/json-version.h +102 -0
  288. data/vendor/local/lib/girepository-1.0/Cally-1.0.typelib +0 -0
  289. data/vendor/local/lib/girepository-1.0/Clutter-1.0.typelib +0 -0
  290. data/vendor/local/lib/girepository-1.0/Cogl-1.0.typelib +0 -0
  291. data/vendor/local/lib/girepository-1.0/Cogl-2.0.typelib +0 -0
  292. data/vendor/local/lib/girepository-1.0/CoglPango-1.0.typelib +0 -0
  293. data/vendor/local/lib/girepository-1.0/CoglPango-2.0.typelib +0 -0
  294. data/vendor/local/lib/girepository-1.0/Json-1.0.typelib +0 -0
  295. data/vendor/local/lib/libclutter-1.0.dll.a +0 -0
  296. data/vendor/local/lib/libclutter-1.0.la +41 -0
  297. data/vendor/local/lib/libcogl-pango.dll.a +0 -0
  298. data/vendor/local/lib/libcogl-pango.la +41 -0
  299. data/vendor/local/lib/libcogl-path.dll.a +0 -0
  300. data/vendor/local/lib/libcogl-path.la +41 -0
  301. data/vendor/local/lib/libcogl.dll.a +0 -0
  302. data/vendor/local/lib/libcogl.la +41 -0
  303. data/vendor/local/lib/libjson-glib-1.0.dll.a +0 -0
  304. data/vendor/local/lib/libjson-glib-1.0.la +41 -0
  305. data/vendor/local/lib/pkgconfig/cally-1.0.pc +13 -0
  306. data/vendor/local/lib/pkgconfig/clutter-1.0.pc +24 -0
  307. data/vendor/local/lib/pkgconfig/clutter-win32-1.0.pc +24 -0
  308. data/vendor/local/lib/pkgconfig/cogl-1.0.pc +13 -0
  309. data/vendor/local/lib/pkgconfig/cogl-2.0-experimental.pc +13 -0
  310. data/vendor/local/lib/pkgconfig/cogl-gl-1.0.pc +13 -0
  311. data/vendor/local/lib/pkgconfig/cogl-pango-1.0.pc +13 -0
  312. data/vendor/local/lib/pkgconfig/cogl-pango-2.0-experimental.pc +13 -0
  313. data/vendor/local/lib/pkgconfig/cogl-path-1.0.pc +13 -0
  314. data/vendor/local/lib/pkgconfig/cogl-path-2.0-experimental.pc +13 -0
  315. data/vendor/local/lib/pkgconfig/json-glib-1.0.pc +11 -0
  316. data/vendor/local/share/cogl/examples-data/crate.jpg +0 -0
  317. data/vendor/local/share/gir-1.0/Cally-1.0.gir +681 -0
  318. data/vendor/local/share/gir-1.0/Clutter-1.0.gir +70493 -0
  319. data/vendor/local/share/gir-1.0/Cogl-1.0.gir +8197 -0
  320. data/vendor/local/share/gir-1.0/Cogl-2.0.gir +20369 -0
  321. data/vendor/local/share/gir-1.0/CoglPango-1.0.gir +333 -0
  322. data/vendor/local/share/gir-1.0/CoglPango-2.0.gir +331 -0
  323. data/vendor/local/share/gir-1.0/Json-1.0.gir +4742 -0
  324. data/vendor/local/share/gtk-doc/html/cally/CallyActor.html +509 -0
  325. data/vendor/local/share/gtk-doc/html/cally/CallyClone.html +155 -0
  326. data/vendor/local/share/gtk-doc/html/cally/CallyGroup.html +154 -0
  327. data/vendor/local/share/gtk-doc/html/cally/CallyRectangle.html +154 -0
  328. data/vendor/local/share/gtk-doc/html/cally/CallyRoot.html +133 -0
  329. data/vendor/local/share/gtk-doc/html/cally/CallyStage.html +159 -0
  330. data/vendor/local/share/gtk-doc/html/cally/CallyText.html +154 -0
  331. data/vendor/local/share/gtk-doc/html/cally/CallyTexture.html +154 -0
  332. data/vendor/local/share/gtk-doc/html/cally/CallyUtil.html +102 -0
  333. data/vendor/local/share/gtk-doc/html/cally/cally-General-API.html +187 -0
  334. data/vendor/local/share/gtk-doc/html/cally/cally.devhelp2 +73 -0
  335. data/vendor/local/share/gtk-doc/html/cally/callyannotationglossary.html +41 -0
  336. data/vendor/local/share/gtk-doc/html/cally/callybase.html +71 -0
  337. data/vendor/local/share/gtk-doc/html/cally/callyobjecthierarchy.html +45 -0
  338. data/vendor/local/share/gtk-doc/html/cally/callyobjectindex.html +64 -0
  339. data/vendor/local/share/gtk-doc/html/cally/callyobjects.html +39 -0
  340. data/vendor/local/share/gtk-doc/html/cally/ch01.html +53 -0
  341. data/vendor/local/share/gtk-doc/html/cally/ch02.html +41 -0
  342. data/vendor/local/share/gtk-doc/html/cally/clutter-overview.html +96 -0
  343. data/vendor/local/share/gtk-doc/html/cally/home.png +0 -0
  344. data/vendor/local/share/gtk-doc/html/cally/index.html +103 -0
  345. data/vendor/local/share/gtk-doc/html/cally/index.sgml +121 -0
  346. data/vendor/local/share/gtk-doc/html/cally/ix01.html +193 -0
  347. data/vendor/local/share/gtk-doc/html/cally/ix02.html +31 -0
  348. data/vendor/local/share/gtk-doc/html/cally/ix03.html +185 -0
  349. data/vendor/local/share/gtk-doc/html/cally/ix04.html +39 -0
  350. data/vendor/local/share/gtk-doc/html/cally/left-insensitive.png +0 -0
  351. data/vendor/local/share/gtk-doc/html/cally/left.png +0 -0
  352. data/vendor/local/share/gtk-doc/html/cally/license.html +58 -0
  353. data/vendor/local/share/gtk-doc/html/cally/right-insensitive.png +0 -0
  354. data/vendor/local/share/gtk-doc/html/cally/right.png +0 -0
  355. data/vendor/local/share/gtk-doc/html/cally/style.css +476 -0
  356. data/vendor/local/share/gtk-doc/html/cally/up-insensitive.png +0 -0
  357. data/vendor/local/share/gtk-doc/html/cally/up.png +0 -0
  358. data/vendor/local/share/gtk-doc/html/clutter/ClutterAction.html +109 -0
  359. data/vendor/local/share/gtk-doc/html/clutter/ClutterActor.html +15797 -0
  360. data/vendor/local/share/gtk-doc/html/clutter/ClutterActorMeta.html +396 -0
  361. data/vendor/local/share/gtk-doc/html/clutter/ClutterAlignConstraint.html +494 -0
  362. data/vendor/local/share/gtk-doc/html/clutter/ClutterAlpha.html +816 -0
  363. data/vendor/local/share/gtk-doc/html/clutter/ClutterAnimatable.html +497 -0
  364. data/vendor/local/share/gtk-doc/html/clutter/ClutterAnimator.html +1406 -0
  365. data/vendor/local/share/gtk-doc/html/clutter/ClutterBackend.html +855 -0
  366. data/vendor/local/share/gtk-doc/html/clutter/ClutterBehaviour.html +802 -0
  367. data/vendor/local/share/gtk-doc/html/clutter/ClutterBehaviourDepth.html +313 -0
  368. data/vendor/local/share/gtk-doc/html/clutter/ClutterBehaviourEllipse.html +1041 -0
  369. data/vendor/local/share/gtk-doc/html/clutter/ClutterBehaviourOpacity.html +319 -0
  370. data/vendor/local/share/gtk-doc/html/clutter/ClutterBehaviourPath.html +502 -0
  371. data/vendor/local/share/gtk-doc/html/clutter/ClutterBehaviourRotate.html +744 -0
  372. data/vendor/local/share/gtk-doc/html/clutter/ClutterBehaviourScale.html +476 -0
  373. data/vendor/local/share/gtk-doc/html/clutter/ClutterBinLayout.html +481 -0
  374. data/vendor/local/share/gtk-doc/html/clutter/ClutterBindConstraint.html +598 -0
  375. data/vendor/local/share/gtk-doc/html/clutter/ClutterBlurEffect.html +116 -0
  376. data/vendor/local/share/gtk-doc/html/clutter/ClutterBox.html +726 -0
  377. data/vendor/local/share/gtk-doc/html/clutter/ClutterBoxLayout.html +1471 -0
  378. data/vendor/local/share/gtk-doc/html/clutter/ClutterBrightnessContrastEffect.html +480 -0
  379. data/vendor/local/share/gtk-doc/html/clutter/ClutterCairoTexture.html +873 -0
  380. data/vendor/local/share/gtk-doc/html/clutter/ClutterCanvas.html +488 -0
  381. data/vendor/local/share/gtk-doc/html/clutter/ClutterChildMeta.html +287 -0
  382. data/vendor/local/share/gtk-doc/html/clutter/ClutterClickAction.html +667 -0
  383. data/vendor/local/share/gtk-doc/html/clutter/ClutterClone.html +258 -0
  384. data/vendor/local/share/gtk-doc/html/clutter/ClutterColorizeEffect.html +239 -0
  385. data/vendor/local/share/gtk-doc/html/clutter/ClutterConstraint.html +208 -0
  386. data/vendor/local/share/gtk-doc/html/clutter/ClutterContainer.html +1611 -0
  387. data/vendor/local/share/gtk-doc/html/clutter/ClutterContent.html +367 -0
  388. data/vendor/local/share/gtk-doc/html/clutter/ClutterDeformEffect.html +418 -0
  389. data/vendor/local/share/gtk-doc/html/clutter/ClutterDesaturateEffect.html +242 -0
  390. data/vendor/local/share/gtk-doc/html/clutter/ClutterDeviceManager.html +492 -0
  391. data/vendor/local/share/gtk-doc/html/clutter/ClutterDragAction.html +1120 -0
  392. data/vendor/local/share/gtk-doc/html/clutter/ClutterDropAction.html +498 -0
  393. data/vendor/local/share/gtk-doc/html/clutter/ClutterEffect.html +469 -0
  394. data/vendor/local/share/gtk-doc/html/clutter/ClutterFixedLayout.html +125 -0
  395. data/vendor/local/share/gtk-doc/html/clutter/ClutterFlowLayout.html +928 -0
  396. data/vendor/local/share/gtk-doc/html/clutter/ClutterGestureAction.html +1321 -0
  397. data/vendor/local/share/gtk-doc/html/clutter/ClutterGridLayout.html +1020 -0
  398. data/vendor/local/share/gtk-doc/html/clutter/ClutterGroup.html +272 -0
  399. data/vendor/local/share/gtk-doc/html/clutter/ClutterImage.html +527 -0
  400. data/vendor/local/share/gtk-doc/html/clutter/ClutterInputDevice.html +1805 -0
  401. data/vendor/local/share/gtk-doc/html/clutter/ClutterKeyframeTransition.html +616 -0
  402. data/vendor/local/share/gtk-doc/html/clutter/ClutterLayoutManager.html +1280 -0
  403. data/vendor/local/share/gtk-doc/html/clutter/ClutterLayoutMeta.html +189 -0
  404. data/vendor/local/share/gtk-doc/html/clutter/ClutterListModel.html +222 -0
  405. data/vendor/local/share/gtk-doc/html/clutter/ClutterMedia.html +1053 -0
  406. data/vendor/local/share/gtk-doc/html/clutter/ClutterModel.html +2052 -0
  407. data/vendor/local/share/gtk-doc/html/clutter/ClutterModelIter.html +779 -0
  408. data/vendor/local/share/gtk-doc/html/clutter/ClutterOffscreenEffect.html +452 -0
  409. data/vendor/local/share/gtk-doc/html/clutter/ClutterPageTurnEffect.html +428 -0
  410. data/vendor/local/share/gtk-doc/html/clutter/ClutterPaintNode.html +671 -0
  411. data/vendor/local/share/gtk-doc/html/clutter/ClutterPanAction.html +946 -0
  412. data/vendor/local/share/gtk-doc/html/clutter/ClutterPath.html +1576 -0
  413. data/vendor/local/share/gtk-doc/html/clutter/ClutterPathConstraint.html +407 -0
  414. data/vendor/local/share/gtk-doc/html/clutter/ClutterPropertyTransition.html +261 -0
  415. data/vendor/local/share/gtk-doc/html/clutter/ClutterRectangle.html +484 -0
  416. data/vendor/local/share/gtk-doc/html/clutter/ClutterRotateAction.html +216 -0
  417. data/vendor/local/share/gtk-doc/html/clutter/ClutterScore.html +1018 -0
  418. data/vendor/local/share/gtk-doc/html/clutter/ClutterScript.html +1421 -0
  419. data/vendor/local/share/gtk-doc/html/clutter/ClutterScriptable.html +364 -0
  420. data/vendor/local/share/gtk-doc/html/clutter/ClutterScrollActor.html +385 -0
  421. data/vendor/local/share/gtk-doc/html/clutter/ClutterSettings.html +376 -0
  422. data/vendor/local/share/gtk-doc/html/clutter/ClutterShaderEffect.html +693 -0
  423. data/vendor/local/share/gtk-doc/html/clutter/ClutterSnapConstraint.html +526 -0
  424. data/vendor/local/share/gtk-doc/html/clutter/ClutterStage.html +2751 -0
  425. data/vendor/local/share/gtk-doc/html/clutter/ClutterState.html +1823 -0
  426. data/vendor/local/share/gtk-doc/html/clutter/ClutterSwipeAction.html +333 -0
  427. data/vendor/local/share/gtk-doc/html/clutter/ClutterTableLayout.html +1393 -0
  428. data/vendor/local/share/gtk-doc/html/clutter/ClutterTapAction.html +219 -0
  429. data/vendor/local/share/gtk-doc/html/clutter/ClutterText.html +3871 -0
  430. data/vendor/local/share/gtk-doc/html/clutter/ClutterTextBuffer.html +906 -0
  431. data/vendor/local/share/gtk-doc/html/clutter/ClutterTexture.html +2085 -0
  432. data/vendor/local/share/gtk-doc/html/clutter/ClutterTimeline.html +2864 -0
  433. data/vendor/local/share/gtk-doc/html/clutter/ClutterTransition.html +684 -0
  434. data/vendor/local/share/gtk-doc/html/clutter/ClutterTransitionGroup.html +264 -0
  435. data/vendor/local/share/gtk-doc/html/clutter/ClutterZoomAction.html +474 -0
  436. data/vendor/local/share/gtk-doc/html/clutter/actor-box.png +0 -0
  437. data/vendor/local/share/gtk-doc/html/clutter/actor-example.png +0 -0
  438. data/vendor/local/share/gtk-doc/html/clutter/animator-key-frames.png +0 -0
  439. data/vendor/local/share/gtk-doc/html/clutter/annotation-glossary.html +95 -0
  440. data/vendor/local/share/gtk-doc/html/clutter/bin-layout.png +0 -0
  441. data/vendor/local/share/gtk-doc/html/clutter/box-layout.png +0 -0
  442. data/vendor/local/share/gtk-doc/html/clutter/building-clutter.html +275 -0
  443. data/vendor/local/share/gtk-doc/html/clutter/ch01.html +65 -0
  444. data/vendor/local/share/gtk-doc/html/clutter/ch02.html +44 -0
  445. data/vendor/local/share/gtk-doc/html/clutter/ch03.html +47 -0
  446. data/vendor/local/share/gtk-doc/html/clutter/ch04.html +59 -0
  447. data/vendor/local/share/gtk-doc/html/clutter/ch05.html +44 -0
  448. data/vendor/local/share/gtk-doc/html/clutter/ch06.html +57 -0
  449. data/vendor/local/share/gtk-doc/html/clutter/ch07.html +38 -0
  450. data/vendor/local/share/gtk-doc/html/clutter/ch08.html +38 -0
  451. data/vendor/local/share/gtk-doc/html/clutter/ch09.html +53 -0
  452. data/vendor/local/share/gtk-doc/html/clutter/ch10.html +78 -0
  453. data/vendor/local/share/gtk-doc/html/clutter/ch11.html +38 -0
  454. data/vendor/local/share/gtk-doc/html/clutter/ch12.html +41 -0
  455. data/vendor/local/share/gtk-doc/html/clutter/clutter-Base-geometric-types.html +4244 -0
  456. data/vendor/local/share/gtk-doc/html/clutter/clutter-ClutterGLXTexturePixmap.html +268 -0
  457. data/vendor/local/share/gtk-doc/html/clutter/clutter-ClutterWaylandSurface.html +454 -0
  458. data/vendor/local/share/gtk-doc/html/clutter/clutter-ClutterX11TexturePixmap.html +442 -0
  459. data/vendor/local/share/gtk-doc/html/clutter/clutter-Colors.html +1644 -0
  460. data/vendor/local/share/gtk-doc/html/clutter/clutter-EGL-Specific-Support.html +211 -0
  461. data/vendor/local/share/gtk-doc/html/clutter/clutter-Events.html +3454 -0
  462. data/vendor/local/share/gtk-doc/html/clutter/clutter-Features.html +232 -0
  463. data/vendor/local/share/gtk-doc/html/clutter/clutter-GDK-Specific-Support.html +297 -0
  464. data/vendor/local/share/gtk-doc/html/clutter/clutter-General.html +2112 -0
  465. data/vendor/local/share/gtk-doc/html/clutter/clutter-Implicit-Animations.html +2213 -0
  466. data/vendor/local/share/gtk-doc/html/clutter/clutter-Intel-CE3100-CE4100-Specific-Support.html +200 -0
  467. data/vendor/local/share/gtk-doc/html/clutter/clutter-Key-Bindings.html +992 -0
  468. data/vendor/local/share/gtk-doc/html/clutter/clutter-Paint-Nodes.html +411 -0
  469. data/vendor/local/share/gtk-doc/html/clutter/clutter-Shaders.html +1236 -0
  470. data/vendor/local/share/gtk-doc/html/clutter/clutter-Stage-Manager.html +418 -0
  471. data/vendor/local/share/gtk-doc/html/clutter/clutter-Unit-conversion.html +1006 -0
  472. data/vendor/local/share/gtk-doc/html/clutter/clutter-Utilities.html +661 -0
  473. data/vendor/local/share/gtk-doc/html/clutter/clutter-Value-intervals.html +1221 -0
  474. data/vendor/local/share/gtk-doc/html/clutter/clutter-Versioning-Macros.html +578 -0
  475. data/vendor/local/share/gtk-doc/html/clutter/clutter-Wayland-compositor-specific-support.html +106 -0
  476. data/vendor/local/share/gtk-doc/html/clutter/clutter-Wayland-specific-support.html +289 -0
  477. data/vendor/local/share/gtk-doc/html/clutter/clutter-Win32-Specific-Support.html +241 -0
  478. data/vendor/local/share/gtk-doc/html/clutter/clutter-X11-Specific-Support.html +916 -0
  479. data/vendor/local/share/gtk-doc/html/clutter/clutter-overview.html +77 -0
  480. data/vendor/local/share/gtk-doc/html/clutter/clutter.devhelp2 +2403 -0
  481. data/vendor/local/share/gtk-doc/html/clutter/clutteranimation.html +65 -0
  482. data/vendor/local/share/gtk-doc/html/clutter/clutterbackends.html +74 -0
  483. data/vendor/local/share/gtk-doc/html/clutter/clutterbase.html +195 -0
  484. data/vendor/local/share/gtk-doc/html/clutter/clutterglossary.html +37 -0
  485. data/vendor/local/share/gtk-doc/html/clutter/clutterobjecthierarchy.html +118 -0
  486. data/vendor/local/share/gtk-doc/html/clutter/clutterobjectindex.html +184 -0
  487. data/vendor/local/share/gtk-doc/html/clutter/clutterobjects.html +37 -0
  488. data/vendor/local/share/gtk-doc/html/clutter/cluttertools.html +105 -0
  489. data/vendor/local/share/gtk-doc/html/clutter/constraints-example.png +0 -0
  490. data/vendor/local/share/gtk-doc/html/clutter/deprecated.html +93 -0
  491. data/vendor/local/share/gtk-doc/html/clutter/easing-modes.png +0 -0
  492. data/vendor/local/share/gtk-doc/html/clutter/event-flow.png +0 -0
  493. data/vendor/local/share/gtk-doc/html/clutter/flow-layout.png +0 -0
  494. data/vendor/local/share/gtk-doc/html/clutter/go01.html +126 -0
  495. data/vendor/local/share/gtk-doc/html/clutter/home.png +0 -0
  496. data/vendor/local/share/gtk-doc/html/clutter/index.html +454 -0
  497. data/vendor/local/share/gtk-doc/html/clutter/index.sgml +3165 -0
  498. data/vendor/local/share/gtk-doc/html/clutter/iterating-paths.html +56 -0
  499. data/vendor/local/share/gtk-doc/html/clutter/ix01.html +8982 -0
  500. data/vendor/local/share/gtk-doc/html/clutter/ix02.html +2198 -0
  501. data/vendor/local/share/gtk-doc/html/clutter/ix03.html +457 -0
  502. data/vendor/local/share/gtk-doc/html/clutter/ix04.html +578 -0
  503. data/vendor/local/share/gtk-doc/html/clutter/ix05.html +952 -0
  504. data/vendor/local/share/gtk-doc/html/clutter/ix06.html +637 -0
  505. data/vendor/local/share/gtk-doc/html/clutter/ix07.html +1525 -0
  506. data/vendor/local/share/gtk-doc/html/clutter/ix08.html +815 -0
  507. data/vendor/local/share/gtk-doc/html/clutter/ix09.html +1000 -0
  508. data/vendor/local/share/gtk-doc/html/clutter/ix10.html +364 -0
  509. data/vendor/local/share/gtk-doc/html/clutter/ix11.html +361 -0
  510. data/vendor/local/share/gtk-doc/html/clutter/ix12.html +1085 -0
  511. data/vendor/local/share/gtk-doc/html/clutter/ix13.html +979 -0
  512. data/vendor/local/share/gtk-doc/html/clutter/ix14.html +101 -0
  513. data/vendor/local/share/gtk-doc/html/clutter/left-insensitive.png +0 -0
  514. data/vendor/local/share/gtk-doc/html/clutter/left.png +0 -0
  515. data/vendor/local/share/gtk-doc/html/clutter/license.html +58 -0
  516. data/vendor/local/share/gtk-doc/html/clutter/migrating-ClutterAnimation.html +223 -0
  517. data/vendor/local/share/gtk-doc/html/clutter/migrating-ClutterBehaviour.html +197 -0
  518. data/vendor/local/share/gtk-doc/html/clutter/migrating-ClutterEffect.html +154 -0
  519. data/vendor/local/share/gtk-doc/html/clutter/migrating-ClutterPath.html +155 -0
  520. data/vendor/local/share/gtk-doc/html/clutter/migration.html +49 -0
  521. data/vendor/local/share/gtk-doc/html/clutter/offscreen-redirect.png +0 -0
  522. data/vendor/local/share/gtk-doc/html/clutter/path-alpha-func.png +0 -0
  523. data/vendor/local/share/gtk-doc/html/clutter/pt09.html +31 -0
  524. data/vendor/local/share/gtk-doc/html/clutter/right-insensitive.png +0 -0
  525. data/vendor/local/share/gtk-doc/html/clutter/right.png +0 -0
  526. data/vendor/local/share/gtk-doc/html/clutter/running-clutter.html +378 -0
  527. data/vendor/local/share/gtk-doc/html/clutter/style.css +476 -0
  528. data/vendor/local/share/gtk-doc/html/clutter/table-layout.png +0 -0
  529. data/vendor/local/share/gtk-doc/html/clutter/up-insensitive.png +0 -0
  530. data/vendor/local/share/gtk-doc/html/clutter/up.png +0 -0
  531. data/vendor/local/share/gtk-doc/html/clutter/using-cairo.html +36 -0
  532. data/vendor/local/share/gtk-doc/html/json-glib/JsonBuilder.html +676 -0
  533. data/vendor/local/share/gtk-doc/html/json-glib/JsonGenerator.html +660 -0
  534. data/vendor/local/share/gtk-doc/html/json-glib/JsonParser.html +1144 -0
  535. data/vendor/local/share/gtk-doc/html/json-glib/JsonPath.html +512 -0
  536. data/vendor/local/share/gtk-doc/html/json-glib/JsonReader.html +1140 -0
  537. data/vendor/local/share/gtk-doc/html/json-glib/annotation-glossary.html +66 -0
  538. data/vendor/local/share/gtk-doc/html/json-glib/ch01.html +41 -0
  539. data/vendor/local/share/gtk-doc/html/json-glib/ch02.html +41 -0
  540. data/vendor/local/share/gtk-doc/html/json-glib/ch03.html +38 -0
  541. data/vendor/local/share/gtk-doc/html/json-glib/ch05.html +40 -0
  542. data/vendor/local/share/gtk-doc/html/json-glib/home.png +0 -0
  543. data/vendor/local/share/gtk-doc/html/json-glib/index.html +134 -0
  544. data/vendor/local/share/gtk-doc/html/json-glib/index.sgml +327 -0
  545. data/vendor/local/share/gtk-doc/html/json-glib/ix01.html +965 -0
  546. data/vendor/local/share/gtk-doc/html/json-glib/ix02.html +49 -0
  547. data/vendor/local/share/gtk-doc/html/json-glib/ix03.html +56 -0
  548. data/vendor/local/share/gtk-doc/html/json-glib/ix04.html +49 -0
  549. data/vendor/local/share/gtk-doc/html/json-glib/ix05.html +181 -0
  550. data/vendor/local/share/gtk-doc/html/json-glib/ix06.html +116 -0
  551. data/vendor/local/share/gtk-doc/html/json-glib/ix07.html +156 -0
  552. data/vendor/local/share/gtk-doc/html/json-glib/ix08.html +132 -0
  553. data/vendor/local/share/gtk-doc/html/json-glib/json-advanced.html +50 -0
  554. data/vendor/local/share/gtk-doc/html/json-glib/json-base.html +61 -0
  555. data/vendor/local/share/gtk-doc/html/json-glib/json-format-tool.html +84 -0
  556. data/vendor/local/share/gtk-doc/html/json-glib/json-glib-Boxed-Types-Serialization.html +491 -0
  557. data/vendor/local/share/gtk-doc/html/json-glib/json-glib-GObject-Serialization.html +385 -0
  558. data/vendor/local/share/gtk-doc/html/json-glib/json-glib-JSON-Array.html +1188 -0
  559. data/vendor/local/share/gtk-doc/html/json-glib/json-glib-JSON-GVariant-Integration.html +318 -0
  560. data/vendor/local/share/gtk-doc/html/json-glib/json-glib-JSON-Node.html +1803 -0
  561. data/vendor/local/share/gtk-doc/html/json-glib/json-glib-JSON-Object.html +1369 -0
  562. data/vendor/local/share/gtk-doc/html/json-glib/json-glib-Serializable-Interface.html +582 -0
  563. data/vendor/local/share/gtk-doc/html/json-glib/json-glib-Versioning-information.html +215 -0
  564. data/vendor/local/share/gtk-doc/html/json-glib/json-glib.devhelp2 +277 -0
  565. data/vendor/local/share/gtk-doc/html/json-glib/json-glib.html +38 -0
  566. data/vendor/local/share/gtk-doc/html/json-glib/json-streams.html +63 -0
  567. data/vendor/local/share/gtk-doc/html/json-glib/json-tools.html +45 -0
  568. data/vendor/local/share/gtk-doc/html/json-glib/json-validate-tool.html +72 -0
  569. data/vendor/local/share/gtk-doc/html/json-glib/left-insensitive.png +0 -0
  570. data/vendor/local/share/gtk-doc/html/json-glib/left.png +0 -0
  571. data/vendor/local/share/gtk-doc/html/json-glib/license.html +58 -0
  572. data/vendor/local/share/gtk-doc/html/json-glib/right-insensitive.png +0 -0
  573. data/vendor/local/share/gtk-doc/html/json-glib/right.png +0 -0
  574. data/vendor/local/share/gtk-doc/html/json-glib/style.css +476 -0
  575. data/vendor/local/share/gtk-doc/html/json-glib/tools.html +38 -0
  576. data/vendor/local/share/gtk-doc/html/json-glib/up-insensitive.png +0 -0
  577. data/vendor/local/share/gtk-doc/html/json-glib/up.png +0 -0
  578. data/vendor/local/share/license/clutter/COPYING +502 -0
  579. data/vendor/local/share/license/cogl/COPYING +107 -0
  580. data/vendor/local/share/license/json-glib/COPYING +504 -0
  581. data/vendor/local/share/locale/an/LC_MESSAGES/clutter-1.0.mo +0 -0
  582. data/vendor/local/share/locale/an/LC_MESSAGES/cogl.mo +0 -0
  583. data/vendor/local/share/locale/ar/LC_MESSAGES/clutter-1.0.mo +0 -0
  584. data/vendor/local/share/locale/ar/LC_MESSAGES/cogl.mo +0 -0
  585. data/vendor/local/share/locale/as/LC_MESSAGES/clutter-1.0.mo +0 -0
  586. data/vendor/local/share/locale/as/LC_MESSAGES/cogl.mo +0 -0
  587. data/vendor/local/share/locale/as/LC_MESSAGES/json-glib-1.0.mo +0 -0
  588. data/vendor/local/share/locale/ast/LC_MESSAGES/clutter-1.0.mo +0 -0
  589. data/vendor/local/share/locale/ast/LC_MESSAGES/cogl.mo +0 -0
  590. data/vendor/local/share/locale/az_IR/LC_MESSAGES/clutter-1.0.mo +0 -0
  591. data/vendor/local/share/locale/be/LC_MESSAGES/clutter-1.0.mo +0 -0
  592. data/vendor/local/share/locale/be/LC_MESSAGES/cogl.mo +0 -0
  593. data/vendor/local/share/locale/bg/LC_MESSAGES/clutter-1.0.mo +0 -0
  594. data/vendor/local/share/locale/bg/LC_MESSAGES/cogl.mo +0 -0
  595. data/vendor/local/share/locale/bg/LC_MESSAGES/json-glib-1.0.mo +0 -0
  596. data/vendor/local/share/locale/bn_IN/LC_MESSAGES/json-glib-1.0.mo +0 -0
  597. data/vendor/local/share/locale/ca/LC_MESSAGES/clutter-1.0.mo +0 -0
  598. data/vendor/local/share/locale/ca/LC_MESSAGES/cogl.mo +0 -0
  599. data/vendor/local/share/locale/ca/LC_MESSAGES/json-glib-1.0.mo +0 -0
  600. data/vendor/local/share/locale/ca@valencia/LC_MESSAGES/clutter-1.0.mo +0 -0
  601. data/vendor/local/share/locale/ca@valencia/LC_MESSAGES/cogl.mo +0 -0
  602. data/vendor/local/share/locale/ca@valencia/LC_MESSAGES/json-glib-1.0.mo +0 -0
  603. data/vendor/local/share/locale/cs/LC_MESSAGES/clutter-1.0.mo +0 -0
  604. data/vendor/local/share/locale/cs/LC_MESSAGES/cogl.mo +0 -0
  605. data/vendor/local/share/locale/cs/LC_MESSAGES/json-glib-1.0.mo +0 -0
  606. data/vendor/local/share/locale/da/LC_MESSAGES/clutter-1.0.mo +0 -0
  607. data/vendor/local/share/locale/da/LC_MESSAGES/cogl.mo +0 -0
  608. data/vendor/local/share/locale/da/LC_MESSAGES/json-glib-1.0.mo +0 -0
  609. data/vendor/local/share/locale/de/LC_MESSAGES/clutter-1.0.mo +0 -0
  610. data/vendor/local/share/locale/de/LC_MESSAGES/cogl.mo +0 -0
  611. data/vendor/local/share/locale/de/LC_MESSAGES/json-glib-1.0.mo +0 -0
  612. data/vendor/local/share/locale/el/LC_MESSAGES/clutter-1.0.mo +0 -0
  613. data/vendor/local/share/locale/el/LC_MESSAGES/cogl.mo +0 -0
  614. data/vendor/local/share/locale/el/LC_MESSAGES/json-glib-1.0.mo +0 -0
  615. data/vendor/local/share/locale/en_CA/LC_MESSAGES/cogl.mo +0 -0
  616. data/vendor/local/share/locale/en_GB/LC_MESSAGES/clutter-1.0.mo +0 -0
  617. data/vendor/local/share/locale/en_GB/LC_MESSAGES/cogl.mo +0 -0
  618. data/vendor/local/share/locale/en_GB/LC_MESSAGES/json-glib-1.0.mo +0 -0
  619. data/vendor/local/share/locale/eo/LC_MESSAGES/clutter-1.0.mo +0 -0
  620. data/vendor/local/share/locale/eo/LC_MESSAGES/cogl.mo +0 -0
  621. data/vendor/local/share/locale/eo/LC_MESSAGES/json-glib-1.0.mo +0 -0
  622. data/vendor/local/share/locale/es/LC_MESSAGES/clutter-1.0.mo +0 -0
  623. data/vendor/local/share/locale/es/LC_MESSAGES/cogl.mo +0 -0
  624. data/vendor/local/share/locale/es/LC_MESSAGES/json-glib-1.0.mo +0 -0
  625. data/vendor/local/share/locale/et/LC_MESSAGES/json-glib-1.0.mo +0 -0
  626. data/vendor/local/share/locale/eu/LC_MESSAGES/clutter-1.0.mo +0 -0
  627. data/vendor/local/share/locale/eu/LC_MESSAGES/cogl.mo +0 -0
  628. data/vendor/local/share/locale/eu/LC_MESSAGES/json-glib-1.0.mo +0 -0
  629. data/vendor/local/share/locale/fa/LC_MESSAGES/clutter-1.0.mo +0 -0
  630. data/vendor/local/share/locale/fa/LC_MESSAGES/cogl.mo +0 -0
  631. data/vendor/local/share/locale/fi/LC_MESSAGES/clutter-1.0.mo +0 -0
  632. data/vendor/local/share/locale/fr/LC_MESSAGES/clutter-1.0.mo +0 -0
  633. data/vendor/local/share/locale/fr/LC_MESSAGES/cogl.mo +0 -0
  634. data/vendor/local/share/locale/fr/LC_MESSAGES/json-glib-1.0.mo +0 -0
  635. data/vendor/local/share/locale/fur/LC_MESSAGES/json-glib-1.0.mo +0 -0
  636. data/vendor/local/share/locale/gl/LC_MESSAGES/clutter-1.0.mo +0 -0
  637. data/vendor/local/share/locale/gl/LC_MESSAGES/cogl.mo +0 -0
  638. data/vendor/local/share/locale/gl/LC_MESSAGES/json-glib-1.0.mo +0 -0
  639. data/vendor/local/share/locale/he/LC_MESSAGES/clutter-1.0.mo +0 -0
  640. data/vendor/local/share/locale/he/LC_MESSAGES/cogl.mo +0 -0
  641. data/vendor/local/share/locale/he/LC_MESSAGES/json-glib-1.0.mo +0 -0
  642. data/vendor/local/share/locale/hi/LC_MESSAGES/clutter-1.0.mo +0 -0
  643. data/vendor/local/share/locale/hi/LC_MESSAGES/cogl.mo +0 -0
  644. data/vendor/local/share/locale/hi/LC_MESSAGES/json-glib-1.0.mo +0 -0
  645. data/vendor/local/share/locale/hu/LC_MESSAGES/clutter-1.0.mo +0 -0
  646. data/vendor/local/share/locale/hu/LC_MESSAGES/cogl.mo +0 -0
  647. data/vendor/local/share/locale/hu/LC_MESSAGES/json-glib-1.0.mo +0 -0
  648. data/vendor/local/share/locale/id/LC_MESSAGES/clutter-1.0.mo +0 -0
  649. data/vendor/local/share/locale/id/LC_MESSAGES/cogl.mo +0 -0
  650. data/vendor/local/share/locale/id/LC_MESSAGES/json-glib-1.0.mo +0 -0
  651. data/vendor/local/share/locale/it/LC_MESSAGES/clutter-1.0.mo +0 -0
  652. data/vendor/local/share/locale/it/LC_MESSAGES/cogl.mo +0 -0
  653. data/vendor/local/share/locale/it/LC_MESSAGES/json-glib-1.0.mo +0 -0
  654. data/vendor/local/share/locale/ja/LC_MESSAGES/clutter-1.0.mo +0 -0
  655. data/vendor/local/share/locale/ja/LC_MESSAGES/cogl.mo +0 -0
  656. data/vendor/local/share/locale/ja/LC_MESSAGES/json-glib-1.0.mo +0 -0
  657. data/vendor/local/share/locale/km/LC_MESSAGES/clutter-1.0.mo +0 -0
  658. data/vendor/local/share/locale/km/LC_MESSAGES/cogl.mo +0 -0
  659. data/vendor/local/share/locale/kn/LC_MESSAGES/clutter-1.0.mo +0 -0
  660. data/vendor/local/share/locale/kn/LC_MESSAGES/cogl.mo +0 -0
  661. data/vendor/local/share/locale/ko/LC_MESSAGES/clutter-1.0.mo +0 -0
  662. data/vendor/local/share/locale/ko/LC_MESSAGES/cogl.mo +0 -0
  663. data/vendor/local/share/locale/ko/LC_MESSAGES/json-glib-1.0.mo +0 -0
  664. data/vendor/local/share/locale/ky/LC_MESSAGES/json-glib-1.0.mo +0 -0
  665. data/vendor/local/share/locale/lt/LC_MESSAGES/clutter-1.0.mo +0 -0
  666. data/vendor/local/share/locale/lt/LC_MESSAGES/cogl.mo +0 -0
  667. data/vendor/local/share/locale/lt/LC_MESSAGES/json-glib-1.0.mo +0 -0
  668. data/vendor/local/share/locale/lv/LC_MESSAGES/clutter-1.0.mo +0 -0
  669. data/vendor/local/share/locale/lv/LC_MESSAGES/cogl.mo +0 -0
  670. data/vendor/local/share/locale/lv/LC_MESSAGES/json-glib-1.0.mo +0 -0
  671. data/vendor/local/share/locale/mk/LC_MESSAGES/clutter-1.0.mo +0 -0
  672. data/vendor/local/share/locale/ml/LC_MESSAGES/clutter-1.0.mo +0 -0
  673. data/vendor/local/share/locale/ml/LC_MESSAGES/cogl.mo +0 -0
  674. data/vendor/local/share/locale/ml/LC_MESSAGES/json-glib-1.0.mo +0 -0
  675. data/vendor/local/share/locale/nb/LC_MESSAGES/clutter-1.0.mo +0 -0
  676. data/vendor/local/share/locale/nb/LC_MESSAGES/cogl.mo +0 -0
  677. data/vendor/local/share/locale/nb/LC_MESSAGES/json-glib-1.0.mo +0 -0
  678. data/vendor/local/share/locale/nl/LC_MESSAGES/clutter-1.0.mo +0 -0
  679. data/vendor/local/share/locale/nl/LC_MESSAGES/cogl.mo +0 -0
  680. data/vendor/local/share/locale/or/LC_MESSAGES/clutter-1.0.mo +0 -0
  681. data/vendor/local/share/locale/or/LC_MESSAGES/cogl.mo +0 -0
  682. data/vendor/local/share/locale/or/LC_MESSAGES/json-glib-1.0.mo +0 -0
  683. data/vendor/local/share/locale/pa/LC_MESSAGES/clutter-1.0.mo +0 -0
  684. data/vendor/local/share/locale/pa/LC_MESSAGES/cogl.mo +0 -0
  685. data/vendor/local/share/locale/pa/LC_MESSAGES/json-glib-1.0.mo +0 -0
  686. data/vendor/local/share/locale/pl/LC_MESSAGES/clutter-1.0.mo +0 -0
  687. data/vendor/local/share/locale/pl/LC_MESSAGES/cogl.mo +0 -0
  688. data/vendor/local/share/locale/pl/LC_MESSAGES/json-glib-1.0.mo +0 -0
  689. data/vendor/local/share/locale/ps/LC_MESSAGES/clutter-1.0.mo +0 -0
  690. data/vendor/local/share/locale/pt/LC_MESSAGES/clutter-1.0.mo +0 -0
  691. data/vendor/local/share/locale/pt/LC_MESSAGES/cogl.mo +0 -0
  692. data/vendor/local/share/locale/pt/LC_MESSAGES/json-glib-1.0.mo +0 -0
  693. data/vendor/local/share/locale/pt_BR/LC_MESSAGES/clutter-1.0.mo +0 -0
  694. data/vendor/local/share/locale/pt_BR/LC_MESSAGES/cogl.mo +0 -0
  695. data/vendor/local/share/locale/pt_BR/LC_MESSAGES/json-glib-1.0.mo +0 -0
  696. data/vendor/local/share/locale/ro/LC_MESSAGES/clutter-1.0.mo +0 -0
  697. data/vendor/local/share/locale/ru/LC_MESSAGES/clutter-1.0.mo +0 -0
  698. data/vendor/local/share/locale/ru/LC_MESSAGES/cogl.mo +0 -0
  699. data/vendor/local/share/locale/ru/LC_MESSAGES/json-glib-1.0.mo +0 -0
  700. data/vendor/local/share/locale/sk/LC_MESSAGES/clutter-1.0.mo +0 -0
  701. data/vendor/local/share/locale/sk/LC_MESSAGES/cogl.mo +0 -0
  702. data/vendor/local/share/locale/sk/LC_MESSAGES/json-glib-1.0.mo +0 -0
  703. data/vendor/local/share/locale/sl/LC_MESSAGES/clutter-1.0.mo +0 -0
  704. data/vendor/local/share/locale/sl/LC_MESSAGES/cogl.mo +0 -0
  705. data/vendor/local/share/locale/sl/LC_MESSAGES/json-glib-1.0.mo +0 -0
  706. data/vendor/local/share/locale/sr/LC_MESSAGES/clutter-1.0.mo +0 -0
  707. data/vendor/local/share/locale/sr/LC_MESSAGES/cogl.mo +0 -0
  708. data/vendor/local/share/locale/sr/LC_MESSAGES/json-glib-1.0.mo +0 -0
  709. data/vendor/local/share/locale/sr@latin/LC_MESSAGES/clutter-1.0.mo +0 -0
  710. data/vendor/local/share/locale/sr@latin/LC_MESSAGES/cogl.mo +0 -0
  711. data/vendor/local/share/locale/sr@latin/LC_MESSAGES/json-glib-1.0.mo +0 -0
  712. data/vendor/local/share/locale/sv/LC_MESSAGES/clutter-1.0.mo +0 -0
  713. data/vendor/local/share/locale/sv/LC_MESSAGES/cogl.mo +0 -0
  714. data/vendor/local/share/locale/sv/LC_MESSAGES/json-glib-1.0.mo +0 -0
  715. data/vendor/local/share/locale/ta/LC_MESSAGES/clutter-1.0.mo +0 -0
  716. data/vendor/local/share/locale/ta/LC_MESSAGES/cogl.mo +0 -0
  717. data/vendor/local/share/locale/te/LC_MESSAGES/clutter-1.0.mo +0 -0
  718. data/vendor/local/share/locale/te/LC_MESSAGES/cogl.mo +0 -0
  719. data/vendor/local/share/locale/te/LC_MESSAGES/json-glib-1.0.mo +0 -0
  720. data/vendor/local/share/locale/tg/LC_MESSAGES/json-glib-1.0.mo +0 -0
  721. data/vendor/local/share/locale/th/LC_MESSAGES/cogl.mo +0 -0
  722. data/vendor/local/share/locale/tr/LC_MESSAGES/clutter-1.0.mo +0 -0
  723. data/vendor/local/share/locale/tr/LC_MESSAGES/cogl.mo +0 -0
  724. data/vendor/local/share/locale/tr/LC_MESSAGES/json-glib-1.0.mo +0 -0
  725. data/vendor/local/share/locale/ug/LC_MESSAGES/clutter-1.0.mo +0 -0
  726. data/vendor/local/share/locale/ug/LC_MESSAGES/cogl.mo +0 -0
  727. data/vendor/local/share/locale/ug/LC_MESSAGES/json-glib-1.0.mo +0 -0
  728. data/vendor/local/share/locale/uk/LC_MESSAGES/clutter-1.0.mo +0 -0
  729. data/vendor/local/share/locale/uk/LC_MESSAGES/cogl.mo +0 -0
  730. data/vendor/local/share/locale/uk/LC_MESSAGES/json-glib-1.0.mo +0 -0
  731. data/vendor/local/share/locale/ur/LC_MESSAGES/clutter-1.0.mo +0 -0
  732. data/vendor/local/share/locale/vi/LC_MESSAGES/cogl.mo +0 -0
  733. data/vendor/local/share/locale/vi/LC_MESSAGES/json-glib-1.0.mo +0 -0
  734. data/vendor/local/share/locale/yi/LC_MESSAGES/clutter-1.0.mo +0 -0
  735. data/vendor/local/share/locale/zh_CN/LC_MESSAGES/clutter-1.0.mo +0 -0
  736. data/vendor/local/share/locale/zh_CN/LC_MESSAGES/cogl.mo +0 -0
  737. data/vendor/local/share/locale/zh_CN/LC_MESSAGES/json-glib-1.0.mo +0 -0
  738. data/vendor/local/share/locale/zh_HK/LC_MESSAGES/clutter-1.0.mo +0 -0
  739. data/vendor/local/share/locale/zh_HK/LC_MESSAGES/cogl.mo +0 -0
  740. data/vendor/local/share/locale/zh_HK/LC_MESSAGES/json-glib-1.0.mo +0 -0
  741. data/vendor/local/share/locale/zh_TW/LC_MESSAGES/clutter-1.0.mo +0 -0
  742. data/vendor/local/share/locale/zh_TW/LC_MESSAGES/cogl.mo +0 -0
  743. data/vendor/local/share/locale/zh_TW/LC_MESSAGES/json-glib-1.0.mo +0 -0
  744. metadata +869 -0
@@ -0,0 +1,148 @@
1
+ /*
2
+ * Cogl
3
+ *
4
+ * A Low Level GPU Graphics and Utilities API
5
+ *
6
+ * Copyright (C) 2012 Red Hat, Inc.
7
+ *
8
+ * Permission is hereby granted, free of charge, to any person
9
+ * obtaining a copy of this software and associated documentation
10
+ * files (the "Software"), to deal in the Software without
11
+ * restriction, including without limitation the rights to use, copy,
12
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
13
+ * of the Software, and to permit persons to whom the Software is
14
+ * furnished to do so, subject to the following conditions:
15
+ *
16
+ * The above copyright notice and this permission notice shall be
17
+ * included in all copies or substantial portions of the Software.
18
+ *
19
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
22
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
23
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
24
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
25
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ * SOFTWARE.
27
+ *
28
+ *
29
+ *
30
+ * Authors:
31
+ * Owen Taylor <otaylor@redhat.com>
32
+ */
33
+ #if !defined(__COGL_H_INSIDE__) && !defined(COGL_COMPILATION)
34
+ #error "Only <cogl/cogl.h> can be included directly."
35
+ #endif
36
+
37
+ #ifndef __COGL_FRAME_INFO_H
38
+ #define __COGL_FRAME_INFO_H
39
+
40
+ #include <cogl/cogl-types.h>
41
+ #include <cogl/cogl-output.h>
42
+
43
+ #ifdef COGL_HAS_GTYPE_SUPPORT
44
+ #include <glib-object.h>
45
+ #endif
46
+ #include <glib.h>
47
+
48
+ G_BEGIN_DECLS
49
+
50
+ typedef struct _CoglFrameInfo CoglFrameInfo;
51
+ #define COGL_FRAME_INFO(X) ((CoglFrameInfo *)(X))
52
+
53
+ #ifdef COGL_HAS_GTYPE_SUPPORT
54
+ /**
55
+ * cogl_frame_info_get_gtype:
56
+ *
57
+ * Returns: a #GType that can be used with the GLib type system.
58
+ */
59
+ GType cogl_frame_info_get_gtype (void);
60
+ #endif
61
+
62
+ /**
63
+ * cogl_is_frame_info:
64
+ * @object: A #CoglObject pointer
65
+ *
66
+ * Gets whether the given object references a #CoglFrameInfo.
67
+ *
68
+ * Return value: %TRUE if the object references a #CoglFrameInfo
69
+ * and %FALSE otherwise.
70
+ * Since: 2.0
71
+ * Stability: unstable
72
+ */
73
+ CoglBool
74
+ cogl_is_frame_info (void *object);
75
+
76
+ /**
77
+ * cogl_frame_info_get_frame_counter:
78
+ * @info: a #CoglFrameInfo object
79
+ *
80
+ * Gets the frame counter for the #CoglOnscreen that corresponds
81
+ * to this frame.
82
+ *
83
+ * Return value: The frame counter value
84
+ * Since: 1.14
85
+ * Stability: unstable
86
+ */
87
+ int64_t cogl_frame_info_get_frame_counter (CoglFrameInfo *info);
88
+
89
+ /**
90
+ * cogl_frame_info_get_presentation_time:
91
+ * @info: a #CoglFrameInfo object
92
+ *
93
+ * Gets the presentation time for the frame. This is the time at which
94
+ * the frame became visible to the user.
95
+ *
96
+ * The presentation time measured in nanoseconds is based on a
97
+ * monotonic time source. The time source is not necessarily
98
+ * correlated with system/wall clock time and may represent the time
99
+ * elapsed since some undefined system event such as when the system
100
+ * last booted.
101
+ *
102
+ * <note>Linux kernel version less that 3.8 can result in
103
+ * non-monotonic timestamps being reported when using a drm based
104
+ * OpenGL driver. Also some buggy Mesa drivers up to 9.0.1 may also
105
+ * incorrectly report non-monotonic timestamps.</note>
106
+ *
107
+ * Return value: the presentation time for the frame
108
+ * Since: 1.14
109
+ * Stability: unstable
110
+ */
111
+ int64_t cogl_frame_info_get_presentation_time (CoglFrameInfo *info);
112
+
113
+ /**
114
+ * cogl_frame_info_get_refresh_rate:
115
+ * @info: a #CoglFrameInfo object
116
+ *
117
+ * Gets the refresh rate in Hertz for the output that the frame was on
118
+ * at the time the frame was presented.
119
+ *
120
+ * <note>Some platforms can't associate a #CoglOutput with a
121
+ * #CoglFrameInfo object but are able to report a refresh rate via
122
+ * this api. Therefore if you need this information then this api is
123
+ * more reliable than using cogl_frame_info_get_output() followed by
124
+ * cogl_output_get_refresh_rate().</note>
125
+ *
126
+ * Return value: the refresh rate in Hertz
127
+ * Since: 1.14
128
+ * Stability: unstable
129
+ */
130
+ float cogl_frame_info_get_refresh_rate (CoglFrameInfo *info);
131
+
132
+ /**
133
+ * cogl_frame_info_get_output:
134
+ * @info: a #CoglFrameInfo object
135
+ *
136
+ * Gets the #CoglOutput that the swapped frame was presented to.
137
+ *
138
+ * Return value: (transfer none): The #CoglOutput that the frame was
139
+ * presented to, or %NULL if this could not be determined.
140
+ * Since: 1.14
141
+ * Stability: unstable
142
+ */
143
+ CoglOutput *
144
+ cogl_frame_info_get_output (CoglFrameInfo *info);
145
+
146
+ G_END_DECLS
147
+
148
+ #endif /* __COGL_FRAME_INFO_H */
@@ -0,0 +1,264 @@
1
+ /*
2
+ * Cogl
3
+ *
4
+ * A Low Level GPU Graphics and Utilities API
5
+ *
6
+ * Copyright (C) 2014 Intel Corporation.
7
+ *
8
+ * Permission is hereby granted, free of charge, to any person
9
+ * obtaining a copy of this software and associated documentation
10
+ * files (the "Software"), to deal in the Software without
11
+ * restriction, including without limitation the rights to use, copy,
12
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
13
+ * of the Software, and to permit persons to whom the Software is
14
+ * furnished to do so, subject to the following conditions:
15
+ *
16
+ * The above copyright notice and this permission notice shall be
17
+ * included in all copies or substantial portions of the Software.
18
+ *
19
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
22
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
23
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
24
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
25
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ * SOFTWARE.
27
+ *
28
+ *
29
+ */
30
+
31
+ #ifndef __COGL_FRAMEBUFFER_DEPRECATED_H__
32
+ #define __COGL_FRAMEBUFFER_DEPRECATED_H__
33
+
34
+ #include <cogl/cogl-macros.h>
35
+
36
+ COGL_BEGIN_DECLS
37
+
38
+ /**
39
+ * cogl_set_framebuffer:
40
+ * @buffer: A #CoglFramebuffer object, either onscreen or offscreen.
41
+ *
42
+ * This redirects all subsequent drawing to the specified framebuffer. This can
43
+ * either be an offscreen buffer created with cogl_offscreen_new_to_texture ()
44
+ * or in the future it may be an onscreen framebuffers too.
45
+ *
46
+ * Since: 1.2
47
+ * Deprecated: 1.16: The latest drawing apis take explicit
48
+ * #CoglFramebuffer arguments so this stack of
49
+ * framebuffers shouldn't be used anymore.
50
+ */
51
+ COGL_DEPRECATED_IN_1_16
52
+ void
53
+ cogl_set_framebuffer (CoglFramebuffer *buffer);
54
+
55
+ /**
56
+ * cogl_push_framebuffer:
57
+ * @buffer: A #CoglFramebuffer object, either onscreen or offscreen.
58
+ *
59
+ * Redirects all subsequent drawing to the specified framebuffer. This can
60
+ * either be an offscreen buffer created with cogl_offscreen_new_to_texture ()
61
+ * or in the future it may be an onscreen framebuffer too.
62
+ *
63
+ * You should understand that a framebuffer owns the following state:
64
+ * <itemizedlist>
65
+ * <listitem><simpara>The projection matrix</simpara></listitem>
66
+ * <listitem><simpara>The modelview matrix stack</simpara></listitem>
67
+ * <listitem><simpara>The viewport</simpara></listitem>
68
+ * <listitem><simpara>The clip stack</simpara></listitem>
69
+ * </itemizedlist>
70
+ * So these items will automatically be saved and restored when you
71
+ * push and pop between different framebuffers.
72
+ *
73
+ * Also remember a newly allocated framebuffer will have an identity matrix for
74
+ * the projection and modelview matrices which gives you a coordinate space
75
+ * like OpenGL with (-1, -1) corresponding to the top left of the viewport,
76
+ * (1, 1) corresponding to the bottom right and +z coming out towards the
77
+ * viewer.
78
+ *
79
+ * If you want to set up a coordinate space like Clutter does with (0, 0)
80
+ * corresponding to the top left and (framebuffer_width, framebuffer_height)
81
+ * corresponding to the bottom right you can do so like this:
82
+ *
83
+ * |[
84
+ * static void
85
+ * setup_viewport (unsigned int width,
86
+ * unsigned int height,
87
+ * float fovy,
88
+ * float aspect,
89
+ * float z_near,
90
+ * float z_far)
91
+ * {
92
+ * float z_camera;
93
+ * CoglMatrix projection_matrix;
94
+ * CoglMatrix mv_matrix;
95
+ *
96
+ * cogl_set_viewport (0, 0, width, height);
97
+ * cogl_perspective (fovy, aspect, z_near, z_far);
98
+ *
99
+ * cogl_get_projection_matrix (&amp;projection_matrix);
100
+ * z_camera = 0.5 * projection_matrix.xx;
101
+ *
102
+ * cogl_matrix_init_identity (&amp;mv_matrix);
103
+ * cogl_matrix_translate (&amp;mv_matrix, -0.5f, -0.5f, -z_camera);
104
+ * cogl_matrix_scale (&amp;mv_matrix, 1.0f / width, -1.0f / height, 1.0f / width);
105
+ * cogl_matrix_translate (&amp;mv_matrix, 0.0f, -1.0 * height, 0.0f);
106
+ * cogl_set_modelview_matrix (&amp;mv_matrix);
107
+ * }
108
+ *
109
+ * static void
110
+ * my_init_framebuffer (ClutterStage *stage,
111
+ * CoglFramebuffer *framebuffer,
112
+ * unsigned int framebuffer_width,
113
+ * unsigned int framebuffer_height)
114
+ * {
115
+ * ClutterPerspective perspective;
116
+ *
117
+ * clutter_stage_get_perspective (stage, &perspective);
118
+ *
119
+ * cogl_push_framebuffer (framebuffer);
120
+ * setup_viewport (framebuffer_width,
121
+ * framebuffer_height,
122
+ * perspective.fovy,
123
+ * perspective.aspect,
124
+ * perspective.z_near,
125
+ * perspective.z_far);
126
+ * }
127
+ * ]|
128
+ *
129
+ * The previous framebuffer can be restored by calling cogl_pop_framebuffer()
130
+ *
131
+ * Since: 1.2
132
+ * Deprecated: 1.16: The latest drawing apis take explicit
133
+ * #CoglFramebuffer arguments so this stack of
134
+ * framebuffers shouldn't be used anymore.
135
+ */
136
+ COGL_DEPRECATED_IN_1_16
137
+ void
138
+ cogl_push_framebuffer (CoglFramebuffer *buffer);
139
+
140
+ /**
141
+ * cogl_pop_framebuffer:
142
+ *
143
+ * Restores the framebuffer that was previously at the top of the stack.
144
+ * All subsequent drawing will be redirected to this framebuffer.
145
+ *
146
+ * Since: 1.2
147
+ * Deprecated: 1.16: The latest drawing apis take explicit
148
+ * #CoglFramebuffer arguments so this stack of
149
+ * framebuffers shouldn't be used anymore.
150
+ */
151
+ COGL_DEPRECATED_IN_1_16
152
+ void
153
+ cogl_pop_framebuffer (void);
154
+
155
+ /**
156
+ * cogl_set_draw_buffer:
157
+ * @target: A #CoglBufferTarget that specifies what kind of framebuffer you
158
+ * are setting as the render target.
159
+ * @offscreen: If you are setting a framebuffer of type COGL_OFFSCREEN_BUFFER
160
+ * then this is a CoglHandle for the offscreen buffer.
161
+ *
162
+ * Redirects all subsequent drawing to the specified framebuffer. This
163
+ * can either be an offscreen buffer created with
164
+ * cogl_offscreen_new_to_texture () or you can revert to your original
165
+ * on screen window buffer.
166
+ *
167
+ * Deprecated: 1.16: The latest drawing apis take explicit
168
+ * #CoglFramebuffer arguments so this stack of
169
+ * framebuffers shouldn't be used anymore.
170
+ */
171
+ COGL_DEPRECATED_IN_1_16
172
+ void
173
+ cogl_set_draw_buffer (CoglBufferTarget target,
174
+ CoglHandle offscreen);
175
+
176
+ /**
177
+ * cogl_push_draw_buffer:
178
+ *
179
+ * Save cogl_set_draw_buffer() state.
180
+ *
181
+ * Deprecated: 1.16: The latest drawing apis take explicit
182
+ * #CoglFramebuffer arguments so this stack of
183
+ * framebuffers shouldn't be used anymore.
184
+ */
185
+ COGL_DEPRECATED_IN_1_16
186
+ void
187
+ cogl_push_draw_buffer (void);
188
+
189
+ /**
190
+ * cogl_pop_draw_buffer:
191
+ *
192
+ * Restore cogl_set_draw_buffer() state.
193
+ *
194
+ * Deprecated: 1.16: The latest drawing apis take explicit
195
+ * #CoglFramebuffer arguments so this stack of
196
+ * framebuffers shouldn't be used anymore.
197
+ */
198
+ COGL_DEPRECATED_IN_1_16
199
+ void
200
+ cogl_pop_draw_buffer (void);
201
+
202
+ /**
203
+ * cogl_read_pixels:
204
+ * @x: The window x position to start reading from
205
+ * @y: The window y position to start reading from
206
+ * @width: The width of the rectangle you want to read
207
+ * @height: The height of the rectangle you want to read
208
+ * @source: Identifies which auxillary buffer you want to read
209
+ * (only COGL_READ_PIXELS_COLOR_BUFFER supported currently)
210
+ * @format: The pixel format you want the result in
211
+ * (only COGL_PIXEL_FORMAT_RGBA_8888 supported currently)
212
+ * @pixels: The location to write the pixel data.
213
+ *
214
+ * This reads a rectangle of pixels from the current framebuffer where
215
+ * position (0, 0) is the top left. The pixel at (x, y) is the first
216
+ * read, and the data is returned with a rowstride of (width * 4).
217
+ *
218
+ * Currently Cogl assumes that the framebuffer is in a premultiplied
219
+ * format so if @format is non-premultiplied it will convert it. To
220
+ * read the pixel values without any conversion you should either
221
+ * specify a format that doesn't use an alpha channel or use one of
222
+ * the formats ending in PRE.
223
+ *
224
+ * Deprecated: 1.16: Use cogl_framebuffer_read_pixels() instead
225
+ */
226
+ COGL_DEPRECATED_IN_1_16_FOR (cogl_framebuffer_read_pixels)
227
+ void
228
+ cogl_read_pixels (int x,
229
+ int y,
230
+ int width,
231
+ int height,
232
+ CoglReadPixelsFlags source,
233
+ CoglPixelFormat format,
234
+ uint8_t *pixels);
235
+
236
+
237
+ /* XXX: Since this api was marked unstable, maybe we can just
238
+ * remove this api if we can't find anyone is using it. */
239
+ /**
240
+ * cogl_framebuffer_get_color_format:
241
+ * @framebuffer: A #CoglFramebuffer framebuffer
242
+ *
243
+ * Queries the common #CoglPixelFormat of all color buffers attached
244
+ * to this framebuffer. For an offscreen framebuffer created with
245
+ * cogl_offscreen_new_with_texture() this will correspond to the format
246
+ * of the texture.
247
+ *
248
+ * This API is deprecated because it is missleading to report a
249
+ * #CoglPixelFormat for the internal format of the @framebuffer since
250
+ * #CoglPixelFormat is such a precise format description and it's
251
+ * only the set of components and the premultiplied alpha status
252
+ * that is really known.
253
+ *
254
+ * Since: 1.8
255
+ * Stability: unstable
256
+ * Deprecated 1.18: Removed since it is misleading
257
+ */
258
+ COGL_DEPRECATED_IN_1_18
259
+ CoglPixelFormat
260
+ cogl_framebuffer_get_color_format (CoglFramebuffer *framebuffer);
261
+
262
+ COGL_END_DECLS
263
+
264
+ #endif /* __COGL_FRAMEBUFFER_DEPRECATED_H__ */
@@ -0,0 +1,1818 @@
1
+ /*
2
+ * Cogl
3
+ *
4
+ * A Low Level GPU Graphics and Utilities API
5
+ *
6
+ * Copyright (C) 2011 Intel Corporation.
7
+ *
8
+ * Permission is hereby granted, free of charge, to any person
9
+ * obtaining a copy of this software and associated documentation
10
+ * files (the "Software"), to deal in the Software without
11
+ * restriction, including without limitation the rights to use, copy,
12
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
13
+ * of the Software, and to permit persons to whom the Software is
14
+ * furnished to do so, subject to the following conditions:
15
+ *
16
+ * The above copyright notice and this permission notice shall be
17
+ * included in all copies or substantial portions of the Software.
18
+ *
19
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
22
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
23
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
24
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
25
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ * SOFTWARE.
27
+ *
28
+ *
29
+ *
30
+ * Authors:
31
+ * Robert Bragg <robert@linux.intel.com>
32
+ */
33
+
34
+ #ifndef __COGL_FRAMEBUFFER_H
35
+ #define __COGL_FRAMEBUFFER_H
36
+
37
+ #ifdef COGL_HAS_WIN32_SUPPORT
38
+ #include <windows.h>
39
+ #endif /* COGL_HAS_WIN32_SUPPORT */
40
+
41
+ /* We forward declare the CoglFramebuffer type here to avoid some circular
42
+ * dependency issues with the following headers.
43
+ */
44
+ #ifdef __COGL_H_INSIDE__
45
+ /* For the public C api we typedef interface types as void to avoid needing
46
+ * lots of casting in code and instead we will rely on runtime type checking
47
+ * for these objects. */
48
+ typedef void CoglFramebuffer;
49
+ #else
50
+ typedef struct _CoglFramebuffer CoglFramebuffer;
51
+ #define COGL_FRAMEBUFFER(X) ((CoglFramebuffer *)(X))
52
+ #endif
53
+
54
+ #include <cogl/cogl-pipeline.h>
55
+ #include <cogl/cogl-indices.h>
56
+ #include <cogl/cogl-bitmap.h>
57
+ #ifdef COGL_ENABLE_EXPERIMENTAL_API
58
+ #include <cogl/cogl-quaternion.h>
59
+ #include <cogl/cogl-euler.h>
60
+ #include <cogl/cogl-texture.h>
61
+ #endif
62
+ #ifdef COGL_HAS_GTYPE_SUPPORT
63
+ #include <glib-object.h>
64
+ #endif
65
+
66
+ COGL_BEGIN_DECLS
67
+
68
+ /**
69
+ * SECTION:cogl-framebuffer
70
+ * @short_description: A common interface for manipulating framebuffers
71
+ *
72
+ * Framebuffers are a collection of buffers that can be rendered too.
73
+ * A framebuffer may be comprised of one or more color buffers, an
74
+ * optional depth buffer and an optional stencil buffer. Other
75
+ * configuration parameters are associated with framebuffers too such
76
+ * as whether the framebuffer supports multi-sampling (an anti-aliasing
77
+ * technique) or dithering.
78
+ *
79
+ * There are two kinds of framebuffer in Cogl, #CoglOnscreen
80
+ * framebuffers and #CoglOffscreen framebuffers. As the names imply
81
+ * offscreen framebuffers are for rendering something offscreen
82
+ * (perhaps to a texture which is bound as one of the color buffers).
83
+ * The exact semantics of onscreen framebuffers depends on the window
84
+ * system backend that you are using, but typically you can expect
85
+ * rendering to a #CoglOnscreen framebuffer will be immediately
86
+ * visible to the user.
87
+ *
88
+ * If you want to create a new framebuffer then you should start by
89
+ * looking at the #CoglOnscreen and #CoglOffscreen constructor
90
+ * functions, such as cogl_offscreen_new_with_texture() or
91
+ * cogl_onscreen_new(). The #CoglFramebuffer interface deals with
92
+ * all aspects that are common between those two types of framebuffer.
93
+ *
94
+ * Setup of a new CoglFramebuffer happens in two stages. There is a
95
+ * configuration stage where you specify all the options and ancillary
96
+ * buffers you want associated with your framebuffer and then when you
97
+ * are happy with the configuration you can "allocate" the framebuffer
98
+ * using cogl_framebuffer_allocate(). Technically explicitly calling
99
+ * cogl_framebuffer_allocate() is optional for convenience and the
100
+ * framebuffer will automatically be allocated when you first try to
101
+ * draw to it, but if you do the allocation manually then you can
102
+ * also catch any possible errors that may arise from your
103
+ * configuration.
104
+ */
105
+
106
+ #ifdef COGL_ENABLE_EXPERIMENTAL_API
107
+
108
+ #ifdef COGL_HAS_GTYPE_SUPPORT
109
+ /**
110
+ * cogl_framebuffer_get_gtype:
111
+ *
112
+ * Returns: a #GType that can be used with the GLib type system.
113
+ */
114
+ GType cogl_framebuffer_get_gtype (void);
115
+ #endif
116
+
117
+ /**
118
+ * cogl_framebuffer_allocate:
119
+ * @framebuffer: A #CoglFramebuffer
120
+ * @error: A pointer to a #CoglError for returning exceptions.
121
+ *
122
+ * Explicitly allocates a configured #CoglFramebuffer allowing developers to
123
+ * check and handle any errors that might arise from an unsupported
124
+ * configuration so that fallback configurations may be tried.
125
+ *
126
+ * <note>Many applications don't support any fallback options at least when
127
+ * they are initially developed and in that case the don't need to use this API
128
+ * since Cogl will automatically allocate a framebuffer when it first gets
129
+ * used. The disadvantage of relying on automatic allocation is that the
130
+ * program will abort with an error message if there is an error during
131
+ * automatic allocation.</note>
132
+ *
133
+ * Return value: %TRUE if there were no error allocating the framebuffer, else %FALSE.
134
+ * Since: 1.8
135
+ * Stability: unstable
136
+ */
137
+ CoglBool
138
+ cogl_framebuffer_allocate (CoglFramebuffer *framebuffer,
139
+ CoglError **error);
140
+
141
+ /**
142
+ * cogl_framebuffer_get_width:
143
+ * @framebuffer: A #CoglFramebuffer
144
+ *
145
+ * Queries the current width of the given @framebuffer.
146
+ *
147
+ * Return value: The width of @framebuffer.
148
+ * Since: 1.8
149
+ * Stability: unstable
150
+ */
151
+ int
152
+ cogl_framebuffer_get_width (CoglFramebuffer *framebuffer);
153
+
154
+ /**
155
+ * cogl_framebuffer_get_height:
156
+ * @framebuffer: A #CoglFramebuffer
157
+ *
158
+ * Queries the current height of the given @framebuffer.
159
+ *
160
+ * Return value: The height of @framebuffer.
161
+ * Since: 1.8
162
+ * Stability: unstable
163
+ */
164
+ int
165
+ cogl_framebuffer_get_height (CoglFramebuffer *framebuffer);
166
+
167
+ /**
168
+ * cogl_framebuffer_set_viewport:
169
+ * @framebuffer: A #CoglFramebuffer
170
+ * @x: The top-left x coordinate of the viewport origin (only integers
171
+ * supported currently)
172
+ * @y: The top-left y coordinate of the viewport origin (only integers
173
+ * supported currently)
174
+ * @width: The width of the viewport (only integers supported currently)
175
+ * @height: The height of the viewport (only integers supported currently)
176
+ *
177
+ * Defines a scale and offset for everything rendered relative to the
178
+ * top-left of the destination framebuffer.
179
+ *
180
+ * By default the viewport has an origin of (0,0) and width and height
181
+ * that match the framebuffer's size. Assuming a default projection and
182
+ * modelview matrix then you could translate the contents of a window
183
+ * down and right by leaving the viewport size unchanged by moving the
184
+ * offset to (10,10). The viewport coordinates are measured in pixels.
185
+ * If you left the x and y origin as (0,0) you could scale the windows
186
+ * contents down by specify and width and height that's half the real
187
+ * size of the framebuffer.
188
+ *
189
+ * <note>Although the function takes floating point arguments, existing
190
+ * drivers only allow the use of integer values. In the future floating
191
+ * point values will be exposed via a checkable feature.</note>
192
+ *
193
+ * Since: 1.8
194
+ * Stability: unstable
195
+ */
196
+ void
197
+ cogl_framebuffer_set_viewport (CoglFramebuffer *framebuffer,
198
+ float x,
199
+ float y,
200
+ float width,
201
+ float height);
202
+
203
+ /**
204
+ * cogl_framebuffer_get_viewport_x:
205
+ * @framebuffer: A #CoglFramebuffer
206
+ *
207
+ * Queries the x coordinate of the viewport origin as set using cogl_framebuffer_set_viewport()
208
+ * or the default value which is 0.
209
+ *
210
+ * Return value: The x coordinate of the viewport origin.
211
+ * Since: 1.8
212
+ * Stability: unstable
213
+ */
214
+ float
215
+ cogl_framebuffer_get_viewport_x (CoglFramebuffer *framebuffer);
216
+
217
+ /**
218
+ * cogl_framebuffer_get_viewport_y:
219
+ * @framebuffer: A #CoglFramebuffer
220
+ *
221
+ * Queries the y coordinate of the viewport origin as set using cogl_framebuffer_set_viewport()
222
+ * or the default value which is 0.
223
+ *
224
+ * Return value: The y coordinate of the viewport origin.
225
+ * Since: 1.8
226
+ * Stability: unstable
227
+ */
228
+ float
229
+ cogl_framebuffer_get_viewport_y (CoglFramebuffer *framebuffer);
230
+
231
+ /**
232
+ * cogl_framebuffer_get_viewport_width:
233
+ * @framebuffer: A #CoglFramebuffer
234
+ *
235
+ * Queries the width of the viewport as set using cogl_framebuffer_set_viewport()
236
+ * or the default value which is the width of the framebuffer.
237
+ *
238
+ * Return value: The width of the viewport.
239
+ * Since: 1.8
240
+ * Stability: unstable
241
+ */
242
+ float
243
+ cogl_framebuffer_get_viewport_width (CoglFramebuffer *framebuffer);
244
+
245
+ /**
246
+ * cogl_framebuffer_get_viewport_height:
247
+ * @framebuffer: A #CoglFramebuffer
248
+ *
249
+ * Queries the height of the viewport as set using cogl_framebuffer_set_viewport()
250
+ * or the default value which is the height of the framebuffer.
251
+ *
252
+ * Return value: The height of the viewport.
253
+ * Since: 1.8
254
+ * Stability: unstable
255
+ */
256
+ float
257
+ cogl_framebuffer_get_viewport_height (CoglFramebuffer *framebuffer);
258
+
259
+ /**
260
+ * cogl_framebuffer_get_viewport4fv:
261
+ * @framebuffer: A #CoglFramebuffer
262
+ * @viewport: (out caller-allocates) (array fixed-size=4): A pointer to an
263
+ * array of 4 floats to receive the (x, y, width, height)
264
+ * components of the current viewport.
265
+ *
266
+ * Queries the x, y, width and height components of the current viewport as set
267
+ * using cogl_framebuffer_set_viewport() or the default values which are 0, 0,
268
+ * framebuffer_width and framebuffer_height. The values are written into the
269
+ * given @viewport array.
270
+ *
271
+ * Since: 1.8
272
+ * Stability: unstable
273
+ */
274
+ void
275
+ cogl_framebuffer_get_viewport4fv (CoglFramebuffer *framebuffer,
276
+ float *viewport);
277
+
278
+ /**
279
+ * cogl_framebuffer_push_matrix:
280
+ * @framebuffer: A #CoglFramebuffer pointer
281
+ *
282
+ * Copies the current model-view matrix onto the matrix stack. The matrix
283
+ * can later be restored with cogl_framebuffer_pop_matrix().
284
+ *
285
+ * Since: 1.10
286
+ */
287
+ void
288
+ cogl_framebuffer_push_matrix (CoglFramebuffer *framebuffer);
289
+
290
+ /**
291
+ * cogl_framebuffer_pop_matrix:
292
+ * @framebuffer: A #CoglFramebuffer pointer
293
+ *
294
+ * Restores the model-view matrix on the top of the matrix stack.
295
+ *
296
+ * Since: 1.10
297
+ */
298
+ void
299
+ cogl_framebuffer_pop_matrix (CoglFramebuffer *framebuffer);
300
+
301
+ /**
302
+ * cogl_framebuffer_identity_matrix:
303
+ * @framebuffer: A #CoglFramebuffer pointer
304
+ *
305
+ * Resets the current model-view matrix to the identity matrix.
306
+ *
307
+ * Since: 1.10
308
+ * Stability: unstable
309
+ */
310
+ void
311
+ cogl_framebuffer_identity_matrix (CoglFramebuffer *framebuffer);
312
+
313
+ /**
314
+ * cogl_framebuffer_scale:
315
+ * @framebuffer: A #CoglFramebuffer pointer
316
+ * @x: Amount to scale along the x-axis
317
+ * @y: Amount to scale along the y-axis
318
+ * @z: Amount to scale along the z-axis
319
+ *
320
+ * Multiplies the current model-view matrix by one that scales the x,
321
+ * y and z axes by the given values.
322
+ *
323
+ * Since: 1.10
324
+ * Stability: unstable
325
+ */
326
+ void
327
+ cogl_framebuffer_scale (CoglFramebuffer *framebuffer,
328
+ float x,
329
+ float y,
330
+ float z);
331
+
332
+ /**
333
+ * cogl_framebuffer_translate:
334
+ * @framebuffer: A #CoglFramebuffer pointer
335
+ * @x: Distance to translate along the x-axis
336
+ * @y: Distance to translate along the y-axis
337
+ * @z: Distance to translate along the z-axis
338
+ *
339
+ * Multiplies the current model-view matrix by one that translates the
340
+ * model along all three axes according to the given values.
341
+ *
342
+ * Since: 1.10
343
+ * Stability: unstable
344
+ */
345
+ void
346
+ cogl_framebuffer_translate (CoglFramebuffer *framebuffer,
347
+ float x,
348
+ float y,
349
+ float z);
350
+
351
+ /**
352
+ * cogl_framebuffer_rotate:
353
+ * @framebuffer: A #CoglFramebuffer pointer
354
+ * @angle: Angle in degrees to rotate.
355
+ * @x: X-component of vertex to rotate around.
356
+ * @y: Y-component of vertex to rotate around.
357
+ * @z: Z-component of vertex to rotate around.
358
+ *
359
+ * Multiplies the current model-view matrix by one that rotates the
360
+ * model around the axis-vector specified by @x, @y and @z. The
361
+ * rotation follows the right-hand thumb rule so for example rotating
362
+ * by 10 degrees about the axis-vector (0, 0, 1) causes a small
363
+ * counter-clockwise rotation.
364
+ *
365
+ * Since: 1.10
366
+ * Stability: unstable
367
+ */
368
+ void
369
+ cogl_framebuffer_rotate (CoglFramebuffer *framebuffer,
370
+ float angle,
371
+ float x,
372
+ float y,
373
+ float z);
374
+
375
+ #ifdef COGL_ENABLE_EXPERIMENTAL_API
376
+
377
+ /**
378
+ * cogl_framebuffer_rotate_quaternion:
379
+ * @framebuffer: A #CoglFramebuffer pointer
380
+ * @quaternion: A #CoglQuaternion
381
+ *
382
+ * Multiplies the current model-view matrix by one that rotates
383
+ * according to the rotation described by @quaternion.
384
+ *
385
+ * Since: 2.0
386
+ * Stability: unstable
387
+ */
388
+ void
389
+ cogl_framebuffer_rotate_quaternion (CoglFramebuffer *framebuffer,
390
+ const CoglQuaternion *quaternion);
391
+
392
+ /**
393
+ * cogl_framebuffer_rotate_euler:
394
+ * @framebuffer: A #CoglFramebuffer pointer
395
+ * @euler: A #CoglEuler
396
+ *
397
+ * Multiplies the current model-view matrix by one that rotates
398
+ * according to the rotation described by @euler.
399
+ *
400
+ * Since: 2.0
401
+ * Stability: unstable
402
+ */
403
+ void
404
+ cogl_framebuffer_rotate_euler (CoglFramebuffer *framebuffer,
405
+ const CoglEuler *euler);
406
+
407
+ #endif /* COGL_ENABLE_EXPERIMENTAL_API */
408
+
409
+ /**
410
+ * cogl_framebuffer_transform:
411
+ * @framebuffer: A #CoglFramebuffer pointer
412
+ * @matrix: the matrix to multiply with the current model-view
413
+ *
414
+ * Multiplies the current model-view matrix by the given matrix.
415
+ *
416
+ * Since: 1.10
417
+ * Stability: unstable
418
+ */
419
+ void
420
+ cogl_framebuffer_transform (CoglFramebuffer *framebuffer,
421
+ const CoglMatrix *matrix);
422
+
423
+ /**
424
+ * cogl_framebuffer_get_modelview_matrix:
425
+ * @framebuffer: A #CoglFramebuffer pointer
426
+ * @matrix: (out): return location for the model-view matrix
427
+ *
428
+ * Stores the current model-view matrix in @matrix.
429
+ *
430
+ * Since: 1.10
431
+ * Stability: unstable
432
+ */
433
+ void
434
+ cogl_framebuffer_get_modelview_matrix (CoglFramebuffer *framebuffer,
435
+ CoglMatrix *matrix);
436
+
437
+ /**
438
+ * cogl_framebuffer_set_modelview_matrix:
439
+ * @framebuffer: A #CoglFramebuffer pointer
440
+ * @matrix: the new model-view matrix
441
+ *
442
+ * Sets @matrix as the new model-view matrix.
443
+ *
444
+ * Since: 1.10
445
+ * Stability: unstable
446
+ */
447
+ void
448
+ cogl_framebuffer_set_modelview_matrix (CoglFramebuffer *framebuffer,
449
+ const CoglMatrix *matrix);
450
+
451
+ /**
452
+ * cogl_framebuffer_perspective:
453
+ * @framebuffer: A #CoglFramebuffer pointer
454
+ * @fov_y: Vertical field of view angle in degrees.
455
+ * @aspect: The (width over height) aspect ratio for display
456
+ * @z_near: The distance to the near clipping plane (Must be positive,
457
+ * and must not be 0)
458
+ * @z_far: The distance to the far clipping plane (Must be positive)
459
+ *
460
+ * Replaces the current projection matrix with a perspective matrix
461
+ * based on the provided values.
462
+ *
463
+ * <note>You should be careful not to have to great a @z_far / @z_near
464
+ * ratio since that will reduce the effectiveness of depth testing
465
+ * since there wont be enough precision to identify the depth of
466
+ * objects near to each other.</note>
467
+ *
468
+ * Since: 1.10
469
+ * Stability: unstable
470
+ */
471
+ void
472
+ cogl_framebuffer_perspective (CoglFramebuffer *framebuffer,
473
+ float fov_y,
474
+ float aspect,
475
+ float z_near,
476
+ float z_far);
477
+
478
+ /**
479
+ * cogl_framebuffer_frustum:
480
+ * @framebuffer: A #CoglFramebuffer pointer
481
+ * @left: X position of the left clipping plane where it
482
+ * intersects the near clipping plane
483
+ * @right: X position of the right clipping plane where it
484
+ * intersects the near clipping plane
485
+ * @bottom: Y position of the bottom clipping plane where it
486
+ * intersects the near clipping plane
487
+ * @top: Y position of the top clipping plane where it intersects
488
+ * the near clipping plane
489
+ * @z_near: The distance to the near clipping plane (Must be positive)
490
+ * @z_far: The distance to the far clipping plane (Must be positive)
491
+ *
492
+ * Replaces the current projection matrix with a perspective matrix
493
+ * for a given viewing frustum defined by 4 side clip planes that
494
+ * all cross through the origin and 2 near and far clip planes.
495
+ *
496
+ * Since: 1.10
497
+ * Stability: unstable
498
+ */
499
+ void
500
+ cogl_framebuffer_frustum (CoglFramebuffer *framebuffer,
501
+ float left,
502
+ float right,
503
+ float bottom,
504
+ float top,
505
+ float z_near,
506
+ float z_far);
507
+
508
+ /**
509
+ * cogl_framebuffer_orthographic:
510
+ * @framebuffer: A #CoglFramebuffer pointer
511
+ * @x_1: The x coordinate for the first vertical clipping plane
512
+ * @y_1: The y coordinate for the first horizontal clipping plane
513
+ * @x_2: The x coordinate for the second vertical clipping plane
514
+ * @y_2: The y coordinate for the second horizontal clipping plane
515
+ * @near: The <emphasis>distance</emphasis> to the near clipping
516
+ * plane (will be <emphasis>negative</emphasis> if the plane is
517
+ * behind the viewer)
518
+ * @far: The <emphasis>distance</emphasis> to the far clipping
519
+ * plane (will be <emphasis>negative</emphasis> if the plane is
520
+ * behind the viewer)
521
+ *
522
+ * Replaces the current projection matrix with an orthographic projection
523
+ * matrix.
524
+ *
525
+ * Since: 1.10
526
+ * Stability: unstable
527
+ */
528
+ void
529
+ cogl_framebuffer_orthographic (CoglFramebuffer *framebuffer,
530
+ float x_1,
531
+ float y_1,
532
+ float x_2,
533
+ float y_2,
534
+ float near,
535
+ float far);
536
+
537
+ /**
538
+ * cogl_framebuffer_get_projection_matrix:
539
+ * @framebuffer: A #CoglFramebuffer pointer
540
+ * @matrix: (out): return location for the projection matrix
541
+ *
542
+ * Stores the current projection matrix in @matrix.
543
+ *
544
+ * Since: 1.10
545
+ * Stability: unstable
546
+ */
547
+ void
548
+ cogl_framebuffer_get_projection_matrix (CoglFramebuffer *framebuffer,
549
+ CoglMatrix *matrix);
550
+
551
+ /**
552
+ * cogl_framebuffer_set_projection_matrix:
553
+ * @framebuffer: A #CoglFramebuffer pointer
554
+ * @matrix: the new projection matrix
555
+ *
556
+ * Sets @matrix as the new projection matrix.
557
+ *
558
+ * Since: 1.10
559
+ * Stability: unstable
560
+ */
561
+ void
562
+ cogl_framebuffer_set_projection_matrix (CoglFramebuffer *framebuffer,
563
+ const CoglMatrix *matrix);
564
+
565
+ /**
566
+ * cogl_framebuffer_push_scissor_clip:
567
+ * @framebuffer: A #CoglFramebuffer pointer
568
+ * @x: left edge of the clip rectangle in window coordinates
569
+ * @y: top edge of the clip rectangle in window coordinates
570
+ * @width: width of the clip rectangle
571
+ * @height: height of the clip rectangle
572
+ *
573
+ * Specifies a rectangular clipping area for all subsequent drawing
574
+ * operations. Any drawing commands that extend outside the rectangle
575
+ * will be clipped so that only the portion inside the rectangle will
576
+ * be displayed. The rectangle dimensions are not transformed by the
577
+ * current model-view matrix.
578
+ *
579
+ * The rectangle is intersected with the current clip region. To undo
580
+ * the effect of this function, call cogl_framebuffer_pop_clip().
581
+ *
582
+ * Since: 1.10
583
+ * Stability: unstable
584
+ */
585
+ void
586
+ cogl_framebuffer_push_scissor_clip (CoglFramebuffer *framebuffer,
587
+ int x,
588
+ int y,
589
+ int width,
590
+ int height);
591
+
592
+ /**
593
+ * cogl_framebuffer_push_rectangle_clip:
594
+ * @framebuffer: A #CoglFramebuffer pointer
595
+ * @x_1: x coordinate for top left corner of the clip rectangle
596
+ * @y_1: y coordinate for top left corner of the clip rectangle
597
+ * @x_2: x coordinate for bottom right corner of the clip rectangle
598
+ * @y_2: y coordinate for bottom right corner of the clip rectangle
599
+ *
600
+ * Specifies a modelview transformed rectangular clipping area for all
601
+ * subsequent drawing operations. Any drawing commands that extend
602
+ * outside the rectangle will be clipped so that only the portion
603
+ * inside the rectangle will be displayed. The rectangle dimensions
604
+ * are transformed by the current model-view matrix.
605
+ *
606
+ * The rectangle is intersected with the current clip region. To undo
607
+ * the effect of this function, call cogl_framebuffer_pop_clip().
608
+ *
609
+ * Since: 1.10
610
+ * Stability: unstable
611
+ */
612
+ void
613
+ cogl_framebuffer_push_rectangle_clip (CoglFramebuffer *framebuffer,
614
+ float x_1,
615
+ float y_1,
616
+ float x_2,
617
+ float y_2);
618
+
619
+ /**
620
+ * cogl_framebuffer_push_primitive_clip:
621
+ * @framebuffer: A #CoglFramebuffer pointer
622
+ * @primitive: A #CoglPrimitive describing a flat 2D shape
623
+ * @bounds_x1: x coordinate for the top-left corner of the primitives
624
+ * bounds
625
+ * @bounds_y1: y coordinate for the top-left corner of the primitives
626
+ * bounds
627
+ * @bounds_x2: x coordinate for the bottom-right corner of the
628
+ * primitives bounds.
629
+ * @bounds_y2: y coordinate for the bottom-right corner of the
630
+ * primitives bounds.
631
+ *
632
+ * Sets a new clipping area using a 2D shaped described with a
633
+ * #CoglPrimitive. The shape must not contain self overlapping
634
+ * geometry and must lie on a single 2D plane. A bounding box of the
635
+ * 2D shape in local coordinates (the same coordinates used to
636
+ * describe the shape) must be given. It is acceptable for the bounds
637
+ * to be larger than the true bounds but behaviour is undefined if the
638
+ * bounds are smaller than the true bounds.
639
+ *
640
+ * The primitive is transformed by the current model-view matrix and
641
+ * the silhouette is intersected with the previous clipping area. To
642
+ * restore the previous clipping area, call
643
+ * cogl_framebuffer_pop_clip().
644
+ *
645
+ * Since: 1.10
646
+ * Stability: unstable
647
+ */
648
+ void
649
+ cogl_framebuffer_push_primitive_clip (CoglFramebuffer *framebuffer,
650
+ CoglPrimitive *primitive,
651
+ float bounds_x1,
652
+ float bounds_y1,
653
+ float bounds_x2,
654
+ float bounds_y2);
655
+
656
+ /**
657
+ * cogl_framebuffer_pop_clip:
658
+ * @framebuffer: A #CoglFramebuffer pointer
659
+ *
660
+ * Reverts the clipping region to the state before the last call to
661
+ * cogl_framebuffer_push_scissor_clip(), cogl_framebuffer_push_rectangle_clip()
662
+ * cogl_framebuffer_push_path_clip(), or cogl_framebuffer_push_primitive_clip().
663
+ *
664
+ * Since: 1.10
665
+ * Stability: unstable
666
+ */
667
+ void
668
+ cogl_framebuffer_pop_clip (CoglFramebuffer *framebuffer);
669
+
670
+ /**
671
+ * cogl_framebuffer_get_red_bits:
672
+ * @framebuffer: a pointer to a #CoglFramebuffer
673
+ *
674
+ * Retrieves the number of red bits of @framebuffer
675
+ *
676
+ * Return value: the number of bits
677
+ *
678
+ * Since: 1.8
679
+ * Stability: unstable
680
+ */
681
+ int
682
+ cogl_framebuffer_get_red_bits (CoglFramebuffer *framebuffer);
683
+
684
+ /**
685
+ * cogl_framebuffer_get_green_bits:
686
+ * @framebuffer: a pointer to a #CoglFramebuffer
687
+ *
688
+ * Retrieves the number of green bits of @framebuffer
689
+ *
690
+ * Return value: the number of bits
691
+ *
692
+ * Since: 1.8
693
+ * Stability: unstable
694
+ */
695
+ int
696
+ cogl_framebuffer_get_green_bits (CoglFramebuffer *framebuffer);
697
+
698
+ /**
699
+ * cogl_framebuffer_get_blue_bits:
700
+ * @framebuffer: a pointer to a #CoglFramebuffer
701
+ *
702
+ * Retrieves the number of blue bits of @framebuffer
703
+ *
704
+ * Return value: the number of bits
705
+ *
706
+ * Since: 1.8
707
+ * Stability: unstable
708
+ */
709
+ int
710
+ cogl_framebuffer_get_blue_bits (CoglFramebuffer *framebuffer);
711
+
712
+ /**
713
+ * cogl_framebuffer_get_alpha_bits:
714
+ * @framebuffer: a pointer to a #CoglFramebuffer
715
+ *
716
+ * Retrieves the number of alpha bits of @framebuffer
717
+ *
718
+ * Return value: the number of bits
719
+ *
720
+ * Since: 1.8
721
+ * Stability: unstable
722
+ */
723
+ int
724
+ cogl_framebuffer_get_alpha_bits (CoglFramebuffer *framebuffer);
725
+
726
+ /**
727
+ * cogl_framebuffer_get_depth_bits:
728
+ * @framebuffer: a pointer to a #CoglFramebuffer
729
+ *
730
+ * Retrieves the number of depth bits of @framebuffer
731
+ *
732
+ * Return value: the number of bits
733
+ *
734
+ * Since: 2.0
735
+ * Stability: unstable
736
+ */
737
+ int
738
+ cogl_framebuffer_get_depth_bits (CoglFramebuffer *framebuffer);
739
+
740
+ /**
741
+ * cogl_framebuffer_get_dither_enabled:
742
+ * @framebuffer: a pointer to a #CoglFramebuffer
743
+ *
744
+ * Returns whether dithering has been requested for the given @framebuffer.
745
+ * See cogl_framebuffer_set_dither_enabled() for more details about dithering.
746
+ *
747
+ * <note>This may return %TRUE even when the underlying @framebuffer
748
+ * display pipeline does not support dithering. This value only represents
749
+ * the user's request for dithering.</note>
750
+ *
751
+ * Return value: %TRUE if dithering has been requested or %FALSE if not.
752
+ * Since: 1.8
753
+ * Stability: unstable
754
+ */
755
+ CoglBool
756
+ cogl_framebuffer_get_dither_enabled (CoglFramebuffer *framebuffer);
757
+
758
+ /**
759
+ * cogl_framebuffer_set_dither_enabled:
760
+ * @framebuffer: a pointer to a #CoglFramebuffer
761
+ * @dither_enabled: %TRUE to enable dithering or %FALSE to disable
762
+ *
763
+ * Enables or disabled dithering if supported by the hardware.
764
+ *
765
+ * Dithering is a hardware dependent technique to increase the visible
766
+ * color resolution beyond what the underlying hardware supports by playing
767
+ * tricks with the colors placed into the framebuffer to give the illusion
768
+ * of other colors. (For example this can be compared to half-toning used
769
+ * by some news papers to show varying levels of grey even though their may
770
+ * only be black and white are available).
771
+ *
772
+ * If the current display pipeline for @framebuffer does not support dithering
773
+ * then this has no affect.
774
+ *
775
+ * Dithering is enabled by default.
776
+ *
777
+ * Since: 1.8
778
+ * Stability: unstable
779
+ */
780
+ void
781
+ cogl_framebuffer_set_dither_enabled (CoglFramebuffer *framebuffer,
782
+ CoglBool dither_enabled);
783
+
784
+ /**
785
+ * cogl_framebuffer_get_depth_write_enabled:
786
+ * @framebuffer: a pointer to a #CoglFramebuffer
787
+ *
788
+ * Queries whether depth buffer writing is enabled for @framebuffer. This
789
+ * can be controlled via cogl_framebuffer_set_depth_write_enabled().
790
+ *
791
+ * Return value: %TRUE if depth writing is enabled or %FALSE if not.
792
+ * Since: 1.18
793
+ * Stability: unstable
794
+ */
795
+ CoglBool
796
+ cogl_framebuffer_get_depth_write_enabled (CoglFramebuffer *framebuffer);
797
+
798
+ /**
799
+ * cogl_framebuffer_set_depth_write_enabled:
800
+ * @framebuffer: a pointer to a #CoglFramebuffer
801
+ * @depth_write_enabled: %TRUE to enable depth writing or %FALSE to disable
802
+ *
803
+ * Enables or disables depth buffer writing when rendering to @framebuffer.
804
+ * If depth writing is enabled for both the framebuffer and the rendering
805
+ * pipeline, and the framebuffer has an associated depth buffer, depth
806
+ * information will be written to this buffer during rendering.
807
+ *
808
+ * Depth buffer writing is enabled by default.
809
+ *
810
+ * Since: 1.18
811
+ * Stability: unstable
812
+ */
813
+ void
814
+ cogl_framebuffer_set_depth_write_enabled (CoglFramebuffer *framebuffer,
815
+ CoglBool depth_write_enabled);
816
+
817
+ /**
818
+ * cogl_framebuffer_get_color_mask:
819
+ * @framebuffer: a pointer to a #CoglFramebuffer
820
+ *
821
+ * Gets the current #CoglColorMask of which channels would be written to the
822
+ * current framebuffer. Each bit set in the mask means that the
823
+ * corresponding color would be written.
824
+ *
825
+ * Returns: A #CoglColorMask
826
+ * Since: 1.8
827
+ * Stability: unstable
828
+ */
829
+ CoglColorMask
830
+ cogl_framebuffer_get_color_mask (CoglFramebuffer *framebuffer);
831
+
832
+ /**
833
+ * cogl_framebuffer_set_color_mask:
834
+ * @framebuffer: a pointer to a #CoglFramebuffer
835
+ * @color_mask: A #CoglColorMask of which color channels to write to
836
+ * the current framebuffer.
837
+ *
838
+ * Defines a bit mask of which color channels should be written to the
839
+ * given @framebuffer. If a bit is set in @color_mask that means that
840
+ * color will be written.
841
+ *
842
+ * Since: 1.8
843
+ * Stability: unstable
844
+ */
845
+ void
846
+ cogl_framebuffer_set_color_mask (CoglFramebuffer *framebuffer,
847
+ CoglColorMask color_mask);
848
+
849
+ /**
850
+ * cogl_framebuffer_set_depth_texture_enabled:
851
+ * @framebuffer: A #CoglFramebuffer
852
+ * @enabled: TRUE or FALSE
853
+ *
854
+ * If @enabled is #TRUE, the depth buffer used when rendering to @framebuffer
855
+ * is available as a texture. You can retrieve the texture with
856
+ * cogl_framebuffer_get_depth_texture().
857
+ *
858
+ * <note>It's possible that your GPU does not support depth textures. You
859
+ * should check the %COGL_FEATURE_ID_DEPTH_TEXTURE feature before using this
860
+ * function.</note>
861
+ * <note>It's not valid to call this function after the framebuffer has been
862
+ * allocated as the creation of the depth texture is done at allocation time.
863
+ * </note>
864
+ *
865
+ * Since: 1.14
866
+ * Stability: unstable
867
+ */
868
+ void
869
+ cogl_framebuffer_set_depth_texture_enabled (CoglFramebuffer *framebuffer,
870
+ CoglBool enabled);
871
+
872
+ /**
873
+ * cogl_framebuffer_get_depth_texture_enabled:
874
+ * @framebuffer: A #CoglFramebuffer
875
+ *
876
+ * Queries whether texture based depth buffer has been enabled via
877
+ * cogl_framebuffer_set_depth_texture_enabled().
878
+ *
879
+ * Return value: %TRUE if a depth texture has been enabled, else
880
+ * %FALSE.
881
+ *
882
+ * Since: 1.14
883
+ * Stability: unstable
884
+ */
885
+ CoglBool
886
+ cogl_framebuffer_get_depth_texture_enabled (CoglFramebuffer *framebuffer);
887
+
888
+ /**
889
+ * cogl_framebuffer_get_depth_texture:
890
+ * @framebuffer: A #CoglFramebuffer
891
+ *
892
+ * Retrieves the depth buffer of @framebuffer as a #CoglTexture. You need to
893
+ * call cogl_framebuffer_get_depth_texture(fb, TRUE); before using this
894
+ * function.
895
+ *
896
+ * <note>Calling this function implicitely allocates the framebuffer.</note>
897
+ * <note>The texture returned stays valid as long as the framebuffer stays
898
+ * valid.</note>
899
+ *
900
+ * Returns: (transfer none): the depth texture
901
+ *
902
+ * Since: 1.14
903
+ * Stability: unstable
904
+ */
905
+ CoglTexture *
906
+ cogl_framebuffer_get_depth_texture (CoglFramebuffer *framebuffer);
907
+
908
+ /**
909
+ * cogl_framebuffer_set_samples_per_pixel:
910
+ * @framebuffer: A #CoglFramebuffer framebuffer
911
+ * @samples_per_pixel: The minimum number of samples per pixel
912
+ *
913
+ * Requires that when rendering to @framebuffer then @n point samples
914
+ * should be made per pixel which will all contribute to the final
915
+ * resolved color for that pixel. The idea is that the hardware aims
916
+ * to get quality similar to what you would get if you rendered
917
+ * everything twice as big (for 4 samples per pixel) and then scaled
918
+ * that image back down with filtering. It can effectively remove the
919
+ * jagged edges of polygons and should be more efficient than if you
920
+ * were to manually render at a higher resolution and downscale
921
+ * because the hardware is often able to take some shortcuts. For
922
+ * example the GPU may only calculate a single texture sample for all
923
+ * points of a single pixel, and for tile based architectures all the
924
+ * extra sample data (such as depth and stencil samples) may be
925
+ * handled on-chip and so avoid increased demand on system memory
926
+ * bandwidth.
927
+ *
928
+ * By default this value is usually set to 0 and that is referred to
929
+ * as "single-sample" rendering. A value of 1 or greater is referred
930
+ * to as "multisample" rendering.
931
+ *
932
+ * <note>There are some semantic differences between single-sample
933
+ * rendering and multisampling with just 1 point sample such as it
934
+ * being redundant to use the cogl_framebuffer_resolve_samples() and
935
+ * cogl_framebuffer_resolve_samples_region() apis with single-sample
936
+ * rendering.</note>
937
+ *
938
+ * <note>It's recommended that
939
+ * cogl_framebuffer_resolve_samples_region() be explicitly used at the
940
+ * end of rendering to a point sample buffer to minimize the number of
941
+ * samples that get resolved. By default Cogl will implicitly resolve
942
+ * all framebuffer samples but if only a small region of a
943
+ * framebuffer has changed this can lead to redundant work being
944
+ * done.</note>
945
+ *
946
+ * Since: 1.8
947
+ * Stability: unstable
948
+ */
949
+ void
950
+ cogl_framebuffer_set_samples_per_pixel (CoglFramebuffer *framebuffer,
951
+ int samples_per_pixel);
952
+
953
+ /**
954
+ * cogl_framebuffer_get_samples_per_pixel:
955
+ * @framebuffer: A #CoglFramebuffer framebuffer
956
+ *
957
+ * Gets the number of points that are sampled per-pixel when
958
+ * rasterizing geometry. Usually by default this will return 0 which
959
+ * means that single-sample not multisample rendering has been chosen.
960
+ * When using a GPU supporting multisample rendering it's possible to
961
+ * increase the number of samples per pixel using
962
+ * cogl_framebuffer_set_samples_per_pixel().
963
+ *
964
+ * Calling cogl_framebuffer_get_samples_per_pixel() before the
965
+ * framebuffer has been allocated will simply return the value set
966
+ * using cogl_framebuffer_set_samples_per_pixel(). After the
967
+ * framebuffer has been allocated the value will reflect the actual
968
+ * number of samples that will be made by the GPU.
969
+ *
970
+ * Returns: The number of point samples made per pixel when
971
+ * rasterizing geometry or 0 if single-sample rendering
972
+ * has been chosen.
973
+ *
974
+ * Since: 1.10
975
+ * Stability: unstable
976
+ */
977
+ int
978
+ cogl_framebuffer_get_samples_per_pixel (CoglFramebuffer *framebuffer);
979
+
980
+
981
+ /**
982
+ * cogl_framebuffer_resolve_samples:
983
+ * @framebuffer: A #CoglFramebuffer framebuffer
984
+ *
985
+ * When point sample rendering (also known as multisample rendering)
986
+ * has been enabled via cogl_framebuffer_set_samples_per_pixel()
987
+ * then you can optionally call this function (or
988
+ * cogl_framebuffer_resolve_samples_region()) to explicitly resolve
989
+ * the point samples into values for the final color buffer.
990
+ *
991
+ * Some GPUs will implicitly resolve the point samples during
992
+ * rendering and so this function is effectively a nop, but with other
993
+ * architectures it is desirable to defer the resolve step until the
994
+ * end of the frame.
995
+ *
996
+ * Since Cogl will automatically ensure samples are resolved if the
997
+ * target color buffer is used as a source this API only needs to be
998
+ * used if explicit control is desired - perhaps because you want to
999
+ * ensure that the resolve is completed in advance to avoid later
1000
+ * having to wait for the resolve to complete.
1001
+ *
1002
+ * If you are performing incremental updates to a framebuffer you
1003
+ * should consider using cogl_framebuffer_resolve_samples_region()
1004
+ * instead to avoid resolving redundant pixels.
1005
+ *
1006
+ * Since: 1.8
1007
+ * Stability: unstable
1008
+ */
1009
+ void
1010
+ cogl_framebuffer_resolve_samples (CoglFramebuffer *framebuffer);
1011
+
1012
+ /**
1013
+ * cogl_framebuffer_resolve_samples_region:
1014
+ * @framebuffer: A #CoglFramebuffer framebuffer
1015
+ * @x: top-left x coordinate of region to resolve
1016
+ * @y: top-left y coordinate of region to resolve
1017
+ * @width: width of region to resolve
1018
+ * @height: height of region to resolve
1019
+ *
1020
+ * When point sample rendering (also known as multisample rendering)
1021
+ * has been enabled via cogl_framebuffer_set_samples_per_pixel()
1022
+ * then you can optionally call this function (or
1023
+ * cogl_framebuffer_resolve_samples()) to explicitly resolve the point
1024
+ * samples into values for the final color buffer.
1025
+ *
1026
+ * Some GPUs will implicitly resolve the point samples during
1027
+ * rendering and so this function is effectively a nop, but with other
1028
+ * architectures it is desirable to defer the resolve step until the
1029
+ * end of the frame.
1030
+ *
1031
+ * Use of this API is recommended if incremental, small updates to
1032
+ * a framebuffer are being made because by default Cogl will
1033
+ * implicitly resolve all the point samples of the framebuffer which
1034
+ * can result in redundant work if only a small number of samples have
1035
+ * changed.
1036
+ *
1037
+ * Because some GPUs implicitly resolve point samples this function
1038
+ * only guarantees that at-least the region specified will be resolved
1039
+ * and if you have rendered to a larger region then it's possible that
1040
+ * other samples may be implicitly resolved.
1041
+ *
1042
+ * Since: 1.8
1043
+ * Stability: unstable
1044
+ */
1045
+ void
1046
+ cogl_framebuffer_resolve_samples_region (CoglFramebuffer *framebuffer,
1047
+ int x,
1048
+ int y,
1049
+ int width,
1050
+ int height);
1051
+
1052
+ /**
1053
+ * cogl_framebuffer_get_context:
1054
+ * @framebuffer: A #CoglFramebuffer
1055
+ *
1056
+ * Can be used to query the #CoglContext a given @framebuffer was
1057
+ * instantiated within. This is the #CoglContext that was passed to
1058
+ * cogl_onscreen_new() for example.
1059
+ *
1060
+ * Return value: (transfer none): The #CoglContext that the given
1061
+ * @framebuffer was instantiated within.
1062
+ * Since: 1.8
1063
+ * Stability: unstable
1064
+ */
1065
+ CoglContext *
1066
+ cogl_framebuffer_get_context (CoglFramebuffer *framebuffer);
1067
+
1068
+ /**
1069
+ * cogl_framebuffer_clear:
1070
+ * @framebuffer: A #CoglFramebuffer
1071
+ * @buffers: A mask of #CoglBufferBit<!-- -->'s identifying which auxiliary
1072
+ * buffers to clear
1073
+ * @color: The color to clear the color buffer too if specified in
1074
+ * @buffers.
1075
+ *
1076
+ * Clears all the auxiliary buffers identified in the @buffers mask, and if
1077
+ * that includes the color buffer then the specified @color is used.
1078
+ *
1079
+ * Since: 1.8
1080
+ * Stability: unstable
1081
+ */
1082
+ void
1083
+ cogl_framebuffer_clear (CoglFramebuffer *framebuffer,
1084
+ unsigned long buffers,
1085
+ const CoglColor *color);
1086
+
1087
+ /**
1088
+ * cogl_framebuffer_clear4f:
1089
+ * @framebuffer: A #CoglFramebuffer
1090
+ * @buffers: A mask of #CoglBufferBit<!-- -->'s identifying which auxiliary
1091
+ * buffers to clear
1092
+ * @red: The red component of color to clear the color buffer too if
1093
+ * specified in @buffers.
1094
+ * @green: The green component of color to clear the color buffer too if
1095
+ * specified in @buffers.
1096
+ * @blue: The blue component of color to clear the color buffer too if
1097
+ * specified in @buffers.
1098
+ * @alpha: The alpha component of color to clear the color buffer too if
1099
+ * specified in @buffers.
1100
+ *
1101
+ * Clears all the auxiliary buffers identified in the @buffers mask, and if
1102
+ * that includes the color buffer then the specified @color is used.
1103
+ *
1104
+ * Since: 1.8
1105
+ * Stability: unstable
1106
+ */
1107
+ void
1108
+ cogl_framebuffer_clear4f (CoglFramebuffer *framebuffer,
1109
+ unsigned long buffers,
1110
+ float red,
1111
+ float green,
1112
+ float blue,
1113
+ float alpha);
1114
+
1115
+ /**
1116
+ * cogl_framebuffer_draw_primitive:
1117
+ * @framebuffer: A destination #CoglFramebuffer
1118
+ * @pipeline: A #CoglPipeline state object
1119
+ * @primitive: A #CoglPrimitive geometry object
1120
+ *
1121
+ * Draws the given @primitive geometry to the specified destination
1122
+ * @framebuffer using the graphics processing state described by @pipeline.
1123
+ *
1124
+ * This drawing api doesn't support high-level meta texture types such
1125
+ * as #CoglTexture2DSliced so it is the user's responsibility to
1126
+ * ensure that only low-level textures that can be directly sampled by
1127
+ * a GPU such as #CoglTexture2D, #CoglTextureRectangle or #CoglTexture3D
1128
+ * are associated with layers of the given @pipeline.
1129
+ *
1130
+ * <note>This api doesn't support any of the legacy global state options such
1131
+ * as cogl_set_depth_test_enabled(), cogl_set_backface_culling_enabled() or
1132
+ * cogl_program_use()</note>
1133
+ *
1134
+ * Stability: unstable
1135
+ * Since: 1.10
1136
+ * Deprecated: 1.16: Use #CoglPrimitive<!-- -->s and
1137
+ * cogl_primitive_draw() instead
1138
+ */
1139
+ COGL_DEPRECATED_IN_1_16_FOR (cogl_primitive_draw)
1140
+ void
1141
+ cogl_framebuffer_draw_primitive (CoglFramebuffer *framebuffer,
1142
+ CoglPipeline *pipeline,
1143
+ CoglPrimitive *primitive);
1144
+
1145
+ /**
1146
+ * cogl_framebuffer_vdraw_attributes:
1147
+ * @framebuffer: A destination #CoglFramebuffer
1148
+ * @pipeline: A #CoglPipeline state object
1149
+ * @mode: The #CoglVerticesMode defining the topology of vertices
1150
+ * @first_vertex: The vertex offset within the given attributes to draw from
1151
+ * @n_vertices: The number of vertices to draw from the given attributes
1152
+ * @...: A set of vertex #CoglAttribute<!-- -->s defining vertex geometry
1153
+ *
1154
+ * First defines a geometry primitive by grouping a set of vertex attributes;
1155
+ * specifying a @first_vertex; a number of vertices (@n_vertices) and
1156
+ * specifying what kind of topology the vertices have via @mode.
1157
+ *
1158
+ * Then the function draws the given @primitive geometry to the specified
1159
+ * destination @framebuffer using the graphics processing pipeline described by
1160
+ * @pipeline.
1161
+ *
1162
+ * The list of #CoglAttribute<!-- -->s define the attributes of the vertices to
1163
+ * be drawn, such as positions, colors and normals and should be %NULL
1164
+ * terminated.
1165
+ *
1166
+ * This drawing api doesn't support high-level meta texture types such
1167
+ * as #CoglTexture2DSliced so it is the user's responsibility to
1168
+ * ensure that only low-level textures that can be directly sampled by
1169
+ * a GPU such as #CoglTexture2D, #CoglTextureRectangle or #CoglTexture3D
1170
+ * are associated with layers of the given @pipeline.
1171
+ *
1172
+ * Stability: unstable
1173
+ * Since: 1.10
1174
+ * Deprecated: 1.16: Use #CoglPrimitive<!-- -->s and
1175
+ * cogl_primitive_draw() instead
1176
+ */
1177
+ COGL_DEPRECATED_IN_1_16_FOR (cogl_primitive_draw)
1178
+ void
1179
+ cogl_framebuffer_vdraw_attributes (CoglFramebuffer *framebuffer,
1180
+ CoglPipeline *pipeline,
1181
+ CoglVerticesMode mode,
1182
+ int first_vertex,
1183
+ int n_vertices,
1184
+ ...) COGL_GNUC_NULL_TERMINATED;
1185
+
1186
+ /**
1187
+ * cogl_framebuffer_draw_attributes:
1188
+ * @framebuffer: A destination #CoglFramebuffer
1189
+ * @pipeline: A #CoglPipeline state object
1190
+ * @mode: The #CoglVerticesMode defining the topology of vertices
1191
+ * @first_vertex: The vertex offset within the given attributes to draw from
1192
+ * @n_vertices: The number of vertices to draw from the given attributes
1193
+ * @attributes: An array of pointers to #CoglAttribute<-- -->s defining vertex
1194
+ * geometry
1195
+ * @n_attributes: The number of attributes in the @attributes array.
1196
+ *
1197
+ * First defines a geometry primitive by grouping a set of vertex @attributes;
1198
+ * specifying a @first_vertex; a number of vertices (@n_vertices) and
1199
+ * specifying what kind of topology the vertices have via @mode.
1200
+ *
1201
+ * Then the function draws the given @primitive geometry to the specified
1202
+ * destination @framebuffer using the graphics processing pipeline described by
1203
+ * @pipeline.
1204
+ *
1205
+ * The list of #CoglAttribute<!-- -->s define the attributes of the vertices to
1206
+ * be drawn, such as positions, colors and normals and the number of attributes
1207
+ * is given as @n_attributes.
1208
+ *
1209
+ * This drawing api doesn't support high-level meta texture types such
1210
+ * as #CoglTexture2DSliced so it is the user's responsibility to
1211
+ * ensure that only low-level textures that can be directly sampled by
1212
+ * a GPU such as #CoglTexture2D, #CoglTextureRectangle or #CoglTexture3D
1213
+ * are associated with layers of the given @pipeline.
1214
+ *
1215
+ * <note>This api doesn't support any of the legacy global state options such
1216
+ * as cogl_set_depth_test_enabled(), cogl_set_backface_culling_enabled() or
1217
+ * cogl_program_use()</note>
1218
+ *
1219
+ * Stability: unstable
1220
+ * Since: 1.10
1221
+ * Deprecated: 1.16: Use #CoglPrimitive<!-- -->s and
1222
+ * cogl_primitive_draw() instead
1223
+ */
1224
+ COGL_DEPRECATED_IN_1_16_FOR (cogl_primitive_draw)
1225
+ void
1226
+ cogl_framebuffer_draw_attributes (CoglFramebuffer *framebuffer,
1227
+ CoglPipeline *pipeline,
1228
+ CoglVerticesMode mode,
1229
+ int first_vertex,
1230
+ int n_vertices,
1231
+ CoglAttribute **attributes,
1232
+ int n_attributes);
1233
+
1234
+ /**
1235
+ * cogl_framebuffer_vdraw_indexed_attributes:
1236
+ * @framebuffer: A destination #CoglFramebuffer
1237
+ * @pipeline: A #CoglPipeline state object
1238
+ * @mode: The #CoglVerticesMode defining the topology of vertices
1239
+ * @first_vertex: The vertex offset within the given attributes to draw from
1240
+ * @n_vertices: The number of vertices to draw from the given attributes
1241
+ * @indices: The array of indices used by the GPU to lookup attribute
1242
+ * data for each vertex.
1243
+ * @...: A set of vertex #CoglAttribute<!-- -->s defining vertex geometry
1244
+ *
1245
+ * Behaves the same as cogl_framebuffer_vdraw_attributes() except that
1246
+ * instead of reading vertex data sequentially from the specified
1247
+ * attributes the @indices provide an indirection for how the data
1248
+ * should be indexed allowing a random access order to be
1249
+ * specified.
1250
+ *
1251
+ * For example an indices array of [0, 1, 2, 0, 2, 3] could be used
1252
+ * used to draw two triangles (@mode = %COGL_VERTICES_MODE_TRIANGLES +
1253
+ * @n_vertices = 6) but only provide attribute data for the 4 corners
1254
+ * of a rectangle. When the GPU needs to read in each of the 6
1255
+ * vertices it will read the @indices array for each vertex in
1256
+ * sequence and use the index to look up the vertex attribute data. So
1257
+ * here you can see that first and fourth vertex will point to the
1258
+ * same data and third and fifth vertex will also point to shared
1259
+ * data.
1260
+ *
1261
+ * Drawing with indices can be a good way of minimizing the size of a
1262
+ * mesh by allowing you to avoid data for duplicate vertices because
1263
+ * multiple entries in the index array can refer back to a single
1264
+ * shared vertex.
1265
+ *
1266
+ * <note>The @indices array must be at least as long as @first_vertex
1267
+ * + @n_vertices otherwise the GPU will overrun the indices array when
1268
+ * looking up vertex data.</note>
1269
+ *
1270
+ * Since it's very common to want to draw a run of rectangles using
1271
+ * indices to avoid duplicating vertex data you can use
1272
+ * cogl_get_rectangle_indices() to get a set of indices that can be
1273
+ * shared.
1274
+ *
1275
+ * This drawing api doesn't support high-level meta texture types such
1276
+ * as #CoglTexture2DSliced so it is the user's responsibility to
1277
+ * ensure that only low-level textures that can be directly sampled by
1278
+ * a GPU such as #CoglTexture2D, #CoglTextureRectangle or
1279
+ * #CoglTexture3D are associated with layers of the given @pipeline.
1280
+ *
1281
+ * <note>This api doesn't support any of the legacy global state
1282
+ * options such as cogl_set_depth_test_enabled(),
1283
+ * cogl_set_backface_culling_enabled() or cogl_program_use()</note>
1284
+ *
1285
+ * Stability: unstable
1286
+ * Since: 1.10
1287
+ * Deprecated: 1.16: Use #CoglPrimitive<!-- -->s and
1288
+ * cogl_primitive_draw() instead
1289
+ */
1290
+ COGL_DEPRECATED_IN_1_16_FOR (cogl_primitive_draw)
1291
+ void
1292
+ cogl_framebuffer_vdraw_indexed_attributes (CoglFramebuffer *framebuffer,
1293
+ CoglPipeline *pipeline,
1294
+ CoglVerticesMode mode,
1295
+ int first_vertex,
1296
+ int n_vertices,
1297
+ CoglIndices *indices,
1298
+ ...) COGL_GNUC_NULL_TERMINATED;
1299
+
1300
+ /**
1301
+ * cogl_framebuffer_draw_indexed_attributes:
1302
+ * @framebuffer: A destination #CoglFramebuffer
1303
+ * @pipeline: A #CoglPipeline state object
1304
+ * @mode: The #CoglVerticesMode defining the topology of vertices
1305
+ * @first_vertex: The vertex offset within the given attributes to draw from
1306
+ * @n_vertices: The number of vertices to draw from the given attributes
1307
+ * @indices: The array of indices used by the GPU to lookup attribute
1308
+ * data for each vertex.
1309
+ * @attributes: An array of pointers to #CoglAttribute<-- -->s defining vertex
1310
+ * geometry
1311
+ * @n_attributes: The number of attributes in the @attributes array.
1312
+ *
1313
+ * Behaves the same as cogl_framebuffer_draw_attributes() except that
1314
+ * instead of reading vertex data sequentially from the specified
1315
+ * @attributes the @indices provide an indirection for how the data
1316
+ * should be indexed allowing a random access order to be
1317
+ * specified.
1318
+ *
1319
+ * For example an indices array of [0, 1, 2, 0, 2, 3] could be used
1320
+ * used to draw two triangles (@mode = %COGL_VERTICES_MODE_TRIANGLES +
1321
+ * @n_vertices = 6) but only provide attribute data for the 4 corners
1322
+ * of a rectangle. When the GPU needs to read in each of the 6
1323
+ * vertices it will read the @indices array for each vertex in
1324
+ * sequence and use the index to look up the vertex attribute data. So
1325
+ * here you can see that first and fourth vertex will point to the
1326
+ * same data and third and fifth vertex will also point to shared
1327
+ * data.
1328
+ *
1329
+ * Drawing with indices can be a good way of minimizing the size of a
1330
+ * mesh by allowing you to avoid data for duplicate vertices because
1331
+ * multiple entries in the index array can refer back to a single
1332
+ * shared vertex.
1333
+ *
1334
+ * <note>The @indices array must be at least as long as @first_vertex
1335
+ * + @n_vertices otherwise the GPU will overrun the indices array when
1336
+ * looking up vertex data.</note>
1337
+ *
1338
+ * Since it's very common to want to draw a run of rectangles using
1339
+ * indices to avoid duplicating vertex data you can use
1340
+ * cogl_get_rectangle_indices() to get a set of indices that can be
1341
+ * shared.
1342
+ *
1343
+ * This drawing api doesn't support high-level meta texture types such
1344
+ * as #CoglTexture2DSliced so it is the user's responsibility to
1345
+ * ensure that only low-level textures that can be directly sampled by
1346
+ * a GPU such as #CoglTexture2D, #CoglTextureRectangle or
1347
+ * #CoglTexture3D are associated with layers of the given @pipeline.
1348
+ *
1349
+ * <note>This api doesn't support any of the legacy global state
1350
+ * options such as cogl_set_depth_test_enabled(),
1351
+ * cogl_set_backface_culling_enabled() or cogl_program_use()</note>
1352
+ *
1353
+ * Stability: unstable
1354
+ * Since: 1.10
1355
+ * Deprecated: 1.16: Use #CoglPrimitive<!-- -->s and
1356
+ * cogl_primitive_draw() instead
1357
+ */
1358
+ COGL_DEPRECATED_IN_1_16_FOR (cogl_primitive_draw)
1359
+ void
1360
+ cogl_framebuffer_draw_indexed_attributes (CoglFramebuffer *framebuffer,
1361
+ CoglPipeline *pipeline,
1362
+ CoglVerticesMode mode,
1363
+ int first_vertex,
1364
+ int n_vertices,
1365
+ CoglIndices *indices,
1366
+ CoglAttribute **attributes,
1367
+ int n_attributes);
1368
+
1369
+ /**
1370
+ * cogl_framebuffer_draw_rectangle:
1371
+ * @framebuffer: A destination #CoglFramebuffer
1372
+ * @pipeline: A #CoglPipeline state object
1373
+ * @x_1: X coordinate of the top-left corner
1374
+ * @y_1: Y coordinate of the top-left corner
1375
+ * @x_2: X coordinate of the bottom-right corner
1376
+ * @y_2: Y coordinate of the bottom-right corner
1377
+ *
1378
+ * Draws a rectangle to @framebuffer with the given @pipeline state
1379
+ * and with the top left corner positioned at (@x_1, @y_1) and the
1380
+ * bottom right corner positioned at (@x_2, @y_2).
1381
+ *
1382
+ * <note>The position is the position before the rectangle has been
1383
+ * transformed by the model-view matrix and the projection
1384
+ * matrix.</note>
1385
+ *
1386
+ * <note>If you want to describe a rectangle with a texture mapped on
1387
+ * it then you can use
1388
+ * cogl_framebuffer_draw_textured_rectangle().</note>
1389
+ *
1390
+ * Since: 1.10
1391
+ * Stability: unstable
1392
+ */
1393
+ void
1394
+ cogl_framebuffer_draw_rectangle (CoglFramebuffer *framebuffer,
1395
+ CoglPipeline *pipeline,
1396
+ float x_1,
1397
+ float y_1,
1398
+ float x_2,
1399
+ float y_2);
1400
+
1401
+ /**
1402
+ * cogl_framebuffer_draw_textured_rectangle:
1403
+ * @framebuffer: A destination #CoglFramebuffer
1404
+ * @pipeline: A #CoglPipeline state object
1405
+ * @x_1: x coordinate upper left on screen.
1406
+ * @y_1: y coordinate upper left on screen.
1407
+ * @x_2: x coordinate lower right on screen.
1408
+ * @y_2: y coordinate lower right on screen.
1409
+ * @s_1: S texture coordinate of the top-left coorner
1410
+ * @t_1: T texture coordinate of the top-left coorner
1411
+ * @s_2: S texture coordinate of the bottom-right coorner
1412
+ * @t_2: T texture coordinate of the bottom-right coorner
1413
+ *
1414
+ * Draws a textured rectangle to @framebuffer using the given
1415
+ * @pipeline state with the top left corner positioned at (@x_1, @y_1)
1416
+ * and the bottom right corner positioned at (@x_2, @y_2). The top
1417
+ * left corner will have texture coordinates of (@s_1, @t_1) and the
1418
+ * bottom right corner will have texture coordinates of (@s_2, @t_2).
1419
+ *
1420
+ * <note>The position is the position before the rectangle has been
1421
+ * transformed by the model-view matrix and the projection
1422
+ * matrix.</note>
1423
+ *
1424
+ * This is a high level drawing api that can handle any kind of
1425
+ * #CoglMetaTexture texture such as #CoglTexture2DSliced textures
1426
+ * which may internally be comprised of multiple low-level textures.
1427
+ * This is unlike low-level drawing apis such as cogl_primitive_draw()
1428
+ * which only support low level texture types that are directly
1429
+ * supported by GPUs such as #CoglTexture2D.
1430
+ *
1431
+ * <note>The given texture coordinates will only be used for the first
1432
+ * texture layer of the pipeline and if your pipeline has more than
1433
+ * one layer then all other layers will have default texture
1434
+ * coordinates of @s_1=0.0 @t_1=0.0 @s_2=1.0 @t_2=1.0 </note>
1435
+ *
1436
+ * The given texture coordinates should always be normalized such that
1437
+ * (0, 0) corresponds to the top left and (1, 1) corresponds to the
1438
+ * bottom right. To map an entire texture across the rectangle pass
1439
+ * in @s_1=0, @t_1=0, @s_2=1, @t_2=1.
1440
+ *
1441
+ * <note>Even if you have associated a #CoglTextureRectangle texture
1442
+ * with one of your @pipeline layers which normally implies working
1443
+ * with non-normalized texture coordinates this api should still be
1444
+ * passed normalized texture coordinates.</note>
1445
+ *
1446
+ * Since: 1.10
1447
+ * Stability: unstable
1448
+ */
1449
+ void
1450
+ cogl_framebuffer_draw_textured_rectangle (CoglFramebuffer *framebuffer,
1451
+ CoglPipeline *pipeline,
1452
+ float x_1,
1453
+ float y_1,
1454
+ float x_2,
1455
+ float y_2,
1456
+ float s_1,
1457
+ float t_1,
1458
+ float s_2,
1459
+ float t_2);
1460
+
1461
+ /**
1462
+ * cogl_framebuffer_draw_multitextured_rectangle:
1463
+ * @framebuffer: A destination #CoglFramebuffer
1464
+ * @pipeline: A #CoglPipeline state object
1465
+ * @x_1: x coordinate upper left on screen.
1466
+ * @y_1: y coordinate upper left on screen.
1467
+ * @x_2: x coordinate lower right on screen.
1468
+ * @y_2: y coordinate lower right on screen.
1469
+ * @tex_coords: (in) (array) (transfer none): An array containing groups of
1470
+ * 4 float values: [s_1, t_1, s_2, t_2] that are interpreted as two texture
1471
+ * coordinates; one for the top left texel, and one for the bottom right
1472
+ * texel. Each value should be between 0.0 and 1.0, where the coordinate
1473
+ * (0.0, 0.0) represents the top left of the texture, and (1.0, 1.0) the
1474
+ * bottom right.
1475
+ * @tex_coords_len: The length of the @tex_coords array. (For one layer
1476
+ * and one group of texture coordinates, this would be 4)
1477
+ *
1478
+ * Draws a textured rectangle to @framebuffer with the given @pipeline
1479
+ * state with the top left corner positioned at (@x_1, @y_1) and the
1480
+ * bottom right corner positioned at (@x_2, @y_2). As a pipeline may
1481
+ * contain multiple texture layers this interface lets you supply
1482
+ * texture coordinates for each layer of the pipeline.
1483
+ *
1484
+ * <note>The position is the position before the rectangle has been
1485
+ * transformed by the model-view matrix and the projection
1486
+ * matrix.</note>
1487
+ *
1488
+ * This is a high level drawing api that can handle any kind of
1489
+ * #CoglMetaTexture texture for the first layer such as
1490
+ * #CoglTexture2DSliced textures which may internally be comprised of
1491
+ * multiple low-level textures. This is unlike low-level drawing apis
1492
+ * such as cogl_primitive_draw() which only support low level texture
1493
+ * types that are directly supported by GPUs such as #CoglTexture2D.
1494
+ *
1495
+ * <note>This api can not currently handle multiple high-level meta
1496
+ * texture layers. The first layer may be a high level meta texture
1497
+ * such as #CoglTexture2DSliced but all other layers much be low
1498
+ * level textures such as #CoglTexture2D and additionally they
1499
+ * should be textures that can be sampled using normalized coordinates
1500
+ * (so not #CoglTextureRectangle textures).</note>
1501
+ *
1502
+ * The top left texture coordinate for layer 0 of any pipeline will be
1503
+ * (tex_coords[0], tex_coords[1]) and the bottom right coordinate will
1504
+ * be (tex_coords[2], tex_coords[3]). The coordinates for layer 1
1505
+ * would be (tex_coords[4], tex_coords[5]) (tex_coords[6],
1506
+ * tex_coords[7]) and so on...
1507
+ *
1508
+ * The given texture coordinates should always be normalized such that
1509
+ * (0, 0) corresponds to the top left and (1, 1) corresponds to the
1510
+ * bottom right. To map an entire texture across the rectangle pass
1511
+ * in tex_coords[0]=0, tex_coords[1]=0, tex_coords[2]=1,
1512
+ * tex_coords[3]=1.
1513
+ *
1514
+ * <note>Even if you have associated a #CoglTextureRectangle texture
1515
+ * which normally implies working with non-normalized texture
1516
+ * coordinates this api should still be passed normalized texture
1517
+ * coordinates.</note>
1518
+ *
1519
+ * The first pair of coordinates are for the first layer (with the
1520
+ * smallest layer index) and if you supply less texture coordinates
1521
+ * than there are layers in the current source material then default
1522
+ * texture coordinates (0.0, 0.0, 1.0, 1.0) are generated.
1523
+ *
1524
+ * Since: 1.10
1525
+ * Stability: unstable
1526
+ */
1527
+ void
1528
+ cogl_framebuffer_draw_multitextured_rectangle (CoglFramebuffer *framebuffer,
1529
+ CoglPipeline *pipeline,
1530
+ float x_1,
1531
+ float y_1,
1532
+ float x_2,
1533
+ float y_2,
1534
+ const float *tex_coords,
1535
+ int tex_coords_len);
1536
+
1537
+ /**
1538
+ * cogl_framebuffer_draw_rectangles:
1539
+ * @framebuffer: A destination #CoglFramebuffer
1540
+ * @pipeline: A #CoglPipeline state object
1541
+ * @coordinates: (in) (array) (transfer none): an array of coordinates
1542
+ * containing groups of 4 float values: [x_1, y_1, x_2, y_2] that are
1543
+ * interpreted as two position coordinates; one for the top left of
1544
+ * the rectangle (x1, y1), and one for the bottom right of the
1545
+ * rectangle (x2, y2).
1546
+ * @n_rectangles: number of rectangles defined in @coordinates.
1547
+ *
1548
+ * Draws a series of rectangles to @framebuffer with the given
1549
+ * @pipeline state in the same way that
1550
+ * cogl_framebuffer_draw_rectangle() does.
1551
+ *
1552
+ * The top left corner of the first rectangle is positioned at
1553
+ * (coordinates[0], coordinates[1]) and the bottom right corner is
1554
+ * positioned at (coordinates[2], coordinates[3]). The positions for
1555
+ * the second rectangle are (coordinates[4], coordinates[5]) and
1556
+ * (coordinates[6], coordinates[7]) and so on...
1557
+ *
1558
+ * <note>The position is the position before the rectangle has been
1559
+ * transformed by the model-view matrix and the projection
1560
+ * matrix.</note>
1561
+ *
1562
+ * As a general rule for better performance its recommended to use
1563
+ * this this API instead of calling
1564
+ * cogl_framebuffer_draw_textured_rectangle() separately for multiple
1565
+ * rectangles if all of the rectangles will be drawn together with the
1566
+ * same @pipeline state.
1567
+ *
1568
+ * Since: 1.10
1569
+ * Stability: unstable
1570
+ */
1571
+ void
1572
+ cogl_framebuffer_draw_rectangles (CoglFramebuffer *framebuffer,
1573
+ CoglPipeline *pipeline,
1574
+ const float *coordinates,
1575
+ unsigned int n_rectangles);
1576
+
1577
+ /**
1578
+ * cogl_framebuffer_draw_textured_rectangles:
1579
+ * @framebuffer: A destination #CoglFramebuffer
1580
+ * @pipeline: A #CoglPipeline state object
1581
+ * @coordinates: (in) (array) (transfer none): an array containing
1582
+ * groups of 8 float values: [x_1, y_1, x_2, y_2, s_1, t_1, s_2, t_2]
1583
+ * that have the same meaning as the arguments for
1584
+ * cogl_framebuffer_draw_textured_rectangle().
1585
+ * @n_rectangles: number of rectangles to @coordinates to draw
1586
+ *
1587
+ * Draws a series of rectangles to @framebuffer with the given
1588
+ * @pipeline state in the same way that
1589
+ * cogl_framebuffer_draw_textured_rectangle() does.
1590
+ *
1591
+ * <note>The position is the position before the rectangle has been
1592
+ * transformed by the model-view matrix and the projection
1593
+ * matrix.</note>
1594
+ *
1595
+ * This is a high level drawing api that can handle any kind of
1596
+ * #CoglMetaTexture texture such as #CoglTexture2DSliced textures
1597
+ * which may internally be comprised of multiple low-level textures.
1598
+ * This is unlike low-level drawing apis such as cogl_primitive_draw()
1599
+ * which only support low level texture types that are directly
1600
+ * supported by GPUs such as #CoglTexture2D.
1601
+ *
1602
+ * The top left corner of the first rectangle is positioned at
1603
+ * (coordinates[0], coordinates[1]) and the bottom right corner is
1604
+ * positioned at (coordinates[2], coordinates[3]). The top left
1605
+ * texture coordinate is (coordinates[4], coordinates[5]) and the
1606
+ * bottom right texture coordinate is (coordinates[6],
1607
+ * coordinates[7]). The coordinates for subsequent rectangles
1608
+ * are defined similarly by the subsequent coordinates.
1609
+ *
1610
+ * As a general rule for better performance its recommended to use
1611
+ * this this API instead of calling
1612
+ * cogl_framebuffer_draw_textured_rectangle() separately for multiple
1613
+ * rectangles if all of the rectangles will be drawn together with the
1614
+ * same @pipeline state.
1615
+ *
1616
+ * The given texture coordinates should always be normalized such that
1617
+ * (0, 0) corresponds to the top left and (1, 1) corresponds to the
1618
+ * bottom right. To map an entire texture across the rectangle pass
1619
+ * in tex_coords[0]=0, tex_coords[1]=0, tex_coords[2]=1,
1620
+ * tex_coords[3]=1.
1621
+ *
1622
+ * <note>Even if you have associated a #CoglTextureRectangle texture
1623
+ * which normally implies working with non-normalized texture
1624
+ * coordinates this api should still be passed normalized texture
1625
+ * coordinates.</note>
1626
+ *
1627
+ * Since: 1.10
1628
+ * Stability: unstable
1629
+ */
1630
+ void
1631
+ cogl_framebuffer_draw_textured_rectangles (CoglFramebuffer *framebuffer,
1632
+ CoglPipeline *pipeline,
1633
+ const float *coordinates,
1634
+ unsigned int n_rectangles);
1635
+
1636
+ /* XXX: Should we take an n_buffers + buffer id array instead of using
1637
+ * the CoglBufferBits type which doesn't seem future proof? */
1638
+ /**
1639
+ * cogl_framebuffer_discard_buffers:
1640
+ * @framebuffer: A #CoglFramebuffer
1641
+ * @buffers: A #CoglBufferBit mask of which ancillary buffers you want
1642
+ * to discard.
1643
+ *
1644
+ * Declares that the specified @buffers no longer need to be referenced
1645
+ * by any further rendering commands. This can be an important
1646
+ * optimization to avoid subsequent frames of rendering depending on
1647
+ * the results of a previous frame.
1648
+ *
1649
+ * For example; some tile-based rendering GPUs are able to avoid allocating and
1650
+ * accessing system memory for the depth and stencil buffer so long as these
1651
+ * buffers are not required as input for subsequent frames and that can save a
1652
+ * significant amount of memory bandwidth used to save and restore their
1653
+ * contents to system memory between frames.
1654
+ *
1655
+ * It is currently considered an error to try and explicitly discard the color
1656
+ * buffer by passing %COGL_BUFFER_BIT_COLOR. This is because the color buffer is
1657
+ * already implicitly discard when you finish rendering to a #CoglOnscreen
1658
+ * framebuffer, and it's not meaningful to try and discard the color buffer of
1659
+ * a #CoglOffscreen framebuffer since they are single-buffered.
1660
+ *
1661
+ *
1662
+ * Since: 1.8
1663
+ * Stability: unstable
1664
+ */
1665
+ void
1666
+ cogl_framebuffer_discard_buffers (CoglFramebuffer *framebuffer,
1667
+ unsigned long buffers);
1668
+
1669
+ /**
1670
+ * cogl_framebuffer_finish:
1671
+ * @framebuffer: A #CoglFramebuffer pointer
1672
+ *
1673
+ * This blocks the CPU until all pending rendering associated with the
1674
+ * specified framebuffer has completed. It's very rare that developers should
1675
+ * ever need this level of synchronization with the GPU and should never be
1676
+ * used unless you clearly understand why you need to explicitly force
1677
+ * synchronization.
1678
+ *
1679
+ * One example might be for benchmarking purposes to be sure timing
1680
+ * measurements reflect the time that the GPU is busy for not just the time it
1681
+ * takes to queue rendering commands.
1682
+ *
1683
+ * Stability: unstable
1684
+ * Since: 1.10
1685
+ */
1686
+ void
1687
+ cogl_framebuffer_finish (CoglFramebuffer *framebuffer);
1688
+
1689
+ /**
1690
+ * cogl_framebuffer_read_pixels_into_bitmap:
1691
+ * @framebuffer: A #CoglFramebuffer
1692
+ * @x: The x position to read from
1693
+ * @y: The y position to read from
1694
+ * @source: Identifies which auxillary buffer you want to read
1695
+ * (only COGL_READ_PIXELS_COLOR_BUFFER supported currently)
1696
+ * @bitmap: The bitmap to store the results in.
1697
+ *
1698
+ * This reads a rectangle of pixels from the given framebuffer where
1699
+ * position (0, 0) is the top left. The pixel at (x, y) is the first
1700
+ * read, and a rectangle of pixels with the same size as the bitmap is
1701
+ * read right and downwards from that point.
1702
+ *
1703
+ * Currently Cogl assumes that the framebuffer is in a premultiplied
1704
+ * format so if the format of @bitmap is non-premultiplied it will
1705
+ * convert it. To read the pixel values without any conversion you
1706
+ * should either specify a format that doesn't use an alpha channel or
1707
+ * use one of the formats ending in PRE.
1708
+ *
1709
+ * Return value: %TRUE if the read succeeded or %FALSE otherwise. The
1710
+ * function is only likely to fail if the bitmap points to a pixel
1711
+ * buffer and it could not be mapped.
1712
+ * Since: 1.10
1713
+ * Stability: unstable
1714
+ */
1715
+ CoglBool
1716
+ cogl_framebuffer_read_pixels_into_bitmap (CoglFramebuffer *framebuffer,
1717
+ int x,
1718
+ int y,
1719
+ CoglReadPixelsFlags source,
1720
+ CoglBitmap *bitmap);
1721
+
1722
+ /**
1723
+ * cogl_framebuffer_read_pixels:
1724
+ * @framebuffer: A #CoglFramebuffer
1725
+ * @x: The x position to read from
1726
+ * @y: The y position to read from
1727
+ * @width: The width of the region of rectangles to read
1728
+ * @height: The height of the region of rectangles to read
1729
+ * @format: The pixel format to store the data in
1730
+ * @pixels: The address of the buffer to store the data in
1731
+ *
1732
+ * This is a convenience wrapper around
1733
+ * cogl_framebuffer_read_pixels_into_bitmap() which allocates a
1734
+ * temporary #CoglBitmap to read pixel data directly into the given
1735
+ * buffer. The rowstride of the buffer is assumed to be the width of
1736
+ * the region times the bytes per pixel of the format. The source for
1737
+ * the data is always taken from the color buffer. If you want to use
1738
+ * any other rowstride or source, please use the
1739
+ * cogl_framebuffer_read_pixels_into_bitmap() function directly.
1740
+ *
1741
+ * The implementation of the function looks like this:
1742
+ *
1743
+ * |[
1744
+ * bitmap = cogl_bitmap_new_for_data (context,
1745
+ * width, height,
1746
+ * format,
1747
+ * /<!-- -->* rowstride *<!-- -->/
1748
+ * bpp * width,
1749
+ * pixels);
1750
+ * cogl_framebuffer_read_pixels_into_bitmap (framebuffer,
1751
+ * x, y,
1752
+ * COGL_READ_PIXELS_COLOR_BUFFER,
1753
+ * bitmap);
1754
+ * cogl_object_unref (bitmap);
1755
+ * ]|
1756
+ *
1757
+ * Return value: %TRUE if the read succeeded or %FALSE otherwise.
1758
+ * Since: 1.10
1759
+ * Stability: unstable
1760
+ */
1761
+ CoglBool
1762
+ cogl_framebuffer_read_pixels (CoglFramebuffer *framebuffer,
1763
+ int x,
1764
+ int y,
1765
+ int width,
1766
+ int height,
1767
+ CoglPixelFormat format,
1768
+ uint8_t *pixels);
1769
+
1770
+ /**
1771
+ * cogl_get_draw_framebuffer:
1772
+ *
1773
+ * Gets the current #CoglFramebuffer as set using
1774
+ * cogl_push_framebuffer()
1775
+ *
1776
+ * Return value: (transfer none): The current #CoglFramebuffer
1777
+ * Stability: unstable
1778
+ * Since: 1.8
1779
+ */
1780
+ CoglFramebuffer *
1781
+ cogl_get_draw_framebuffer (void);
1782
+
1783
+ #endif /* COGL_ENABLE_EXPERIMENTAL_API */
1784
+
1785
+ /* XXX: Note these are defined outside the COGL_ENABLE_EXPERIMENTAL_API guard since
1786
+ * otherwise the glib-mkenums stuff will get upset. */
1787
+
1788
+ uint32_t
1789
+ cogl_framebuffer_error_quark (void);
1790
+
1791
+ /**
1792
+ * COGL_FRAMEBUFFER_ERROR:
1793
+ *
1794
+ * An error domain for reporting #CoglFramebuffer exceptions
1795
+ */
1796
+ #define COGL_FRAMEBUFFER_ERROR (cogl_framebuffer_error_quark ())
1797
+
1798
+ typedef enum { /*< prefix=COGL_FRAMEBUFFER_ERROR >*/
1799
+ COGL_FRAMEBUFFER_ERROR_ALLOCATE
1800
+ } CoglFramebufferError;
1801
+
1802
+ /**
1803
+ * cogl_is_framebuffer:
1804
+ * @object: A #CoglObject pointer
1805
+ *
1806
+ * Gets whether the given object references a #CoglFramebuffer.
1807
+ *
1808
+ * Return value: %TRUE if the object references a #CoglFramebuffer
1809
+ * and %FALSE otherwise.
1810
+ * Since: 1.10
1811
+ * Stability: unstable
1812
+ */
1813
+ CoglBool
1814
+ cogl_is_framebuffer (void *object);
1815
+
1816
+ COGL_END_DECLS
1817
+
1818
+ #endif /* __COGL_FRAMEBUFFER_H */