<?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.node" module="jit" category="Jitter OpenGL">
	<digest>
		Create hierarchical rendering groups
	</digest>
	<description>
		Use <o>jit.gl.node</o> to construct hierarchical rendering groups. <o>jit.gl.node</o> creates sub-contexts of child objects that can be modified, rendered, and captured together as a functional group.
	</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>
				texture output if capture enabled
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="1" type="OUTLET_TYPE">
			<digest>
				connect to 3d objects to draw to this gl.node
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="2" type="OUTLET_TYPE">
			<digest>
				dumpout
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--OB3D-->
	<OB3D />
	<!--MESSAGES-->
	<methodlist>
		<method name="draw">
			<arglist />
			<digest>
				Draw the node
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="getscene_dict">
			<arglist>
				<arg name="attribute mode" type="symbol" optional="1" />
			</arglist>
			<digest>
				Outputs a dictionary of scene elements
			</digest>
			<description>
				Outputs a dictionary of scene elements out the dumpout prepended by the symbol &quot;scene_dict&quot;. The optional argument specifies the attribute mode. If no argument is supplied only the spatial transform attributes are included.
				<br />
				<br />
				If the arg <i>all_attrs</i> is supplied all object attributes are included.
				<br />
				If the arg <i>modified_attrs</i> is supplied any attributes with modified state are included.
			</description>
		</method>
		<method name="sendoutput">
			<arglist>
				<arg name="message" optional="0" type="symbol" />
				<arg name="values" optional="1" type="list" />
			</arglist>
			<digest>
				Send messages to the internal texture objects used for <at>capture</at> output
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
	</methodlist>
	<jittermethodlist>
		<jittermethod name="bang" />
		<jittermethod name="anim_grow" />
		<jittermethod name="anim_move" />
		<jittermethod name="anim_reset" />
		<jittermethod name="anim_turn" />
		<jittermethod name="drawimmediate" />
		<jittermethod name="drawraw" />
		<jittermethod name="export_material" />
		<jittermethod name="exportattrs" />
		<jittermethod name="exportsummary" />
		<jittermethod name="get_shader" />
		<jittermethod name="getattributes" />
		<jittermethod name="getstate" />
		<jittermethod name="import_material" />
		<jittermethod name="importattrs" />
		<jittermethod name="jit_gl_texture" />
		<jittermethod name="summary" />
		<jittermethod name="update_node" />
	</jittermethodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="adapt" get="1" set="1" type="int" size="1">
			<digest>
				Adapt texture dims to window size
			</digest>
			<description>
				Adapt the capture texture dimensions to the context window size (default = 1).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Adapt" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="capture" get="1" set="1" type="int" size="1">
			<digest>
				Capture to internal texture
			</digest>
			<description>
				Capture to the internal texture (default = 0).
				<br />
				<br />
				Possible Values:
				<br />
				<br />
				0 = disabled. Rendering is performed according to the parent context, which can be another jit.gl.node or a jit.gl.render object.
				<br />
				1 = enabled. Rendering is captured to a texture and the texture name is output out the left outlet.
				<br />
				&gt; 1 = outputs multiple render targets (mrt) to the left outlet in the format &quot; <m>jit_gl_texture &lt;texture_name&gt; &lt;texture_name&gt;</m>&quot;.
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Capture" />
			</attributelist>
		</attribute>
		<attribute name="dim" get="1" set="1" type="int" size="2">
			<digest>
				Capture texture dimensions
			</digest>
			<description>
				Capture texture dimensions, used when <at>adapt</at>= 0 (default = 256 256).
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Dim" />
			</attributelist>
		</attribute>
		<attribute name="erase_color" get="1" set="1" type="float" size="4">
			<digest>
				Background color
			</digest>
			<description>
				Background color of viewport and capture texture (default = 0.2 0.2 0.2 1.). Not compatible with non-automatic mode objects.
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Erase Color" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="rgba" />
			</attributelist>
		</attribute>
		<attribute name="fsaa" get="1" set="1" type="int" size="1">
			<digest>
				Full screen anti-alias
			</digest>
			<description>
				Enable full screen anti-aliasing on the texture targets when <at>capture</at> is enabled (default = 0)
			</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="FSAA" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="out_name" get="1" set="1" type="symbol" size="1">
			<digest>
				Capture texture name
			</digest>
			<description>
				TEXT_HERE
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Out Name" />
			</attributelist>
		</attribute>
		<attribute name="out_names" get="1" set="0" type="symbol" size="32">
			<digest>
				Capture texture names
			</digest>
			<description>
				Capture texture name list. The list length is equal to the number of <at>capture</at> targets enabled.
			</description>
			<attributelist>
				<attribute name="introduced" get="1" set="1" type="symbol" size="1" value="8.0.0" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Out Names" />
			</attributelist>
		</attribute>
		<attribute name="type" get="1" set="1" type="symbol" size="1">
			<digest>
				Capture texture type
			</digest>
			<description>
				Capture texture type (default = auto)
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="enumvals" get="1" set="1" type="atom" size="7">
					<enumlist>
						<enum name="auto">
							<digest>
								8bit unsigned byte
							</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="Type" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enum" />
			</attributelist>
		</attribute>
	</attributelist>
	<jitterattributelist>
		<jitterattribute name="anchor" />
		<jitterattribute name="anim" />
		<jitterattribute name="animmode" />
		<jitterattribute name="antialias" />
		<jitterattribute name="auto_material" />
		<jitterattribute name="automatic" />
		<jitterattribute name="aux_color" />
		<jitterattribute name="axes" />
		<jitterattribute name="blend" />
		<jitterattribute name="blend_enable" />
		<jitterattribute name="blend_mode" />
		<jitterattribute name="color" />
		<jitterattribute name="cull_face" />
		<jitterattribute name="depth_clear" />
		<jitterattribute name="depth_enable" />
		<jitterattribute name="depth_write" />
		<jitterattribute name="drawto" />
		<jitterattribute name="enable" />
		<jitterattribute name="filterclass" />
		<jitterattribute name="fog" />
		<jitterattribute name="fog_color" />
		<jitterattribute name="fog_density" />
		<jitterattribute name="fog_params" />
		<jitterattribute name="fog_range" />
		<jitterattribute name="gl_color" />
		<jitterattribute name="layer" />
		<jitterattribute name="lighting_enable" />
		<jitterattribute name="line_width" />
		<jitterattribute name="mat_ambient" />
		<jitterattribute name="mat_diffuse" />
		<jitterattribute name="mat_emission" />
		<jitterattribute name="mat_specular" />
		<jitterattribute name="material" />
		<jitterattribute name="matfile" />
		<jitterattribute name="name" />
		<jitterattribute name="point_mode" />
		<jitterattribute name="point_size" />
		<jitterattribute name="poly_mode" />
		<jitterattribute name="position" />
		<jitterattribute name="quat" />
		<jitterattribute name="rotate" />
		<jitterattribute name="rotatexyz" />
		<jitterattribute name="scale" />
		<jitterattribute name="shader" />
		<jitterattribute name="shadow_caster" />
		<jitterattribute name="shininess" />
		<jitterattribute name="smooth_shading" />
		<jitterattribute name="texture" />
		<jitterattribute name="transform_reset" />
		<jitterattribute name="two_sided" />
		<jitterattribute name="viewalign" />
	</jitterattributelist>
	<!--EXAMPLE-->
	<examplelist>
		<example img="jit.gl.node.png" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="jit.gl.gridshape" />
		<seealso name="jit.gl.render" />
		<seealso name="jit.gl.texture" />
	</seealsolist>
	<discussion>
		Child objects can be added to a jit.gl.node sub-context in one of the following ways:
		<br />
		The jit.gl.node <at>name</at> attribute is provided as the child object argument, or as the child object <at>drawto</at> attribute.
		<br />
		Any objects connected to the jit.gl.node middle outlet are added to the sub-context.
		<br />
		Child objects are implicitly added to a jit.gl.node in the same patcher, if not already bound to another context.
		<br />
		<br />
		Jit.gl.node can overwrite standard OB3D attributes of its child objects. For example setting <at>poly_mode</at> on the jit.gl.node will overwrite the current value of <at>poly_mode</at> on every child object.
		<br />
		<br />
		This object requires one argument: the name of a drawing context. A named drawing context is a named instance of a <o>jit.window</o>, <o>jit.pwindow</o>, or <o>jit.matrix</o> object that has an instance of the <o>jit.gl.render</o> object associated with it. Additionally it can reference the name of a <o>jit.gl.node</o> sub-context. This value may also be set via the OB3D <at>drawto</at> attribute. If no argument is present, the object is implicitly added to the first valid drawing context or sub-context found in the current patch or by searching up the patcher hierarchy.
	</discussion>
</c74object>
