2.2.7.50 MILCMD_VISUALGROUP

The MILCMD_VISUALGROUP packet updates all properties of a TYPE_VISUALGROUP resource.

The visual group resource provides a mechanism for implementations to include inclusionary and exclusionary filters associated with an off-screen render target.

A render target is associated with a visual tree. The scene described by the visual tree is expected to be rendered in the off-screen render target. The scene is composed by one or more visual nodes. During a normal render walk, the visual nodes are included or excluded to the visual scene by explicit properties (such as parameterized opacity).

The inclusionary and exclusionary filtering mechanism allows a further level of specialization. It overrides those properties by explicitly including or excluding nodes for the render pass associated with an off-screen render target.

  • The inclusionary and exclusionary filter lists are sets. If a visual appears more than once in the same list, the filtering mechanism MUST behave as if the visual appears only once that list.

  • The inclusionary list has higher priority than the exclusionary list. If a visual is in both the inclusionary and exclusionary list, the filtering mechanism MUST behave exactly as if the visual only appears in the inclusionary list.

  • If a subsequent MILCMD_VISUALGROUP packet is received, the filter lists MUST be treated with higher priority, overriding information in lists received in packets sent prior.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

messageSize

controlCode

targetResource

ExcludeVisualCollectionSize

IncludeVisualCollectionSize

ExcludeVisualCollection (variable)

...

IncludeVisualCollection (variable)

...

messageSize (4 bytes): A 32-bit unsigned integer. The total size of this message and its payload in bytes. The value of this field MUST be set to a number divisible by four and greater than or equal to 0x00000014.

controlCode (4 bytes): A 32-bit unsigned integer containing the control code for this message. The value of this field MUST be equal to 0x00000041.

targetResource (4 bytes): A 32-bit unsigned integer. The value of this field MUST be set to a valid resource handle referencing a resource of type TYPE_VISUALGROUP. This handle identifies the resource that is the target for this message.

ExcludeVisualCollectionSize (4 bytes): A 32-bit unsigned integer. The size in bytes of the ExcludeVisualCollection array.

IncludeVisualCollectionSize (4 bytes): A 32-bit unsigned integer. The size in bytes of the IncludeVisualCollection array.

ExcludeVisualCollection (variable): A variable-length array of handles to resources of type TYPE_VISUAL or TYPE_WINDOWNODE. This is the collection of visuals contained in this visual group that will be excluded from the render pass, even if they would normally be included by normal rendering options. The number of elements in this array MUST be equal to the value of the ExcludeVisualCollectionSize field divided by four.

IncludeVisualCollection (variable): A variable-length array of handles to resources of type TYPE_VISUAL or TYPE_WINDOWNODE. This is the collection of visuals contained in this visual group that will be included in the render-pass, even if they would normally be excluded by parameterized rendering options. The number of elements in this array MUST be equal to the value of the IncludeVisualCollectionSize field divided by four.