.\" $Header: encoding,v 2.11 90/04/19 14:33:21 toddb Exp $
.OH ''''
.OH ''''
.EF ''''
.OF ''''
.ps 11
.nr PS 11
.de rV
.ds vS "\fBVersion \\$2\fP
..
.rV This-doc-tracks-VEX-protocol-version 5.8 $
\&
.sp 8
.ce 4
\s+2\fBVEX\fP\s-2
\s+1\fBVideo Extension to X Protocol Encoding\fP\s-1
\*(vS
.sp 6
.ce 4
.ps 11
.nr PS 11
\s-1Scott Hennes
.sp 6p
Tektronix, Inc.
\&
.ps 9
.nr PS 9
.sp 8
.LP
X Window System is a trademark of M.I.T.
.LP
Copyright \(co 1990
Tektronix, Inc.
.LP
.nh
Permission to use, copy, modify, and distribute this document
for any purpose and without fee is hereby granted, provided
that the above copyright notice appear in all copies and
that both that copyright notice and this permission
notice are retained, and that the name of Tektronix not be used
in advertising or publicity pertaining to this document without
specific, written prior permission.
Tektronix makes no representations about the suitability of this
document or the protocol defined in this document for any purpose.
It is provided ``as is'' without express or implied warranty.
.ps 10
.nr PS 10
.OH '\fBVEX Encoding\fP'\*(vS'\fBX11, Release 4\fP'
.EH '\fBVEX Encoding\fP'\*(vS'\fBX11, Release 4\fP'
.bp 1
.EF ''\fB % \fP''
.OF ''\fB % \fP''
.NH 1
Encoding
.LP
Please refer to the X11 Protocol Encoding document as this document uses
conventions established there.
.LP
The name of this extension is ``VEX''.
.LP
.SH
\s+2New types\s-2
.LP
VIDEOIN: CARD32
.LP
VIDEOOUT: CARD32
.LP
VIDEODEVICE: CARD32
.LP
VIDEOIO: VIDEOIN or VIDEOOUT
.LP
VIDEOID: VIDEOIN or VIDEOOUT or VIDEODEVICE
.LP
VREFERENCE: CARD32
.ne 10
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
TRANSITION
	4	VIDEOID		source
	4	VIDEOID		destination
	4	CARD32		matrix1
	4	CARD32		matrix2
.De
.ne 25
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
CONTROL
	4	ATOM		name
	4	VIDEOID or CARD32		id
	1			type
		0	Input
		1	Output
		2	Device
	1			setting-format
		8	LISTofINT8
		16	LISTofINT16
		32	LISTofINT32
	1			description-format
		8	LISTofINT8
		16	LISTofINT16
		32	LISTofINT32
	1			unused
	4	CARD32		setting-length
	4	n		description-length
	n	LISTofINT{8|16|32}		description-data
	p		unused, (p = pad(n))
.De
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
SETTING
	4	ATOM		name
	4	VIDEOID		id
	1			format
		8	LISTofINT8
		16	LISTofINT16
		32	LISTofINT32
	3			unused
	4	n		length
	n	LISTofINT{8|16|32}		value
	p		unused, (p = pad(n))
.De
.ne 3
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
FRACTION
	4	INT32	numerator
	4	INT32	denominator
.De
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
FRACTIONRANGE
	4	INT32		num-base
	4	INT32		num-inc
	4	INT32		num-limit
	4	INT32		denom-base
	4	INT32		denom-inc
	4	INT32		denom-limit
	1			num_type
		0	Geometric
		1	Linear
	1			denom_type
		0	Geometric
		1	Linear
	2			unused
.De
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
RECTANGLERANGE
	8	RECTANGLE		base
	8	RECTANGLE		limit
	2	INT16		x-inc
	2	INT16		y-inc
	2	CARD16		width-inc
	2	CARD16		height-inc
	1			type
		0	Geometric
		1	Linear
	3			unused
.De
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
PLACEMENT
	8	FRACTION		frame-rate
	28	RECTANGLERANGE		source
	28	RECTANGLERANGE		destination
	20	FRACTIONRANGE		x-scale
	20	FRACTIONRANGE		y-scale
	1	BOOL			identity-aspect
	3				unused
.De
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
VIDEOGEOMETRY
	8	FRACTION		signal-frame-rate
	8	FRACTION		signal-field-rate
	2	CARD16		signal-width
	2	CARD16		signal-height
	2	CARD16		concurrent-use
	2			unused
	4	VREFERENCE		reference-id
	4	n		number of placements
	104n	LISTofPLACEMENT		placement
.De
.ne 8
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
RENDERMODEL
	1	CARD8		depth
	1	BOOL		opaque
	2			unused
	4	VISUALID		visual-id
	4	CARD32		red-mask
	4	CARD32		green-mask
	4	CARD32		blue-mask
.De
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
OWNER
	4	WINDOW		wid
	4	VIDEOID		vid
.De
.bp
.SH
\s+2Requests\s-2
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
.PN QueryVideo
	1	CARD8		opcode
	1	5		video opcode
	2	2		request length
	4	WINDOW		wid
.De
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
 =>
 	1	1		Reply
	1			unused
	2	CARD16		sequence number
	4	 		length
	1	CARD8		screen
	1	CARD8		input-overlap
	1	CARD8		capture-overlap
	1	CARD8		io-overlap
	4	TIMESTAMP		timestamp
	1	CARD8		number of video-depths
	1	k		number of allowed-depths
	1	l		number of vin, inattr, and clip-sizes
	1	m		number of vout, and outattr
	1	n		number of vdev
	3		unused
	4	w		number of device-controls
	4	x		number of adjacency-matrices
	4	z		number of transitions
	j	LISTofDEPTH		video-depths
		6	VideoColor
		8	VideoGray
	20k	LISTofRENDERMODEL		allowed-depths
	4n	LISTofVIDEODEV		vdev
	p	LISTofVIDEOGEOMETRY		inattr
	q	LISTofVIDEOGEOMETRY		outattr
	(l*k)	LISTofCARD8		video-input-models
		1	VideoWindow
		2	VideoPixmap
	r		unused, (r = pad(l*k))
	(m*k)	LISTofCARD8		video-output-models
		1	VideoWindow
		2	VideoPixmap
		4	VideoComposite
	s		unused, (s = pad(m*k))
	32w	LISTofCONTROL		videoid-controls
	8l	LISTofRECTANGLE		clip-size
	2x(n+l)(n+m) LISTofLISTofCARD8		adjacency-matrices
		0	NotConnected
		255	Connected
		1-254	NExclusive
	y		unused, (y = pad(x(n+l)(n+m)))
	16z	LISTofTRANSITION		transitions
.De
.bp
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
.PN CreateVideo
	1	CARD8		opcode
	1	4		video opcode
	2	3		request length
	4	VIDEOIO		id
	4	VREFERENCE		reference
.De
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
.PN RenderVideo
	1	CARD8		opcode
	1	7		video opcode
	2	8		request length
	4	VIDEOIN		source
	4	DRAWABLE		destination
	2	INT16		src-x
	2	INT16		src-y
	2	INT16		dest-x
	2	INT16		dest-y
	2	CARD16		src-width
	2	CARD16		src-height
	2	CARD16		dest-width
	2	CARD16		dest-height
	1	BOOL		full-motion
	1	CARD8		priority
	1			subwindow-mode
		0	ClipByChildren
		1	IncludeInferiors
	1			unused
.De
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
.PN CaptureGraphics
	1	CARD8		opcode
	1	0		video opcode
	2	9		request length
	4	DRAWABLE		source
	4	VIDEOOUT		destination
	4	COLORMAP		cmap
	2	INT16		src-x
	2	INT16		src-y
	2	INT16		dest-x
	2	INT16		dest-y
	2	CARD16		src-width
	2	CARD16		src-height
	2	CARD16		dest-width
	2	CARD16		dest-height
	1	BOOL		full-motion
	1	CARD8		priority
	1			subwindow-mode
		0	ClipByChildren
		1	IncludeInferiors
	1			unused
.De
.bp
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
.PN StopVideo
	1	CARD8		opcode
	1	9		video opcode
	2	2+n		request length
	1	BITMASK		action
		#x01 Render
		#x02 Capture
	3		unused
	4n	LISTofDRAWABLE		idlist
.De
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
.PN QueryVideoControls
	1	CARD8		opcode
	1	6		video opcode
	2	2+n		request length
	4	VIDEOID		vid
	4n	LISTofATOM		control-list
.De
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
 =>
 	1	1		Reply
	1			unused
	2	CARD16		sequence number
	4	n 		length
	4	m		number of settings
	20			unused
	n	LISTofSETTING		settings
.De
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
.PN ChangeVideoControls
	1	CARD8		opcode
	1	3		video opcode
	2	2 +n		request length
	4	m		number of settings
	n	LISTofSETTING		setting
.De
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
.PN ChangeConnectivity
	1	CARD8		opcode
	1	1		video opcode
	2	6		request length
	1	CARD8		screen
	1	BOOL		connect
	2		unused
	4	TIMESTAMP		time
	4	CARD32		matrix
	4	CARD32		source
	4	CARD32		destination
.De
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
.PN ChangeOwnership
	1	CARD8		opcode
	1	2		video opcode
	2	1 + 8n		request length
	8n	LISTofOWNER		owners
.De
.ne 6
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
.PN SelectVideoEvents
	1	CARD8		opcode
	1	8		video opcode
	2	3		request length
	4	CARD32		id
	4	CARD32		mask
.De
.bp
.SH
\s+2Events\s-2
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
.PN VideoConnectivityState
	1	CARD8		type (5 + extension event base)
	1		unused
	2	CARD16		sequence number
	4	CARD32		screen
	4	CARD32		source
	4	CARD32		destination
	4	CARD32		matrix
	4	TIMESTAMP		time
	2	CARD16		count
	2	CARD16		change
		0	NotConnected
		1	Matrix0
		255	Connected
	4	CARD32		sequence
.De
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
.PN VideoChange
	1	CARD8		type (4 + extension event base)
	1		unused
	2	CARD16		sequence number
	4	CARD32		screen
	4	CARD32		vdev
	4	TIMESTAMP		time
	1			state
		0	Success
		1	Fail
	15			unused
.De
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
.PN VideoControl
	1	CARD8		type (0 + extension event base)
	1		unused
	2	CARD16		sequence number
	4	VIDEOID		vid
	4	ATOM		name
	4	TIMESTAMP		time
	1			state
		0	Success
		1	Fail
		2	Denied
	15			unused
.De
.ne 18
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
.PN VideoViolation
	1	CARD8		type (1 + extension event base)
	1		unused
	2	CARD16		sequence number
	4	DRAWABLE		id
	4	VIDEOIO		vid
	4	TIMESTAMP		time
	2	BITMASK		action (has n bits set to 1)
		#x0001 Scale
		#x0002 Placement
		#x0004 Clip
		#x0008 Overlap
	1			state
		0	Success
		1	Fail
		2	Subset
	13			unused
.De
.ne 11
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
.PN VideoSync
	1	CARD8		type (2 + extension event base)
	1		unused
	2	CARD16		sequence number
	4	DRAWABLE		id
	4	VIDEOIO		vid
	4	TIMESTAMP		server time
	1			state
		0	Acquired
		1	Lost
	15			unused
.De
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
.PN VideoOverride
	1	CARD8		type (3 + extension event base)
	1		unused
	2	CARD16		sequence number
	4	DRAWABLE		id
	4	VIDEOIO		vid
	4	TIMESTAMP		server time
	16			unused
.De
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
.PN VideoRequest
	1	CARD8		type (6 + extension event base)
	1			unused
	2	CARD16		sequence number
	4	CARD32		src
	4	CARD32		dst
	4	CARD32		cmap
	2	CARD16		srcx
	2	CARD16		srcy
	2	CARD16		dstx
	2	CARD16		dsty
	2	CARD16		src-width
	2	CARD16		src-height
	2	CARD16		dst-width
	2	CARD16		dst-height
.De
.LP
.Ds 0
.TA .2i .5i 1.5i 2.5i
.ta .2i .5i 1.5i 2.5i
.R
.PN VideoRequest (addendum)
	1	CARD8		type (7 + extension event base)
	1			unused
	2	CARD16		sequence number
	4	CARD32		time
	1			request
		0	Render
		1	Capture
	1	BOOL		redirect
	1	BOOL		full-motion
	1	CARD8		priority
	1			subwindow-mode
		0	ClipByChildren
		1	IncludeInferiors
	19			unused
.De

.\" This is necessary to produce a special entry for the last page
.\" so that the first page of the index is produced automatically
.IN "@LastPage" "Encoding" ""
