use std::os::raw::{c_char, c_double, c_int, c_short, c_uint, c_ulong, c_ushort};
use super::xlib::{Atom, Bool, Colormap, Cursor, Display, Pixmap, Region, Visual, XRectangle, XID};
x11_link! { Xrender, xrender, ["libXrender.so.1", "libXrender.so"], 44,
pub fn XRenderAddGlyphs (_7: *mut Display, _6: c_ulong, _5: *const c_ulong, _4: *const XGlyphInfo, _3: c_int, _2: *const c_char, _1: c_int) -> (),
pub fn XRenderAddTraps (_6: *mut Display, _5: c_ulong, _4: c_int, _3: c_int, _2: *const XTrap, _1: c_int) -> (),
pub fn XRenderChangePicture (_4: *mut Display, _3: c_ulong, _2: c_ulong, _1: *const XRenderPictureAttributes) -> (),
pub fn XRenderComposite (_13: *mut Display, _12: c_int, _11: c_ulong, _10: c_ulong, _9: c_ulong, _8: c_int, _7: c_int, _6: c_int, _5: c_int, _4: c_int, _3: c_int, _2: c_uint, _1: c_uint) -> (),
pub fn XRenderCompositeDoublePoly (_12: *mut Display, _11: c_int, _10: c_ulong, _9: c_ulong, _8: *const XRenderPictFormat, _7: c_int, _6: c_int, _5: c_int, _4: c_int, _3: *const XPointDouble, _2: c_int, _1: c_int) -> (),
pub fn XRenderCompositeString16 (_12: *mut Display, _11: c_int, _10: c_ulong, _9: c_ulong, _8: *const XRenderPictFormat, _7: c_ulong, _6: c_int, _5: c_int, _4: c_int, _3: c_int, _2: *const c_ushort, _1: c_int) -> (),
pub fn XRenderCompositeString32 (_12: *mut Display, _11: c_int, _10: c_ulong, _9: c_ulong, _8: *const XRenderPictFormat, _7: c_ulong, _6: c_int, _5: c_int, _4: c_int, _3: c_int, _2: *const c_uint, _1: c_int) -> (),
pub fn XRenderCompositeString8 (_12: *mut Display, _11: c_int, _10: c_ulong, _9: c_ulong, _8: *const XRenderPictFormat, _7: c_ulong, _6: c_int, _5: c_int, _4: c_int, _3: c_int, _2: *const c_char, _1: c_int) -> (),
pub fn XRenderCompositeText16 (_11: *mut Display, _10: c_int, _9: c_ulong, _8: c_ulong, _7: *const XRenderPictFormat, _6: c_int, _5: c_int, _4: c_int, _3: c_int, _2: *const XGlyphElt16, _1: c_int) -> (),
pub fn XRenderCompositeText32 (_11: *mut Display, _10: c_int, _9: c_ulong, _8: c_ulong, _7: *const XRenderPictFormat, _6: c_int, _5: c_int, _4: c_int, _3: c_int, _2: *const XGlyphElt32, _1: c_int) -> (),
pub fn XRenderCompositeText8 (_11: *mut Display, _10: c_int, _9: c_ulong, _8: c_ulong, _7: *const XRenderPictFormat, _6: c_int, _5: c_int, _4: c_int, _3: c_int, _2: *const XGlyphElt8, _1: c_int) -> (),
pub fn XRenderCompositeTrapezoids (_9: *mut Display, _8: c_int, _7: c_ulong, _6: c_ulong, _5: *const XRenderPictFormat, _4: c_int, _3: c_int, _2: *const XTrapezoid, _1: c_int) -> (),
pub fn XRenderCompositeTriangles (_9: *mut Display, _8: c_int, _7: c_ulong, _6: c_ulong, _5: *const XRenderPictFormat, _4: c_int, _3: c_int, _2: *const XTriangle, _1: c_int) -> (),
pub fn XRenderCompositeTriFan (_9: *mut Display, _8: c_int, _7: c_ulong, _6: c_ulong, _5: *const XRenderPictFormat, _4: c_int, _3: c_int, _2: *const XPointFixed, _1: c_int) -> (),
pub fn XRenderCompositeTriStrip (_9: *mut Display, _8: c_int, _7: c_ulong, _6: c_ulong, _5: *const XRenderPictFormat, _4: c_int, _3: c_int, _2: *const XPointFixed, _1: c_int) -> (),
pub fn XRenderCreateAnimCursor (_3: *mut Display, _2: c_int, _1: *mut XAnimCursor) -> c_ulong,
pub fn XRenderCreateConicalGradient (_5: *mut Display, _4: *const XConicalGradient, _3: *const c_int, _2: *const XRenderColor, _1: c_int) -> c_ulong,
pub fn XRenderCreateCursor (_4: *mut Display, _3: c_ulong, _2: c_uint, _1: c_uint) -> c_ulong,
pub fn XRenderCreateGlyphSet (_2: *mut Display, _1: *const XRenderPictFormat) -> c_ulong,
pub fn XRenderCreateLinearGradient (_5: *mut Display, _4: *const XLinearGradient, _3: *const c_int, _2: *const XRenderColor, _1: c_int) -> c_ulong,
pub fn XRenderCreatePicture (_5: *mut Display, _4: c_ulong, _3: *const XRenderPictFormat, _2: c_ulong, _1: *const XRenderPictureAttributes) -> c_ulong,
pub fn XRenderCreateRadialGradient (_5: *mut Display, _4: *const XRadialGradient, _3: *const c_int, _2: *const XRenderColor, _1: c_int) -> c_ulong,
pub fn XRenderCreateSolidFill (_2: *mut Display, _1: *const XRenderColor) -> c_ulong,
pub fn XRenderFillRectangle (_8: *mut Display, _7: c_int, _6: c_ulong, _5: *const XRenderColor, _4: c_int, _3: c_int, _2: c_uint, _1: c_uint) -> (),
pub fn XRenderFillRectangles (_6: *mut Display, _5: c_int, _4: c_ulong, _3: *const XRenderColor, _2: *const XRectangle, _1: c_int) -> (),
pub fn XRenderFindFormat (_4: *mut Display, _3: c_ulong, _2: *const XRenderPictFormat, _1: c_int) -> *mut XRenderPictFormat,
pub fn XRenderFindStandardFormat (_2: *mut Display, _1: c_int) -> *mut XRenderPictFormat,
pub fn XRenderFindVisualFormat (_2: *mut Display, _1: *const Visual) -> *mut XRenderPictFormat,
pub fn XRenderFreeGlyphs (_4: *mut Display, _3: c_ulong, _2: *const c_ulong, _1: c_int) -> (),
pub fn XRenderFreeGlyphSet (_2: *mut Display, _1: c_ulong) -> (),
pub fn XRenderFreePicture (_2: *mut Display, _1: c_ulong) -> (),
pub fn XRenderParseColor (_3: *mut Display, _2: *mut c_char, _1: *mut XRenderColor) -> c_int,
pub fn XRenderQueryExtension (_3: *mut Display, _2: *mut c_int, _1: *mut c_int) -> c_int,
pub fn XRenderQueryFilters (_2: *mut Display, _1: c_ulong) -> *mut XFilters,
pub fn XRenderQueryFormats (_1: *mut Display) -> c_int,
pub fn XRenderQueryPictIndexValues (_3: *mut Display, _2: *const XRenderPictFormat, _1: *mut c_int) -> *mut XIndexValue,
pub fn XRenderQuerySubpixelOrder (_2: *mut Display, _1: c_int) -> c_int,
pub fn XRenderQueryVersion (_3: *mut Display, _2: *mut c_int, _1: *mut c_int) -> c_int,
pub fn XRenderReferenceGlyphSet (_2: *mut Display, _1: c_ulong) -> c_ulong,
pub fn XRenderSetPictureClipRectangles (_6: *mut Display, _5: c_ulong, _4: c_int, _3: c_int, _2: *const XRectangle, _1: c_int) -> (),
pub fn XRenderSetPictureClipRegion (_3: *mut Display, _2: c_ulong, _1: Region) -> (),
pub fn XRenderSetPictureFilter (_5: *mut Display, _4: c_ulong, _3: *const c_char, _2: *mut c_int, _1: c_int) -> (),
pub fn XRenderSetPictureTransform (_3: *mut Display, _2: c_ulong, _1: *mut XTransform) -> (),
pub fn XRenderSetSubpixelOrder (_3: *mut Display, _2: c_int, _1: c_int) -> c_int,
variadic:
globals:
}
pub type Glyph = XID;
pub type GlyphSet = XID;
pub type PictFormat = XID;
pub type Picture = XID;
pub type XDouble = c_double;
pub type XFixed = c_int;
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct _XAnimCursor {
pub cursor: Cursor,
pub delay: c_ulong,
}
pub type XAnimCursor = _XAnimCursor;
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct _XCircle {
pub x: XFixed,
pub y: XFixed,
pub radius: XFixed,
}
pub type XCircle = _XCircle;
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct _XConicalGradient {
pub center: XPointFixed,
pub angle: XFixed,
}
pub type XConicalGradient = _XConicalGradient;
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct _XFilters {
pub nfilter: c_int,
pub filter: *mut *mut c_char,
pub nalias: c_int,
pub alias: *mut c_short,
}
pub type XFilters = _XFilters;
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct _XGlyphElt8 {
pub glyphset: GlyphSet,
pub chars: *mut c_char,
pub nchars: c_int,
pub xOff: c_int,
pub yOff: c_int,
}
pub type XGlyphElt8 = _XGlyphElt8;
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct _XGlyphElt16 {
pub glyphset: GlyphSet,
pub chars: *mut c_ushort,
pub nchars: c_int,
pub xOff: c_int,
pub yOff: c_int,
}
pub type XGlyphElt16 = _XGlyphElt16;
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct _XGlyphElt32 {
pub glyphset: GlyphSet,
pub chars: *mut c_uint,
pub nchars: c_int,
pub xOff: c_int,
pub yOff: c_int,
}
pub type XGlyphElt32 = _XGlyphElt32;
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct _XGlyphInfo {
pub width: c_ushort,
pub height: c_ushort,
pub x: c_short,
pub y: c_short,
pub xOff: c_short,
pub yOff: c_short,
}
pub type XGlyphInfo = _XGlyphInfo;
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct _XIndexValue {
pub pixel: c_ulong,
pub red: c_ushort,
pub green: c_ushort,
pub blue: c_ushort,
pub alpha: c_ushort,
}
pub type XIndexValue = _XIndexValue;
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct _XLinearGradient {
pub p1: XPointFixed,
pub p2: XPointFixed,
}
pub type XLinearGradient = _XLinearGradient;
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct _XLineFixed {
pub p1: XPointFixed,
pub p2: XPointFixed,
}
pub type XLineFixed = _XLineFixed;
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct _XPointDouble {
pub x: XDouble,
pub y: XDouble,
}
pub type XPointDouble = _XPointDouble;
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct _XPointFixed {
pub x: XFixed,
pub y: XFixed,
}
pub type XPointFixed = _XPointFixed;
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct _XRadialGradient {
pub inner: XCircle,
pub outer: XCircle,
}
pub type XRadialGradient = _XRadialGradient;
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct XRenderColor {
pub red: c_ushort,
pub green: c_ushort,
pub blue: c_ushort,
pub alpha: c_ushort,
}
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct XRenderDirectFormat {
pub red: c_short,
pub redMask: c_short,
pub green: c_short,
pub greenMask: c_short,
pub blue: c_short,
pub blueMask: c_short,
pub alpha: c_short,
pub alphaMask: c_short,
}
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct XRenderPictFormat {
pub id: PictFormat,
pub type_: c_int,
pub depth: c_int,
pub direct: XRenderDirectFormat,
pub colormap: Colormap,
}
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct _XRenderPictureAttributes {
pub repeat: c_int,
pub alpha_map: Picture,
pub alpha_x_origin: c_int,
pub alpha_y_origin: c_int,
pub clip_x_origin: c_int,
pub clip_y_origin: c_int,
pub clip_mask: Pixmap,
pub graphics_exposures: Bool,
pub subwindow_mode: c_int,
pub poly_edge: c_int,
pub poly_mode: c_int,
pub dither: Atom,
pub component_alpha: Bool,
}
pub type XRenderPictureAttributes = _XRenderPictureAttributes;
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct _XSpanFix {
pub left: XFixed,
pub right: XFixed,
pub y: XFixed,
}
pub type XSpanFix = _XSpanFix;
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct _XTrap {
pub top: XSpanFix,
pub bottom: XSpanFix,
}
pub type XTrap = _XTrap;
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct _XTrapezoid {
pub top: XFixed,
pub bottom: XFixed,
pub left: XLineFixed,
pub right: XLineFixed,
}
pub type XTrapezoid = _XTrapezoid;
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct _XTriangle {
pub p1: XPointFixed,
pub p2: XPointFixed,
pub p3: XPointFixed,
}
pub type XTriangle = _XTriangle;
#[derive(Debug, Clone, Copy, PartialEq)]
#[repr(C)]
pub struct _XTransform {
pub matrix: [[XFixed; 3]; 3],
}
pub type XTransform = _XTransform;
pub const PictFormatID: c_ulong = 1 << 0;
pub const PictFormatType: c_ulong = 1 << 1;
pub const PictFormatDepth: c_ulong = 1 << 2;
pub const PictFormatRed: c_ulong = 1 << 3;
pub const PictFormatRedMask: c_ulong = 1 << 4;
pub const PictFormatGreen: c_ulong = 1 << 5;
pub const PictFormatGreenMask: c_ulong = 1 << 6;
pub const PictFormatBlue: c_ulong = 1 << 7;
pub const PictFormatBlueMask: c_ulong = 1 << 8;
pub const PictFormatAlpha: c_ulong = 1 << 9;
pub const PictFormatAlphaMask: c_ulong = 1 << 10;
pub const PictFormatColormap: c_ulong = 1 << 11;
pub const BadPictFormat: c_int = 0;
pub const BadPicture: c_int = 1;
pub const BadPictOp: c_int = 2;
pub const BadGlyphSet: c_int = 3;
pub const BadGlyph: c_int = 4;
pub const RenderNumberErrors: c_int = BadGlyph + 1;
pub const PictTypeIndexed: c_int = 0;
pub const PictTypeDirect: c_int = 1;
pub const PictOpMinimum: c_int = 0;
pub const PictOpClear: c_int = 0;
pub const PictOpSrc: c_int = 1;
pub const PictOpDst: c_int = 2;
pub const PictOpOver: c_int = 3;
pub const PictOpOverReverse: c_int = 4;
pub const PictOpIn: c_int = 5;
pub const PictOpInReverse: c_int = 6;
pub const PictOpOut: c_int = 7;
pub const PictOpOutReverse: c_int = 8;
pub const PictOpAtop: c_int = 9;
pub const PictOpAtopReverse: c_int = 10;
pub const PictOpXor: c_int = 11;
pub const PictOpAdd: c_int = 12;
pub const PictOpSaturate: c_int = 13;
pub const PictOpMaximum: c_int = 13;
pub const PictOpDisjointMinimum: c_int = 0x10;
pub const PictOpDisjointClear: c_int = 0x10;
pub const PictOpDisjointSrc: c_int = 0x11;
pub const PictOpDisjointDst: c_int = 0x12;
pub const PictOpDisjointOver: c_int = 0x13;
pub const PictOpDisjointOverReverse: c_int = 0x14;
pub const PictOpDisjointIn: c_int = 0x15;
pub const PictOpDisjointInReverse: c_int = 0x16;
pub const PictOpDisjointOut: c_int = 0x17;
pub const PictOpDisjointOutReverse: c_int = 0x18;
pub const PictOpDisjointAtop: c_int = 0x19;
pub const PictOpDisjointAtopReverse: c_int = 0x1a;
pub const PictOpDisjointXor: c_int = 0x1b;
pub const PictOpDisjointMaximum: c_int = 0x1b;
pub const PictOpConjointMinimum: c_int = 0x20;
pub const PictOpConjointClear: c_int = 0x20;
pub const PictOpConjointSrc: c_int = 0x21;
pub const PictOpConjointDst: c_int = 0x22;
pub const PictOpConjointOver: c_int = 0x23;
pub const PictOpConjointOverReverse: c_int = 0x24;
pub const PictOpConjointIn: c_int = 0x25;
pub const PictOpConjointInReverse: c_int = 0x26;
pub const PictOpConjointOut: c_int = 0x27;
pub const PictOpConjointOutReverse: c_int = 0x28;
pub const PictOpConjointAtop: c_int = 0x29;
pub const PictOpConjointAtopReverse: c_int = 0x2a;
pub const PictOpConjointXor: c_int = 0x2b;
pub const PictOpConjointMaximum: c_int = 0x2b;
pub const PictOpBlendMinimum: c_int = 0x30;
pub const PictOpMultiply: c_int = 0x30;
pub const PictOpScreen: c_int = 0x31;
pub const PictOpOverlay: c_int = 0x32;
pub const PictOpDarken: c_int = 0x33;
pub const PictOpLighten: c_int = 0x34;
pub const PictOpColorDodge: c_int = 0x35;
pub const PictOpColorBurn: c_int = 0x36;
pub const PictOpHardLight: c_int = 0x37;
pub const PictOpSoftLight: c_int = 0x38;
pub const PictOpDifference: c_int = 0x39;
pub const PictOpExclusion: c_int = 0x3a;
pub const PictOpHSLHue: c_int = 0x3b;
pub const PictOpHSLSaturation: c_int = 0x3c;
pub const PictOpHSLColor: c_int = 0x3d;
pub const PictOpHSLLuminosity: c_int = 0x3e;
pub const PictOpBlendMaximum: c_int = 0x3e;
pub const PictStandardARGB32: c_int = 0;
pub const PictStandardRGB24: c_int = 0;
pub const PictStandardA8: c_int = 2;
pub const PictStandardA4: c_int = 3;
pub const PictStandardA1: c_int = 4;
pub const PolyEdgeSharp: c_int = 0;
pub const PolyEdgeSmooth: c_int = 1;
pub const PolyModePrecise: c_int = 0;
pub const PolyModeImprecise: c_int = 1;
pub const CPRepeat: c_int = 1 << 0;
pub const CPAlphaMap: c_int = 1 << 1;
pub const CPAlphaXOrigin: c_int = 1 << 2;
pub const CPAlphaYOrigin: c_int = 1 << 3;
pub const CPClipXOrigin: c_int = 1 << 4;
pub const CPClipYOrigin: c_int = 1 << 5;
pub const CPClipMask: c_int = 1 << 6;
pub const CPGraphicsExposure: c_int = 1 << 7;
pub const CPSubwindowMode: c_int = 1 << 8;
pub const CPPolyEdge: c_int = 1 << 9;
pub const CPPolyMode: c_int = 1 << 10;
pub const CPDither: c_int = 1 << 11;
pub const CPComponentAlpha: c_int = 1 << 12;
pub const CPLastBit: c_int = 12;
pub const FilterNearest: &str = "nearest";
pub const FilterBilinear: &str = "bilinear";
pub const FilterConvolution: &str = "convolution";
pub const FilterFast: &str = "fast";
pub const FilterGood: &str = "good";
pub const FilterBest: &str = "best";
pub const SubPixelUnknown: c_int = 0;
pub const SubPixelHorizontalRGB: c_int = 1;
pub const SubPixelHorizontalBGR: c_int = 2;
pub const SubPixelVerticalRGB: c_int = 3;
pub const SubPixelVerticalBGR: c_int = 4;
pub const SubPixelNone: c_int = 5;
pub const RepeatNone: c_int = 0;
pub const RepeatNormal: c_int = 1;
pub const RepeatPad: c_int = 2;
pub const RepeatReflect: c_int = 3;