1// Package gsk was automatically generated by github.com/bnema/puregotk DO NOT EDIT
2package gsk
3
4import (
5 "github.com/bnema/puregotk/v4/gobject/types"
6)
7
8// The blend modes available for render nodes.
9//
10// The implementation of each blend mode is deferred to the
11// rendering pipeline.
12//
13// See <https://www.w3.org/TR/compositing-1/#blending> for more information
14// on blending and blend modes.
15type BlendMode int
16
17var xBlendModeGLibType func() types.GType
18
19func BlendModeGLibType() types.GType {
20 return xBlendModeGLibType()
21}
22
23const (
24
25 // The default blend mode, which specifies no blending
26 BlendModeDefaultValue BlendMode = 0
27 // The source color is multiplied by the destination
28 // and replaces the destination
29 BlendModeMultiplyValue BlendMode = 1
30 // Multiplies the complements of the destination and source
31 // color values, then complements the result.
32 BlendModeScreenValue BlendMode = 2
33 // Multiplies or screens the colors, depending on the
34 // destination color value. This is the inverse of hard-list
35 BlendModeOverlayValue BlendMode = 3
36 // Selects the darker of the destination and source colors
37 BlendModeDarkenValue BlendMode = 4
38 // Selects the lighter of the destination and source colors
39 BlendModeLightenValue BlendMode = 5
40 // Brightens the destination color to reflect the source color
41 BlendModeColorDodgeValue BlendMode = 6
42 // Darkens the destination color to reflect the source color
43 BlendModeColorBurnValue BlendMode = 7
44 // Multiplies or screens the colors, depending on the source color value
45 BlendModeHardLightValue BlendMode = 8
46 // Darkens or lightens the colors, depending on the source color value
47 BlendModeSoftLightValue BlendMode = 9
48 // Subtracts the darker of the two constituent colors from the lighter color
49 BlendModeDifferenceValue BlendMode = 10
50 // Produces an effect similar to that of the difference mode but lower in contrast
51 BlendModeExclusionValue BlendMode = 11
52 // Creates a color with the hue and saturation of the source color and the luminosity of the destination color
53 BlendModeColorValue BlendMode = 12
54 // Creates a color with the hue of the source color and the saturation and luminosity of the destination color
55 BlendModeHueValue BlendMode = 13
56 // Creates a color with the saturation of the source color and the hue and luminosity of the destination color
57 BlendModeSaturationValue BlendMode = 14
58 // Creates a color with the luminosity of the source color and the hue and saturation of the destination color
59 BlendModeLuminosityValue BlendMode = 15
60)
61
62// The corner indices used by `GskRoundedRect`.
63type Corner int
64
65var xCornerGLibType func() types.GType
66
67func CornerGLibType() types.GType {
68 return xCornerGLibType()
69}
70
71const (
72
73 // The top left corner
74 CornerTopLeftValue Corner = 0
75 // The top right corner
76 CornerTopRightValue Corner = 1
77 // The bottom right corner
78 CornerBottomRightValue Corner = 2
79 // The bottom left corner
80 CornerBottomLeftValue Corner = 3
81)
82
83// Specifies how paths are filled.
84//
85// Whether or not a point is included in the fill is determined by taking
86// a ray from that point to infinity and looking at intersections with the
87// path. The ray can be in any direction, as long as it doesn't pass through
88// the end point of a segment or have a tricky intersection such as
89// intersecting tangent to the path.
90//
91// (Note that filling is not actually implemented in this way. This
92// is just a description of the rule that is applied.)
93//
94// New entries may be added in future versions.
95type FillRule int
96
97var xFillRuleGLibType func() types.GType
98
99func FillRuleGLibType() types.GType {
100 return xFillRuleGLibType()
101}
102
103const (
104
105 // If the path crosses the ray from
106 // left-to-right, counts +1. If the path crosses the ray
107 // from right to left, counts -1. (Left and right are determined
108 // from the perspective of looking along the ray from the starting
109 // point.) If the total count is non-zero, the point will be filled.
110 FillRuleWindingValue FillRule = 0
111 // Counts the total number of
112 // intersections, without regard to the orientation of the contour. If
113 // the total number of intersections is odd, the point will be
114 // filled.
115 FillRuleEvenOddValue FillRule = 1
116)
117
118// Defines the types of the uniforms that `GskGLShaders` declare.
119//
120// It defines both what the type is called in the GLSL shader
121// code, and what the corresponding C type is on the Gtk side.
122type GLUniformType int
123
124var xGLUniformTypeGLibType func() types.GType
125
126func GLUniformTypeGLibType() types.GType {
127 return xGLUniformTypeGLibType()
128}
129
130const (
131
132 // No type, used for uninitialized or unspecified values.
133 GlUniformTypeNoneValue GLUniformType = 0
134 // A float uniform
135 GlUniformTypeFloatValue GLUniformType = 1
136 // A GLSL int / gint32 uniform
137 GlUniformTypeIntValue GLUniformType = 2
138 // A GLSL uint / guint32 uniform
139 GlUniformTypeUintValue GLUniformType = 3
140 // A GLSL bool / gboolean uniform
141 GlUniformTypeBoolValue GLUniformType = 4
142 // A GLSL vec2 / graphene_vec2_t uniform
143 GlUniformTypeVec2Value GLUniformType = 5
144 // A GLSL vec3 / graphene_vec3_t uniform
145 GlUniformTypeVec3Value GLUniformType = 6
146 // A GLSL vec4 / graphene_vec4_t uniform
147 GlUniformTypeVec4Value GLUniformType = 7
148)
149
150// Specifies how to render the start and end points of contours or
151// dashes when stroking.
152//
153// The default line cap style is `GSK_LINE_CAP_BUTT`.
154//
155// New entries may be added in future versions.
156//
157// <figure>
158//
159// <picture>
160// <source srcset="caps-dark.png" media="(prefers-color-scheme: dark)">
161// <img alt="Line Cap Styles" src="caps-light.png">
162// </picture>
163// <figcaption>GSK_LINE_CAP_BUTT, GSK_LINE_CAP_ROUND, GSK_LINE_CAP_SQUARE</figcaption>
164//
165// </figure>
166type LineCap int
167
168var xLineCapGLibType func() types.GType
169
170func LineCapGLibType() types.GType {
171 return xLineCapGLibType()
172}
173
174const (
175
176 // Start and stop the line exactly at the start
177 // and end point
178 LineCapButtValue LineCap = 0
179 // Use a round ending, the center of the circle
180 // is the start or end point
181 LineCapRoundValue LineCap = 1
182 // use squared ending, the center of the square
183 // is the start or end point
184 LineCapSquareValue LineCap = 2
185)
186
187// Specifies how to render the junction of two lines when stroking.
188//
189// The default line join style is `GSK_LINE_JOIN_MITER`.
190//
191// New entries may be added in future versions.
192//
193// <figure>
194//
195// <picture>
196// <source srcset="join-dark.png" media="(prefers-color-scheme: dark)">
197// <img alt="Line Join Styles" src="join-light.png">
198// </picture>
199// <figcaption>GSK_LINE_JOINT_MITER, GSK_LINE_JOINT_ROUND, GSK_LINE_JOIN_BEVEL</figcaption>
200//
201// </figure>
202type LineJoin int
203
204var xLineJoinGLibType func() types.GType
205
206func LineJoinGLibType() types.GType {
207 return xLineJoinGLibType()
208}
209
210const (
211
212 // Use a sharp angled corner
213 LineJoinMiterValue LineJoin = 0
214 // Use a round join, the center of the circle is
215 // the join point
216 LineJoinRoundValue LineJoin = 1
217 // use a cut-off join, the join is cut off at half
218 // the line width from the joint point
219 LineJoinBevelValue LineJoin = 2
220)
221
222// The mask modes available for mask nodes.
223type MaskMode int
224
225var xMaskModeGLibType func() types.GType
226
227func MaskModeGLibType() types.GType {
228 return xMaskModeGLibType()
229}
230
231const (
232
233 // Use the alpha channel of the mask
234 MaskModeAlphaValue MaskMode = 0
235 // Use the inverted alpha channel of the mask
236 MaskModeInvertedAlphaValue MaskMode = 1
237 // Use the luminance of the mask,
238 // multiplied by mask alpha
239 MaskModeLuminanceValue MaskMode = 2
240 // Use the inverted luminance of the mask,
241 // multiplied by mask alpha
242 MaskModeInvertedLuminanceValue MaskMode = 3
243)
244
245// Used to pick one of the four tangents at a given point on the path.
246//
247// Note that the directions for @GSK_PATH_FROM_START/@GSK_PATH_TO_END and
248// @GSK_PATH_TO_START/@GSK_PATH_FROM_END will coincide for smooth points.
249// Only sharp turns will exhibit four different directions.
250//
251// <picture>
252//
253// <source srcset="directions-dark.png" media="(prefers-color-scheme: dark)">
254// <img alt="Path Tangents" src="directions-light.png">
255//
256// </picture>
257type PathDirection int
258
259var xPathDirectionGLibType func() types.GType
260
261func PathDirectionGLibType() types.GType {
262 return xPathDirectionGLibType()
263}
264
265const (
266
267 // The tangent in path direction of the incoming side
268 // of the path
269 PathFromStartValue PathDirection = 0
270 // The tangent against path direction of the incoming side
271 // of the path
272 PathToStartValue PathDirection = 1
273 // The tangent in path direction of the outgoing side
274 // of the path
275 PathToEndValue PathDirection = 2
276 // The tangent against path direction of the outgoing
277 // side of the path
278 PathFromEndValue PathDirection = 3
279)
280
281// Describes the segments of a `GskPath`.
282//
283// More values may be added in the future.
284type PathOperation int
285
286var xPathOperationGLibType func() types.GType
287
288func PathOperationGLibType() types.GType {
289 return xPathOperationGLibType()
290}
291
292const (
293
294 // A move-to operation, with 1 point describing the target point.
295 PathMoveValue PathOperation = 0
296 // A close operation ending the current contour with a line back
297 // to the starting point. Two points describe the start and end of the line.
298 PathCloseValue PathOperation = 1
299 // A line-to operation, with 2 points describing the start and
300 // end point of a straight line.
301 PathLineValue PathOperation = 2
302 // A curve-to operation describing a quadratic Bézier curve
303 // with 3 points describing the start point, the control point and the end
304 // point of the curve.
305 PathQuadValue PathOperation = 3
306 // A curve-to operation describing a cubic Bézier curve with 4
307 // points describing the start point, the two control points and the end point
308 // of the curve.
309 PathCubicValue PathOperation = 4
310 // A rational quadratic Bézier curve with 3 points describing
311 // the start point, control point and end point of the curve. A weight for the
312 // curve will be passed, too.
313 PathConicValue PathOperation = 5
314)
315
316// The type of a node determines what the node is rendering.
317type RenderNodeType int
318
319var xRenderNodeTypeGLibType func() types.GType
320
321func RenderNodeTypeGLibType() types.GType {
322 return xRenderNodeTypeGLibType()
323}
324
325const (
326
327 // Error type. No node will ever have this type.
328 NotARenderNodeValue RenderNodeType = 0
329 // A node containing a stack of children
330 ContainerNodeValue RenderNodeType = 1
331 // A node drawing a `cairo_surface_t`
332 CairoNodeValue RenderNodeType = 2
333 // A node drawing a single color rectangle
334 ColorNodeValue RenderNodeType = 3
335 // A node drawing a linear gradient
336 LinearGradientNodeValue RenderNodeType = 4
337 // A node drawing a repeating linear gradient
338 RepeatingLinearGradientNodeValue RenderNodeType = 5
339 // A node drawing a radial gradient
340 RadialGradientNodeValue RenderNodeType = 6
341 // A node drawing a repeating radial gradient
342 RepeatingRadialGradientNodeValue RenderNodeType = 7
343 // A node drawing a conic gradient
344 ConicGradientNodeValue RenderNodeType = 8
345 // A node stroking a border around an area
346 BorderNodeValue RenderNodeType = 9
347 // A node drawing a `GdkTexture`
348 TextureNodeValue RenderNodeType = 10
349 // A node drawing an inset shadow
350 InsetShadowNodeValue RenderNodeType = 11
351 // A node drawing an outset shadow
352 OutsetShadowNodeValue RenderNodeType = 12
353 // A node that renders its child after applying a matrix transform
354 TransformNodeValue RenderNodeType = 13
355 // A node that changes the opacity of its child
356 OpacityNodeValue RenderNodeType = 14
357 // A node that applies a color matrix to every pixel
358 ColorMatrixNodeValue RenderNodeType = 15
359 // A node that repeats the child's contents
360 RepeatNodeValue RenderNodeType = 16
361 // A node that clips its child to a rectangular area
362 ClipNodeValue RenderNodeType = 17
363 // A node that clips its child to a rounded rectangle
364 RoundedClipNodeValue RenderNodeType = 18
365 // A node that draws a shadow below its child
366 ShadowNodeValue RenderNodeType = 19
367 // A node that blends two children together
368 BlendNodeValue RenderNodeType = 20
369 // A node that cross-fades between two children
370 CrossFadeNodeValue RenderNodeType = 21
371 // A node containing a glyph string
372 TextNodeValue RenderNodeType = 22
373 // A node that applies a blur
374 BlurNodeValue RenderNodeType = 23
375 // Debug information that does not affect the rendering
376 DebugNodeValue RenderNodeType = 24
377 // A node that uses OpenGL fragment shaders to render
378 GlShaderNodeValue RenderNodeType = 25
379 // A node drawing a `GdkTexture` scaled and filtered.
380 TextureScaleNodeValue RenderNodeType = 26
381 // A node that masks one child with another.
382 MaskNodeValue RenderNodeType = 27
383 // A node that fills a path.
384 FillNodeValue RenderNodeType = 28
385 // A node that strokes a path.
386 StrokeNodeValue RenderNodeType = 29
387 // A node that possibly redirects part of the scene graph to a subsurface.
388 SubsurfaceNodeValue RenderNodeType = 30
389 // A node that applies some function to each color component.
390 ComponentTransferNodeValue RenderNodeType = 31
391)
392
393// The filters used when scaling texture data.
394//
395// The actual implementation of each filter is deferred to the
396// rendering pipeline.
397type ScalingFilter int
398
399var xScalingFilterGLibType func() types.GType
400
401func ScalingFilterGLibType() types.GType {
402 return xScalingFilterGLibType()
403}
404
405const (
406
407 // linear interpolation filter
408 ScalingFilterLinearValue ScalingFilter = 0
409 // nearest neighbor interpolation filter
410 ScalingFilterNearestValue ScalingFilter = 1
411 // linear interpolation along each axis,
412 // plus mipmap generation, with linear interpolation along the mipmap
413 // levels
414 ScalingFilterTrilinearValue ScalingFilter = 2
415)
416
417// Errors that can happen during (de)serialization.
418type SerializationError int
419
420var xSerializationErrorGLibType func() types.GType
421
422func SerializationErrorGLibType() types.GType {
423 return xSerializationErrorGLibType()
424}
425
426const (
427
428 // The format can not be identified
429 SerializationUnsupportedFormatValue SerializationError = 0
430 // The version of the data is not
431 // understood
432 SerializationUnsupportedVersionValue SerializationError = 1
433 // The given data may not exist in
434 // a proper serialization
435 SerializationInvalidDataValue SerializationError = 2
436)
437
438// The categories of matrices relevant for GSK and GTK.
439//
440// Note that any category includes matrices of all later categories.
441// So if you want to for example check if a matrix is a 2D matrix,
442// `category >= GSK_TRANSFORM_CATEGORY_2D` is the way to do this.
443//
444// Also keep in mind that rounding errors may cause matrices to not
445// conform to their categories. Otherwise, matrix operations done via
446// multiplication will not worsen categories. So for the matrix
447// multiplication `C = A * B`, `category(C) = MIN (category(A), category(B))`.
448type TransformCategory int
449
450var xTransformCategoryGLibType func() types.GType
451
452func TransformCategoryGLibType() types.GType {
453 return xTransformCategoryGLibType()
454}
455
456const (
457
458 // The category of the matrix has not been
459 // determined.
460 TransformCategoryUnknownValue TransformCategory = 0
461 // Analyzing the matrix concluded that it does
462 // not fit in any other category.
463 TransformCategoryAnyValue TransformCategory = 1
464 // The matrix is a 3D matrix. This means that
465 // the w column (the last column) has the values (0, 0, 0, 1).
466 TransformCategory3dValue TransformCategory = 2
467 // The matrix is a 2D matrix. This is equivalent
468 // to graphene_matrix_is_2d() returning %TRUE. In particular, this
469 // means that Cairo can deal with the matrix.
470 TransformCategory2dValue TransformCategory = 3
471 // The matrix is a combination of 2D scale
472 // and 2D translation operations. In particular, this means that any
473 // rectangle can be transformed exactly using this matrix.
474 TransformCategory2dAffineValue TransformCategory = 4
475 // The matrix is a 2D translation.
476 TransformCategory2dTranslateValue TransformCategory = 5
477 // The matrix is the identity matrix.
478 TransformCategoryIdentityValue TransformCategory = 6
479)