render.h 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. /*
  2. * Copyright © 2000 SuSE, Inc.
  3. *
  4. * Permission to use, copy, modify, distribute, and sell this software and its
  5. * documentation for any purpose is hereby granted without fee, provided that
  6. * the above copyright notice appear in all copies and that both that
  7. * copyright notice and this permission notice appear in supporting
  8. * documentation, and that the name of SuSE not be used in advertising or
  9. * publicity pertaining to distribution of the software without specific,
  10. * written prior permission. SuSE makes no representations about the
  11. * suitability of this software for any purpose. It is provided "as is"
  12. * without express or implied warranty.
  13. *
  14. * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
  15. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
  16. * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  17. * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
  18. * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
  19. * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  20. *
  21. * Author: Keith Packard, SuSE, Inc.
  22. */
  23. #ifndef _RENDER_H_
  24. #define _RENDER_H_
  25. #include <X11/Xdefs.h>
  26. typedef XID Glyph;
  27. typedef XID GlyphSet;
  28. typedef XID Picture;
  29. typedef XID PictFormat;
  30. #define RENDER_NAME "RENDER"
  31. #define RENDER_MAJOR 0
  32. #define RENDER_MINOR 11
  33. #define X_RenderQueryVersion 0
  34. #define X_RenderQueryPictFormats 1
  35. #define X_RenderQueryPictIndexValues 2 /* 0.7 */
  36. #define X_RenderQueryDithers 3
  37. #define X_RenderCreatePicture 4
  38. #define X_RenderChangePicture 5
  39. #define X_RenderSetPictureClipRectangles 6
  40. #define X_RenderFreePicture 7
  41. #define X_RenderComposite 8
  42. #define X_RenderScale 9
  43. #define X_RenderTrapezoids 10
  44. #define X_RenderTriangles 11
  45. #define X_RenderTriStrip 12
  46. #define X_RenderTriFan 13
  47. #define X_RenderColorTrapezoids 14
  48. #define X_RenderColorTriangles 15
  49. /* #define X_RenderTransform 16 */
  50. #define X_RenderCreateGlyphSet 17
  51. #define X_RenderReferenceGlyphSet 18
  52. #define X_RenderFreeGlyphSet 19
  53. #define X_RenderAddGlyphs 20
  54. #define X_RenderAddGlyphsFromPicture 21
  55. #define X_RenderFreeGlyphs 22
  56. #define X_RenderCompositeGlyphs8 23
  57. #define X_RenderCompositeGlyphs16 24
  58. #define X_RenderCompositeGlyphs32 25
  59. #define X_RenderFillRectangles 26
  60. /* 0.5 */
  61. #define X_RenderCreateCursor 27
  62. /* 0.6 */
  63. #define X_RenderSetPictureTransform 28
  64. #define X_RenderQueryFilters 29
  65. #define X_RenderSetPictureFilter 30
  66. /* 0.8 */
  67. #define X_RenderCreateAnimCursor 31
  68. /* 0.9 */
  69. #define X_RenderAddTraps 32
  70. /* 0.10 */
  71. #define X_RenderCreateSolidFill 33
  72. #define X_RenderCreateLinearGradient 34
  73. #define X_RenderCreateRadialGradient 35
  74. #define X_RenderCreateConicalGradient 36
  75. #define RenderNumberRequests (X_RenderCreateConicalGradient+1)
  76. #define BadPictFormat 0
  77. #define BadPicture 1
  78. #define BadPictOp 2
  79. #define BadGlyphSet 3
  80. #define BadGlyph 4
  81. #define RenderNumberErrors (BadGlyph+1)
  82. #define PictTypeIndexed 0
  83. #define PictTypeDirect 1
  84. #define PictOpMinimum 0
  85. #define PictOpClear 0
  86. #define PictOpSrc 1
  87. #define PictOpDst 2
  88. #define PictOpOver 3
  89. #define PictOpOverReverse 4
  90. #define PictOpIn 5
  91. #define PictOpInReverse 6
  92. #define PictOpOut 7
  93. #define PictOpOutReverse 8
  94. #define PictOpAtop 9
  95. #define PictOpAtopReverse 10
  96. #define PictOpXor 11
  97. #define PictOpAdd 12
  98. #define PictOpSaturate 13
  99. #define PictOpMaximum 13
  100. /*
  101. * Operators only available in version 0.2
  102. */
  103. #define PictOpDisjointMinimum 0x10
  104. #define PictOpDisjointClear 0x10
  105. #define PictOpDisjointSrc 0x11
  106. #define PictOpDisjointDst 0x12
  107. #define PictOpDisjointOver 0x13
  108. #define PictOpDisjointOverReverse 0x14
  109. #define PictOpDisjointIn 0x15
  110. #define PictOpDisjointInReverse 0x16
  111. #define PictOpDisjointOut 0x17
  112. #define PictOpDisjointOutReverse 0x18
  113. #define PictOpDisjointAtop 0x19
  114. #define PictOpDisjointAtopReverse 0x1a
  115. #define PictOpDisjointXor 0x1b
  116. #define PictOpDisjointMaximum 0x1b
  117. #define PictOpConjointMinimum 0x20
  118. #define PictOpConjointClear 0x20
  119. #define PictOpConjointSrc 0x21
  120. #define PictOpConjointDst 0x22
  121. #define PictOpConjointOver 0x23
  122. #define PictOpConjointOverReverse 0x24
  123. #define PictOpConjointIn 0x25
  124. #define PictOpConjointInReverse 0x26
  125. #define PictOpConjointOut 0x27
  126. #define PictOpConjointOutReverse 0x28
  127. #define PictOpConjointAtop 0x29
  128. #define PictOpConjointAtopReverse 0x2a
  129. #define PictOpConjointXor 0x2b
  130. #define PictOpConjointMaximum 0x2b
  131. /*
  132. * Operators only available in version 0.11
  133. */
  134. #define PictOpBlendMinimum 0x30
  135. #define PictOpMultiply 0x30
  136. #define PictOpScreen 0x31
  137. #define PictOpOverlay 0x32
  138. #define PictOpDarken 0x33
  139. #define PictOpLighten 0x34
  140. #define PictOpColorDodge 0x35
  141. #define PictOpColorBurn 0x36
  142. #define PictOpHardLight 0x37
  143. #define PictOpSoftLight 0x38
  144. #define PictOpDifference 0x39
  145. #define PictOpExclusion 0x3a
  146. #define PictOpHSLHue 0x3b
  147. #define PictOpHSLSaturation 0x3c
  148. #define PictOpHSLColor 0x3d
  149. #define PictOpHSLLuminosity 0x3e
  150. #define PictOpBlendMaximum 0x3e
  151. #define PolyEdgeSharp 0
  152. #define PolyEdgeSmooth 1
  153. #define PolyModePrecise 0
  154. #define PolyModeImprecise 1
  155. #define CPRepeat (1 << 0)
  156. #define CPAlphaMap (1 << 1)
  157. #define CPAlphaXOrigin (1 << 2)
  158. #define CPAlphaYOrigin (1 << 3)
  159. #define CPClipXOrigin (1 << 4)
  160. #define CPClipYOrigin (1 << 5)
  161. #define CPClipMask (1 << 6)
  162. #define CPGraphicsExposure (1 << 7)
  163. #define CPSubwindowMode (1 << 8)
  164. #define CPPolyEdge (1 << 9)
  165. #define CPPolyMode (1 << 10)
  166. #define CPDither (1 << 11)
  167. #define CPComponentAlpha (1 << 12)
  168. #define CPLastBit 12
  169. /* Filters included in 0.6 */
  170. #define FilterNearest "nearest"
  171. #define FilterBilinear "bilinear"
  172. /* Filters included in 0.10 */
  173. #define FilterConvolution "convolution"
  174. #define FilterFast "fast"
  175. #define FilterGood "good"
  176. #define FilterBest "best"
  177. #define FilterAliasNone -1
  178. /* Subpixel orders included in 0.6 */
  179. #define SubPixelUnknown 0
  180. #define SubPixelHorizontalRGB 1
  181. #define SubPixelHorizontalBGR 2
  182. #define SubPixelVerticalRGB 3
  183. #define SubPixelVerticalBGR 4
  184. #define SubPixelNone 5
  185. /* Extended repeat attributes included in 0.10 */
  186. #define RepeatNone 0
  187. #define RepeatNormal 1
  188. #define RepeatPad 2
  189. #define RepeatReflect 3
  190. #endif /* _RENDER_H_ */