<?xml version="1.0" encoding="utf-8" standalone="yes"?>

<?xml-stylesheet href="./_c74_ref.xsl" type="text/xsl"?>

<!--This is an automatically generated file. DO NOT EDIT THIS FILE DIRECTLY. Rather, use the _ref.xml files found in the 'edits' folder.-->
<c74object name="jit.gl.pix" module="jit" category="Jitter Code Generation">
	<digest>
		Generates pixel processing shaders from a gen patcher
	</digest>
	<description>
		The <o>jit.gl.pix</o> object generates new pixel processing shaders from a patcher. <o>jit.gl.pix</o> is essentially a <o>jit.gl.slab</o> object whose shader files are generated from <link type="vignette" module="gen" name="gen_overview">gen</link> patchers.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			Jitter
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="INLET_TYPE">
			<digest>
				messages to this 3d object
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="INLET_TYPE">
			<digest>
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="OUTLET_TYPE">
			<digest>
				matrix output if enabled
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="1" type="OUTLET_TYPE">
			<digest>
				dumpout
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--OB3D-->
	<OB3D />
	<!--MESSAGES-->
	<methodlist>
		<method name="anything">
			<arglist />
			<digest>
				Set parameter values in the Gen patcher
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="(drag)">
			<digest>
				Drag and drop a .genjit Gen patcher
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="compile">
			<arglist />
			<digest>
				Compile the Gen patcher
			</digest>
			<description>
				Compile the Gen patcher
			</description>
		</method>
		<method name="(mouse)">
			<digest>
				Double-click to open gen patcher window
			</digest>
			<description>
			</description>
		</method>
		<method name="exportcode">
			<arglist>
				<arg name="target" optional="1" type="symbol" />
			</arglist>
			<digest>
				Export gen patcher as shader code.
			</digest>
			<description>
				Export a gen patcher as shader code.  With no arguments, jit.gl.pix will export a standard Jitter JXS shader file with GLSL code. The optional arguments can be either 'jxs' or 'webgl' or 'isf'.
				<br />
				<br />
				In the 'webgl' case, jit.gl.pix will export an .html file suitable for loading in a
				<a href="https://www.khronos.org/webgl/">
					WebGL context
				</a>
				. The code uses
				<a href="http://twgljs.org">
					TWGL
				</a>
				as a helper library and requires the
				<a href="https://github.com/greggman/twgl.js/blob/v4.4.0/dist/4.x/twgl-full.min.js">
					twgl-full.min.js
				</a>
				file be in the same directory as the exported html file.
				<br />
				<br />
				In the 'isf' case, jit.gl.pix will export a .fs fragment shader suitable for loading in a
				<a href="https://www.interactiveshaderformat.com">
					ISF (Interactive Shader Format) context
				</a>
			</description>
		</method>
		<method name="full_source_code">
			<arglist />
			<digest>
				Opens an editor window with generated source code
			</digest>
			<description>
				Opens an <link type="vignette" module="core" name="external_editor">editor window</link> with the generated source code formatted as a JXS file.
			</description>
		</method>
		<method name="getparamdefault">
			<arglist />
			<digest>
				Sends the default data values for the indicated shader parameter for the internal <o>jit.gl.shader</o> object out the right-most outlet.
			</digest>
			<description>
				Sends the default data values for the indicated shader parameter for the internal <o>jit.gl.shader</o> object out the right-most outlet.
			</description>
		</method>
		<method name="getparamdescription">
			<arglist />
			<digest>
				Get a parameter description
			</digest>
			<description>
				Get a parameter description
			</description>
		</method>
		<method name="getparamlist">
			<arglist />
			<digest>
				Sends the names of all the internal <o>jit.gl.shader</o> object shader parameters out the right-most outlet.
			</digest>
			<description>
				Sends the names of all the internal <o>jit.gl.shader</o> object shader parameters out the right-most outlet.
			</description>
		</method>
		<method name="getparamtype">
			<arglist />
			<digest>
				Sends the name of the datatype for the indicated shader parameter for the internal <o>jit.gl.shader</o> object out the right-most outlet.
			</digest>
			<description>
				Sends the name of the datatype for the indicated shader parameter for the internal <o>jit.gl.shader</o> object out the right-most outlet.
			</description>
		</method>
		<method name="getparamval">
			<arglist />
			<digest>
				Sends the data values for the indicated shader parameter for the internal <o>jit.gl.shader</o> object out the right-most outlet.
			</digest>
			<description>
				Sends the data values for the indicated shader parameter for the internal <o>jit.gl.shader</o> object out the right-most outlet.
			</description>
		</method>
		<method name="open">
			<arglist />
			<digest>
				Open the Gen patcher window
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="param">
			<arglist />
			<digest>
				Sets the given shader parameter with the given atom values as defined in a JXS (Jitter shader)
			</digest>
			<description>
				Sets the given shader parameter with the given atom values as defined in a JXS (Jitter shader) file.
			</description>
		</method>
		<method name="sendinput">
			<arglist>
				<arg name="index" optional="1" type="int" />
				<arg name="message" optional="0" type="symbol" />
				<arg name="values" optional="1" type="list" />
			</arglist>
			<digest>
				Sends an input texture a message
			</digest>
			<description>
				Sends an input <o>jit.gl.texture</o> a message. If the first arg is an int, it specifies the texture index to send the message, otherwise all input textures receive the message.
			</description>
		</method>
		<method name="sendoutput">
			<arglist>
				<arg name="message" optional="0" type="symbol" />
				<arg name="values" optional="1" type="list" />
			</arglist>
			<digest>
				Sends the output textures a message
			</digest>
			<description>
				Sends the output <o>jit.gl.texture</o> objects a message.
			</description>
		</method>
		<method name="sendshader">
			<arglist>
				<arg name="message" optional="0" type="symbol" />
				<arg name="values" optional="1" type="list" />
			</arglist>
			<digest>
				Sends the internal shader a message
			</digest>
			<description>
				Sends the internal <o>jit.gl.shader</o> object a message
			</description>
		</method>
		<method name="wclose">
			<arglist />
			<digest>
				Close the Gen patcher
			</digest>
			<description>
				Close the Gen patcher
			</description>
		</method>
	</methodlist>
	<jittermethodlist>
		<jittermethod name="bang" />
		<jittermethod name="draw" />
		<jittermethod name="drawimmediate" />
		<jittermethod name="drawraw" />
		<jittermethod name="exportattrs" />
		<jittermethod name="exportsummary" />
		<jittermethod name="getattributes" />
		<jittermethod name="getstate" />
		<jittermethod name="importattrs" />
		<jittermethod name="jit_gl_texture" />
		<jittermethod name="jit_matrix" />
		<jittermethod name="summary" />
	</jittermethodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="activeinput" get="1" set="1" type="int" size="1">
			<digest>
				Current input number
			</digest>
			<description>
				The current input used for texture and matrix messages (default = 0). Useful when calling input messages from Java or JavaScript.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Active Input" />
			</attributelist>
		</attribute>
		<attribute name="adapt" get="1" set="1" type="int" size="1">
			<digest>
				Enable adapt to input
			</digest>
			<description>
				Enable adapt to input (default = 1). When enabled the texture output dimensions will match the input dimensions.
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="default" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="label" get="1" set="1" type="symbol" size="3" value="Adapt To Input" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="colormode" get="1" set="1" type="symbol" size="1">
			<digest>
				Texture color mode
			</digest>
			<description>
				Texture color mode (default = argb)
			</description>
			<attributelist>
				<attribute name="enumvals" get="1" set="1" type="atom" size="2">
					<enumlist>
						<enum name="argb">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="uyvy">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Texture Colormode" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enum" />
			</attributelist>
		</attribute>
		<attribute name="depth" get="1" set="1" type="int" size="1">
			<digest>
				The depth or z-offset for the slab geometry.
			</digest>
			<description>
				The depth or z-offset for the slab geometry. (default = 0.0)
			</description>
			<attributelist>
				<attribute name="invisible" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="obsolete" get="1" set="1" type="int" size="1" value="1" />
			</attributelist>
		</attribute>
		<attribute name="dim" get="1" set="1" type="int" size="2">
			<digest>
				Texture output dimensions
			</digest>
			<description>
				The texture output dimensions when <at>adapt</at> is disabled (default = 256 256)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Texture Dim" />
			</attributelist>
		</attribute>
		<attribute name="dimscale" get="1" set="1" type="float" size="2">
			<digest>
				Output dimension scaling factor
			</digest>
			<description>
				The output dimension scaling factor of the output (default = 1 1). Useful for upsampling or downsampling texture output.
				<br />
				output.dim = input.dim*dimscale
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Dim Scale Factor" />
			</attributelist>
		</attribute>
		<attribute name="dirty" get="1" set="0" type="int" size="1">
			<digest>
				Gen patcher dirty flag
			</digest>
			<description>
				Gen patcher dirty flag
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Dirty" />
			</attributelist>
		</attribute>
		<attribute name="displaylist" get="1" set="1" type="int" size="1">
			<digest>
				Displaylist
			</digest>
			<description>
				TEXT_HERE
			</description>
			<attributelist>
				<attribute name="invisible" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="obsolete" get="1" set="1" type="int" size="1" value="1" />
			</attributelist>
		</attribute>
		<attribute name="edges" get="1" set="1" type="int" size="1">
			<digest>
				Edges
			</digest>
			<description>
				TEXT_HERE
			</description>
			<attributelist>
				<attribute name="invisible" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="obsolete" get="1" set="1" type="int" size="1" value="1" />
			</attributelist>
		</attribute>
		<attribute name="exportfolder" get="1" set="1" type="symbol" size="1">
			<digest>
				Folder to export into
			</digest>
			<description>
				Sets the folder to export gen patchers into when using the <m>exportcode</m> message.
			</description>
			<attributelist>
				<attribute name="category" get="1" set="1" type="symbol" size="1" value="Export" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Folder to export into" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="filefolder" />
			</attributelist>
		</attribute>
		<attribute name="file" get="1" set="1" type="symbol" size="1">
			<digest>
				File
			</digest>
			<description>
				TEXT_HERE
			</description>
			<attributelist>
				<attribute name="invisible" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="File" />
				<attribute name="obsolete" get="1" set="1" type="int" size="1" value="1" />
			</attributelist>
		</attribute>
		<attribute name="gen" get="1" set="1" type="symbol" size="1">
			<digest>
				The name of the gen patcher to use.
			</digest>
			<description>
				The name of the gen patcher to use.
			</description>
			<attributelist>
				<attribute name="default" get="1" set="1" type="symbol" size="1" value="" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Gen" />
			</attributelist>
		</attribute>
		<attribute name="inputs" get="1" set="1" type="int" size="1">
			<digest>
				Input count (default = 2)
			</digest>
			<description>
				Input count (default = 2)
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Inputs" />
			</attributelist>
		</attribute>
		<attribute name="out_name" get="1" set="0" type="symbol" size="32">
			<digest>
				Output texture name
			</digest>
			<description>
				TEXT_HERE
			</description>
			<attributelist />
		</attribute>
		<attribute name="outputs" get="1" set="1" type="int" size="1">
			<digest>
				Number of texture outputs
			</digest>
			<description>
				Number of texture outputs (default = 1). Texture outputs correspond to gen patcher outs.
			</description>
			<attributelist>
				<attribute name="introduced" get="1" set="1" type="symbol" size="1" value="7.0.0" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Outputs" />
			</attributelist>
		</attribute>
		<attribute name="rect" get="1" set="1" type="float" size="4">
			<digest>
				Geometry rectangle
			</digest>
			<description>
				Geometry rectangle (default = 0 0 1 1). The four values represent normalized coordinates for the left, bottom, right and top sides of the geometry rectangle. To flip the image horizontally use <i>rect 1 0 0 1</i> or to flip vertically use <i>rect 0 1 1 0</i>.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Rectangle Bounds" />
			</attributelist>
		</attribute>
		<attribute name="rectangle" get="1" set="1" type="int" size="1">
			<digest>
				Enable texture rectangle mode (default = 1)
			</digest>
			<description>
				Enable texture rectangle mode on internal texture objects(default = 1). When enabled the internal GL texture is treated as a rectangular texture, and must be referenced using sampler2DRect and sampled using texture2DRect when sampled from a GLSL shader. When disabled the texture dimensions are upsampled to the nearest power of two value, and must be referenced and sampled using sampler2D and texture2D. Certain texture attributes and GLSL effects require rectangle mode disabled.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Rectangle" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="thru" get="1" set="1" type="int" size="1">
			<digest>
				Enable thru mode
			</digest>
			<description>
				Enable thru mode (default = 1). When the flag is set, texture output is sent whenever input is received.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Thru" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="shape" get="1" set="1" type="int" size="1">
			<digest>
				Shape
			</digest>
			<description>
				TEXT_HERE
			</description>
			<attributelist>
				<attribute name="invisible" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="obsolete" get="1" set="1" type="int" size="1" value="1" />
			</attributelist>
		</attribute>
		<attribute name="subdiv" get="1" set="1" type="int" size="1">
			<digest>
				Subdiv
			</digest>
			<description>
				TEXT_HERE
			</description>
			<attributelist>
				<attribute name="invisible" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="obsolete" get="1" set="1" type="int" size="1" value="1" />
			</attributelist>
		</attribute>
		<attribute name="t" get="1" set="1" type="symbol" size="1">
			<digest>
				Gen patcher title
			</digest>
			<description>
				Gen patcher title
			</description>
		</attribute>
		<attribute name="texrect" get="1" set="1" type="int" size="1">
			<digest>
				Texture rectangle
			</digest>
			<description>
				Texture rectangle mapping values (default = 0 0 1 1...). The four values represent texture mapping coordinates for the left, bottom, right and top sides of the geometry rectangle, and can be used to easily crop the input image. There are four values for each texture input.
			</description>
			<attributelist>
				<attribute name="invisible" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="obsolete" get="1" set="1" type="int" size="1" value="1" />
			</attributelist>
		</attribute>
		<attribute name="title" get="1" set="1" type="symbol" size="1">
			<digest>
				Gen patcher title
			</digest>
			<description>
				Gen patcher title
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Title" />
			</attributelist>
		</attribute>
		<attribute name="type" get="1" set="1" type="symbol" size="1">
			<digest>
				Output texture data type
			</digest>
			<description>
				The output texture data type (default = auto). When type is <ar>auto</ar> the type is set by the input texture or matrix type.
			</description>
			<attributelist>
				<attribute name="enumvals" get="1" set="1" type="atom" size="7">
					<enumlist>
						<enum name="auto">
							<digest>
								Adapt to input data type
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="char">
							<digest>
								8bit unsigned byte
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="long">
							<digest>
								32bit integer
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="half">
							<digest>
								16bit float
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="float">
							<digest>
								32bit float
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="float16">
							<digest>
								16bit float
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="float32">
							<digest>
								32bit float
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Texture Type" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enum" />
			</attributelist>
		</attribute>
		<attribute name="wrap" get="1" set="1" type="int" size="1">
			<digest>
				Wrap
			</digest>
			<description>
				TEXT_HERE
			</description>
			<attributelist>
				<attribute name="invisible" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="obsolete" get="1" set="1" type="int" size="1" value="1" />
			</attributelist>
		</attribute>
	</attributelist>
	<jitterattributelist>
		<jitterattribute name="antialias" />
		<jitterattribute name="automatic" />
		<jitterattribute name="aux_color" />
		<jitterattribute name="blend" />
		<jitterattribute name="blend_enable" />
		<jitterattribute name="blend_mode" />
		<jitterattribute name="capture" />
		<jitterattribute name="depth_clear" />
		<jitterattribute name="depth_enable" />
		<jitterattribute name="depth_write" />
		<jitterattribute name="drawto" />
		<jitterattribute name="enable" />
		<jitterattribute name="gl_color" />
		<jitterattribute name="layer" />
		<jitterattribute name="material" />
		<jitterattribute name="name" />
		<jitterattribute name="shader" />
		<jitterattribute name="smooth_shading" />
		<jitterattribute name="tex_map" />
		<jitterattribute name="tex_plane_s" />
		<jitterattribute name="tex_plane_t" />
		<jitterattribute name="texanchor" />
		<jitterattribute name="texrotate" />
		<jitterattribute name="texture" />
		<jitterattribute name="texzoom" />
	</jitterattributelist>
	<!--EXAMPLE-->
	<examplelist>
		<example img="jit.gl.pix.png" caption="Generates pixel processing shaders from a patcher" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="jit.gen" />
		<seealso name="jit.pix" />
		<seealso name="jit.gl.slab" />
		<seealso name="jit.expr" />
		<seealso name="jit.matrix" />
		<seealso name="gen~" />
		<seealso module="gen" name="gen_overview" type="vignette" />
		<seealso module="gen" name="gen_genexpr" type="vignette" />
		<seealso module="gen" name="gen_common_operators" type="vignette" />
		<seealso module="gen" name="gen_jitter_operators" type="vignette" />
	</seealsolist>
</c74object>
