<?xml version="1.0" encoding="UTF-8"?>
<XPD:PROJECT xmlns:XPD="http://www.staruml.com" version="1">
<XPD:HEADER>
<XPD:SUBUNITS>
</XPD:SUBUNITS>
<XPD:PROFILES>
</XPD:PROFILES>
</XPD:HEADER>
<XPD:BODY>
<XPD:OBJ name="DocumentElement" type="UMLProject" guid="d4abD8vn20ubSrjFcgE3EAAA">
<XPD:ATTR name="Title" type="string">GpuProgram</XPD:ATTR>
<XPD:ATTR name="#OwnedElements" type="integer">1</XPD:ATTR>
<XPD:OBJ name="OwnedElements[0]" type="UMLModel" guid="QqMZs/qW7UODi/UtOzuvSAAA">
<XPD:ATTR name="Name" type="string">GpuProgram</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GpuProgram</XPD:ATTR>
<XPD:REF name="Namespace">d4abD8vn20ubSrjFcgE3EAAA</XPD:REF>
<XPD:ATTR name="#OwnedDiagrams" type="integer">1</XPD:ATTR>
<XPD:OBJ name="OwnedDiagrams[0]" type="UMLClassDiagram" guid="ENhxYNdSNkqcaDXpPIRfdAAA">
<XPD:ATTR name="Name" type="string">GpuProgram</XPD:ATTR>
<XPD:REF name="DiagramOwner">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:OBJ name="DiagramView" type="UMLClassDiagramView" guid="0LAaICpMrkOunFZZFl7i5QAA">
<XPD:REF name="Diagram">ENhxYNdSNkqcaDXpPIRfdAAA</XPD:REF>
<XPD:ATTR name="#OwnedViews" type="integer">96</XPD:ATTR>
<XPD:OBJ name="OwnedViews[0]" type="UMLClassView" guid="7XwxMBRNikC1W/tAh/Pi0AAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">1192</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">268</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">350</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">550</XPD:ATTR>
<XPD:REF name="Model">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="WMRZw+1uIUCjKIWlXefbgAAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="zMwfjzYn7EmalAiYrL9n6QAA">
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
<XPD:ATTR name="Text" type="string">GpuProgram</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="Rcr7NcWWvEOYGcD58Vhr5wAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="30A4rIW0xU2BYMnDwfjKTwAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="sio+PQvR9UmVYDWgtmk/wAAA">
<XPD:REF name="Model">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="Wo04Emq3v0WJL/LPScVE3gAA">
<XPD:REF name="Model">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="2fKbbm5gDUO6QDm/w+4bTQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:REF name="Model">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[1]" type="UMLClassView" guid="9fEe1YbZNkamI1cvbNymQgAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">1320</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">156</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">80</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">43</XPD:ATTR>
<XPD:REF name="Model">3tJKl1yiY0GhAKOtXMpP+AAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="xOv1oXhLgUO0DL0ni68U2gAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="K56YTHAdjka5axCL0Pyy1QAA">
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
<XPD:ATTR name="Text" type="string">Resource</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="2i+lIl2hsEiaQoP+i4omZwAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="V8oZeg3eKEOXeAPCDbbA6wAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="+Orw/z7X1UmPm5xgfujL4wAA">
<XPD:REF name="Model">3tJKl1yiY0GhAKOtXMpP+AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="Waof0ouR6UC4/hTLSbA11wAA">
<XPD:REF name="Model">3tJKl1yiY0GhAKOtXMpP+AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="uS4lqMHD9UuMBLkiTOZK9AAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:REF name="Model">3tJKl1yiY0GhAKOtXMpP+AAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[2]" type="UMLGeneralizationView" guid="umSfWEECW06AxSchScg8DwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">1361,268;1359,198</XPD:ATTR>
<XPD:REF name="Model">nDa1aM6K20Gtr6VcPWornwAA</XPD:REF>
<XPD:REF name="Head">9fEe1YbZNkamI1cvbNymQgAA</XPD:REF>
<XPD:REF name="Tail">7XwxMBRNikC1W/tAh/Pi0AAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="b9MJ/A03rUaQ7MeK/Df5TgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">nDa1aM6K20Gtr6VcPWornwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="KBM/q/6cX0uGvOO1426+vAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">nDa1aM6K20Gtr6VcPWornwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="TlKbiIMJ0kenRh0WIx9ZJgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">nDa1aM6K20Gtr6VcPWornwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[3]" type="UMLClassView" guid="L3jXB4PeK0+vhdz0b4mAugAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">808</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">340</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">257</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">69</XPD:ATTR>
<XPD:REF name="Model">Ruu1l0kA0UeLc0M17+AyDgAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="fWzxvJdGnkeZjj5WoXeSXQAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="rebhIo+5t0aj5BPhwgR7BwAA">
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
<XPD:ATTR name="Text" type="string">ParamCommand</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="OLRktBBbcEW8tMpHXJTcrgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="jzcNWA7HyE28RT1pBd+eugAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="ZH+3zCYHTUGqTKTdBbjIkgAA">
<XPD:REF name="Model">Ruu1l0kA0UeLc0M17+AyDgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="LRgZZMyiSkmH8c9PeLeDNwAA">
<XPD:REF name="Model">Ruu1l0kA0UeLc0M17+AyDgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="dAxU8pEMCkWDKZamEHjxTAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:REF name="Model">Ruu1l0kA0UeLc0M17+AyDgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[4]" type="UMLAssociationView" guid="nBzYToKBQkWfGHjSdS0s2QAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">1192,474;1023,408</XPD:ATTR>
<XPD:REF name="Model">MyTFj70SSUyGU6RMvKGV1wAA</XPD:REF>
<XPD:REF name="Head">L3jXB4PeK0+vhdz0b4mAugAA</XPD:REF>
<XPD:REF name="Tail">7XwxMBRNikC1W/tAh/Pi0AAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="bgA8xvjv60CiQB917B5ZSQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">MyTFj70SSUyGU6RMvKGV1wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="Cc7fGzHcvkCztiuZGv7fpwAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">MyTFj70SSUyGU6RMvKGV1wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="2+ZfQPFzrEq7QHm2dn+29AAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">MyTFj70SSUyGU6RMvKGV1wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="HeadRoleNameLabel" type="EdgeLabelView" guid="fL2GtfkQUUK9AFubn4+UOwAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-0.523598775598299</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
<XPD:REF name="Model">aPhNTAUDbkqsZb1ZpjdNzAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TailRoleNameLabel" type="EdgeLabelView" guid="sDULMCs3SUm89qxVAhEfqAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">0.523598775598299</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
<XPD:REF name="Model">sLZMUB8+P0SjEJv9NntdqgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="HeadMultiplicityLabel" type="EdgeLabelView" guid="guU0gSbeJUCZN/XeshbBTAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">0.523598775598299</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
<XPD:REF name="Model">aPhNTAUDbkqsZb1ZpjdNzAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TailMultiplicityLabel" type="EdgeLabelView" guid="P7COXCJNqEmbUqZolK1gWwAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-0.523598775598299</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
<XPD:REF name="Model">sLZMUB8+P0SjEJv9NntdqgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="HeadPropertyLabel" type="EdgeLabelView" guid="/whFt6vdHkueuFVGWLwBsgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-0.785398163397448</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
<XPD:REF name="Model">aPhNTAUDbkqsZb1ZpjdNzAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TailPropertyLabel" type="EdgeLabelView" guid="DabF+r6s+US7AlXcSvrEVQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">0.785398163397448</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
<XPD:REF name="Model">sLZMUB8+P0SjEJv9NntdqgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="HeadQualifierCompartment" type="UMLQualifierCompartmentView" guid="pAK6xa6HXUq8y6eHbj337QAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">-340</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">-1032</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
<XPD:REF name="Model">aPhNTAUDbkqsZb1ZpjdNzAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TailQualifierCompartment" type="UMLQualifierCompartmentView" guid="+P/pWFLl4UShobhv4cXS1wAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">-340</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">-1032</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
<XPD:REF name="Model">sLZMUB8+P0SjEJv9NntdqgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[5]" type="UMLClassView" guid="uEpkrsDKfU2bd1WaOV9rnwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">348</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">996</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">461</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">160</XPD:ATTR>
<XPD:REF name="Model">Ehy2CXKPwkK55nQi7MbYlwAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="poKNGU/3BUuvlT28gXOU3gAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="+TCYnt7xJ0qvBc9Rk7WnhQAA">
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
<XPD:ATTR name="Text" type="string">GLGpuProgram</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="bB+3DN80Y0yw6aju3dV4lAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="RdMZz+PgA02r0Mti1yhF5QAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="GFMazsu1CEO2sPNKJWrjNQAA">
<XPD:REF name="Model">Ehy2CXKPwkK55nQi7MbYlwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="Gu/OYF3LgUSgN+X3UY+5iAAA">
<XPD:REF name="Model">Ehy2CXKPwkK55nQi7MbYlwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="EWtsTx8FMkmvP6U2Kr6OoAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:REF name="Model">Ehy2CXKPwkK55nQi7MbYlwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[6]" type="UMLGeneralizationView" guid="7YTePMsxb0eSTuvJpbYdBwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">808,996;1224,996;1224,817</XPD:ATTR>
<XPD:REF name="Model">aC2IYq3Q1EC7dFUiWiZW4wAA</XPD:REF>
<XPD:REF name="Head">7XwxMBRNikC1W/tAh/Pi0AAA</XPD:REF>
<XPD:REF name="Tail">uEpkrsDKfU2bd1WaOV9rnwAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="mqaaCAGyX0e7YqjV9WlAgQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">aC2IYq3Q1EC7dFUiWiZW4wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="0ixNQzN3M0O4c5e0T8YvBAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">aC2IYq3Q1EC7dFUiWiZW4wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="X7sDdv0MtEC45A34yRlaBgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">aC2IYq3Q1EC7dFUiWiZW4wAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[7]" type="UMLClassView" guid="WK/4UstwqUCps8d/sQN1/gAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">128</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">1376</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">428</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">134</XPD:ATTR>
<XPD:REF name="Model">G+dIPc91GE6nU3XEXBlGwwAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="CoDzx9ors0i8oNK5u2e8hQAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="C6o/i4X61EygkD2aplZRzwAA">
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
<XPD:ATTR name="Text" type="string">GLArbGpuProgram</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="yrrs51wASEyLFRoc7NroswAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="cyjYtNlrskSMxe21eUVFMAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="FJBHvbBCt0OeDXtOWW+L7AAA">
<XPD:REF name="Model">G+dIPc91GE6nU3XEXBlGwwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="yhVNNF5wUEiZvLI3f72J1wAA">
<XPD:REF name="Model">G+dIPc91GE6nU3XEXBlGwwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="qzDlSLS7oE2J2QPuwA7PXgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:REF name="Model">G+dIPc91GE6nU3XEXBlGwwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[8]" type="UMLGeneralizationView" guid="HuxWXuCnHUKfRzHn2wEGzAAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">472,1376;472,1155</XPD:ATTR>
<XPD:REF name="Model">VOrHxO1nkU2iudvb8+kHzAAA</XPD:REF>
<XPD:REF name="Head">uEpkrsDKfU2bd1WaOV9rnwAA</XPD:REF>
<XPD:REF name="Tail">WK/4UstwqUCps8d/sQN1/gAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="YzVEkrbt6EeH2PXzTN34NQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">VOrHxO1nkU2iudvb8+kHzAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="zTzCLEhH9k2RFTVEkokG/gAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">VOrHxO1nkU2iudvb8+kHzAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="e81v6nqDQk2kCjag9m40owAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">VOrHxO1nkU2iudvb8+kHzAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[9]" type="UMLClassView" guid="E1fUCEKksUmeW0nCKtzUjgAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">1772</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">1000</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">406</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">290</XPD:ATTR>
<XPD:REF name="Model">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="VNtDwcIEY0yCqJbrAwjZKQAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="fC4xv7SWWEOJBNLyOXsSLQAA">
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
<XPD:ATTR name="Text" type="string">HighLevelGpuProgram</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="K04fqiM7lEah+Y8uGwYk6wAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="telbu2iOyUy8Xw5LR3/vgQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="Hsxbv3QZ5UGu31TMkhU4XgAA">
<XPD:REF name="Model">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="FHYfDhoG6EKcOyllpH9uXwAA">
<XPD:REF name="Model">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="7TXVZEnzkEiKlfhKp/oanAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:REF name="Model">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[10]" type="UMLClassView" guid="X0yRvwgQrE2qRZM3gzOqXwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">2484</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">1392</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">552</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">511</XPD:ATTR>
<XPD:REF name="Model">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="DItp+21D60OnOKeht8Dd0wAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="hv/vgRg9qkuZI08z3AQwOAAA">
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
<XPD:ATTR name="Text" type="string">CgProgram</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="yLksqUgn2UaW1hMIkQyHwAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="7gGu/KERQUaOG/lH6nLI0gAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="GcQaRiB3SEGRWep+/PjW0wAA">
<XPD:REF name="Model">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="XtozuHM7eE6uzzNDm9XsKAAA">
<XPD:REF name="Model">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="hcA/w0hiI0KHbRNUL23UygAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:REF name="Model">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[11]" type="UMLGeneralizationView" guid="uhUC8EkTq0eN7p+Q5PmxkAAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">1772,1000;1484,1000;1484,817</XPD:ATTR>
<XPD:REF name="Model">HyBs3SGoPkOouiXDZ2NpEAAA</XPD:REF>
<XPD:REF name="Head">7XwxMBRNikC1W/tAh/Pi0AAA</XPD:REF>
<XPD:REF name="Tail">E1fUCEKksUmeW0nCKtzUjgAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="bW+Dz5o1cEmTE6g5YZ45/wAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">HyBs3SGoPkOouiXDZ2NpEAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="uDEqjcuZEUC4xk+6Ne10iwAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">HyBs3SGoPkOouiXDZ2NpEAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="A1GVz9dgdkONFd9BQoBS1wAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">HyBs3SGoPkOouiXDZ2NpEAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[12]" type="UMLGeneralizationView" guid="Wm9ctVVlR0ed4dXKEOvO7gAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">2484,1471;2177,1274</XPD:ATTR>
<XPD:REF name="Model">7B/9P428eEiXYWexhNvhIwAA</XPD:REF>
<XPD:REF name="Head">E1fUCEKksUmeW0nCKtzUjgAA</XPD:REF>
<XPD:REF name="Tail">X0yRvwgQrE2qRZM3gzOqXwAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="4Kjz61ivrESHQum2X56lQAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">7B/9P428eEiXYWexhNvhIwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="DCu0L6kqBEqes3g6jF7NjgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">7B/9P428eEiXYWexhNvhIwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="sSedyJSTMkO2uv0zomPoLgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">7B/9P428eEiXYWexhNvhIwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[13]" type="UMLClassView" guid="PFiZOJda4UetY0zsgwFqzQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">2120</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">1448</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">297</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">225</XPD:ATTR>
<XPD:REF name="Model">11fvFnfvyEGLiGz/aohSAwAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="tyvUh7Fwh0SQeRi9ycecQgAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="68/rX5LCAEOCl+OasuI+UAAA">
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
<XPD:ATTR name="Text" type="string">UnifiedHighLevelGpuProgram</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="tVlXxjQY50if5113Czc8yQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="LhFj+ecmqk2HXKRSHKI3LgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="fRCG73o3a0+8WfLK/oiy5gAA">
<XPD:REF name="Model">11fvFnfvyEGLiGz/aohSAwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="ZWm+2AzwE0q7nZchzLzDxgAA">
<XPD:REF name="Model">11fvFnfvyEGLiGz/aohSAwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="w9C4AfYc7ku3mXuH3xZIXgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:REF name="Model">11fvFnfvyEGLiGz/aohSAwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[14]" type="UMLGeneralizationView" guid="JIEUEeFrukyhMLjeF/xqiAAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">2189,1448;2077,1289</XPD:ATTR>
<XPD:REF name="Model">Zwf/Dz67kUy89d+dU+pUZwAA</XPD:REF>
<XPD:REF name="Head">E1fUCEKksUmeW0nCKtzUjgAA</XPD:REF>
<XPD:REF name="Tail">PFiZOJda4UetY0zsgwFqzQAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="+gz8IOs8aU2I2XFdl6xpEwAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">Zwf/Dz67kUy89d+dU+pUZwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="PAc58FWWI02tel8mLjRpjQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">Zwf/Dz67kUy89d+dU+pUZwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="YaY1mkVkoEugVZXPqkBgegAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">Zwf/Dz67kUy89d+dU+pUZwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[15]" type="UMLNoteView" guid="gWY89BeQ20OpmfaaNFp0hgAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">1512</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">40</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">477</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">98</XPD:ATTR>
<XPD:ATTR name="Text" type="string">GpuProgram::GpuProgram()
{
     mFloatLogicalToPhysical = GpuLogicalBufferStructPtr(OGRE_NEW GpuLogicalBufferStruct());
     mIntLogicalToPhysical = GpuLogicalBufferStructPtr(OGRE_NEW GpuLogicalBufferStruct());
     mConstantDefs = GpuNamedConstantsPtr(OGRE_NEW GpuNamedConstants());
}
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[16]" type="UMLNoteLinkView" guid="6qIJQREO6UCnnWa5vUjfWQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">1709,137;1541,335</XPD:ATTR>
<XPD:REF name="Head">7XwxMBRNikC1W/tAh/Pi0AAA</XPD:REF>
<XPD:REF name="Tail">gWY89BeQ20OpmfaaNFp0hgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[17]" type="UMLNoteView" guid="TSaPnke5pkOwIFoMNAoxMAAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">1664</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">216</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">473</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">83</XPD:ATTR>
<XPD:ATTR name="Text" type="string">void GpuProgram::setManualNamedConstants(const GpuNamedConstants&amp; namedConstants)
{
   ///查找namedConstants-&gt;map中名字不带&quot;[&quot;的变量，组成 &lt;size_t, GpuLogicalIndexUse&gt;
   ///放到 mFloatLogicalToPhysical 和mIntLogicalToPhysical中
}
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[18]" type="UMLNoteLinkView" guid="pcPZcFN2Vkim6ojYhMB22gAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">1823,298;1541,449</XPD:ATTR>
<XPD:REF name="Head">7XwxMBRNikC1W/tAh/Pi0AAA</XPD:REF>
<XPD:REF name="Tail">TSaPnke5pkOwIFoMNAoxMAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[19]" type="UMLClassView" guid="uTszJESpxESJN8tWuHC/7QAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">2636</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">344</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">482</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">485</XPD:ATTR>
<XPD:REF name="Model">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="s4VHtXp36kqJKoWnidBaCAAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="6XN5Np6+ME2Q6wHo5e7IyQAA">
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
<XPD:ATTR name="Text" type="string">GpuProgramManager</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="jGpWQ3dCDUWIjDcHLNcDXAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="sTuzAPdpnU61UJEsDGBErQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="doMwjJzWa0OOwpkF01G5fQAA">
<XPD:REF name="Model">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="KGO5zPLI7EuIyTmZQv4uCAAA">
<XPD:REF name="Model">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="9Rzsu7jgVUG55IcSZWORYgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:REF name="Model">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[20]" type="UMLNoteView" guid="KPgprnsnUkqO++Zc4rvNrgAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">2812</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">216</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">219</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">38</XPD:ATTR>
<XPD:ATTR name="Text" type="string">//通过文件名或源码，创建GpuProgram
//创建和管理SharedParameters
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[21]" type="UMLNoteLinkView" guid="uPg+DdJXGEKNAoNmWlKhjQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">2907,344;2919,253</XPD:ATTR>
<XPD:REF name="Head">KPgprnsnUkqO++Zc4rvNrgAA</XPD:REF>
<XPD:REF name="Tail">uTszJESpxESJN8tWuHC/7QAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[22]" type="UMLNoteView" guid="vQ5SOPVh70G3q6rc2xapPQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">1776</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">336</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">405</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">263</XPD:ATTR>
<XPD:ATTR name="Text" type="string">GpuProgramParametersSharedPtr GpuProgram::createParameters(void)
{
   GpuNamedConstants namedConstants;
    DataStreamPtr stream = 
                    ResourceGroupManager::getSingleton().openResource(
                    mManualNamedConstantsFile, mGroup, this);
    namedConstants.load(stream);
    setManualNamedConstants(namedConstants);

    ret-&gt;_setNamedConstants(mConstantDefs);

    ret-&gt;_setLogicalIndexes(mFloatLogicalToPhysical, mDoubleLogicalToPhysical, 
                                        mIntLogicalToPhysical, mUIntLogicalToPhysical,
                                        mBoolLogicalToPhysical);

     ret-&gt;copyConstantsFrom(*(mDefaultParams.get()));
}
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[23]" type="UMLNoteLinkView" guid="pdnjt6p+7EubM3xniA16eAAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">1776,492;1541,521</XPD:ATTR>
<XPD:REF name="Head">7XwxMBRNikC1W/tAh/Pi0AAA</XPD:REF>
<XPD:REF name="Tail">vQ5SOPVh70G3q6rc2xapPQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[24]" type="UMLNoteView" guid="6VapG7MXmU2lDIduYy3dCQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">2472</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">1972</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">646</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">248</XPD:ATTR>
<XPD:ATTR name="Text" type="string">void CgProgram::loadFromSource(void)
{
     //如果有 cacheMicrocode 从中读取mProgramString
     cacheMicrocode-&gt;read(&amp;mProgramString[0], programStringSize)
     //否则 根据 cg 库和 mSource获得 mProgramString 里面包含程序使用的参数和 汇编语言
     cgProgram = cgCreateProgram(mCgContext, CG_SOURCE, sourceToUse.c_str(), 
             mSelectedCgProfile, mEntryPoint.c_str(), const_cast&lt;const char**&gt;(mCgArguments));
     mProgramString = cgGetProgramString(cgProgram, CG_COMPILED_PROGRAM);
      //设置program使用的 shader 源码
     mDelegate-&gt;setSource(mProgramString)
    
     //如果是cg 转glsl 则 加多一步 setNamedConstant 设置相关参数
    GpuProgramParametersSharedPtr params = mDelegate-&gt;getDefaultParameters();
     for (map&lt;String,int&gt;::type::iterator i = mSamplerRegisterMap.begin(); i != mSamplerRegisterMap.end(); ++i)
              params-&gt;setNamedConstant(i-&gt;first, i-&gt;second);
}
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[25]" type="UMLNoteLinkView" guid="3Nf90ON710efxM4zAnuvEQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">2784,1972;2779,1902</XPD:ATTR>
<XPD:REF name="Head">X0yRvwgQrE2qRZM3gzOqXwAA</XPD:REF>
<XPD:REF name="Tail">6VapG7MXmU2lDIduYy3dCQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[26]" type="UMLNoteView" guid="IRx2z4sPFE2STlbwHHu97QAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">3296</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">1428</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">227</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">98</XPD:ATTR>
<XPD:ATTR name="Text" type="string">void CgProgram::createLowLevelImpl(void)
{
//根据 mProgramString 创建低级shader 
//如ArbGpuProgram
//存储到 mAssemblerProgram变量
}
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[27]" type="UMLNoteLinkView" guid="+zUkfKhoO0SiDKSji4lEEwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">3296,1506;3035,1575</XPD:ATTR>
<XPD:REF name="Head">X0yRvwgQrE2qRZM3gzOqXwAA</XPD:REF>
<XPD:REF name="Tail">IRx2z4sPFE2STlbwHHu97QAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[28]" type="UMLNoteView" guid="LBbpu8fPUUe5Dm+5JQu8oQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">3300</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">1544</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">214</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">68</XPD:ATTR>
<XPD:ATTR name="Text" type="string">String CgProgram::getHighLevelTarget()
{
//获取当前渲染系统支持的 profile
}
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[29]" type="UMLNoteLinkView" guid="+mlTb3Vo6kiQIi+IBaJKeQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">3300,1588;3035,1617</XPD:ATTR>
<XPD:REF name="Head">X0yRvwgQrE2qRZM3gzOqXwAA</XPD:REF>
<XPD:REF name="Tail">LBbpu8fPUUe5Dm+5JQu8oQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[30]" type="UMLNoteView" guid="2BslPhtkvESilUjAwcU+XwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">3300</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">1640</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">283</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">68</XPD:ATTR>
<XPD:ATTR name="Text" type="string">void CgProgram::fixHighLevelOutput(String&amp; hlSource)
{
//调整cg语言到glsl和hlsl的输出,做必要的参数转换
}
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[31]" type="UMLNoteLinkView" guid="b5TYn/8hGE+STj6c4Q5NMQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">3300,1668;3035,1658</XPD:ATTR>
<XPD:REF name="Head">X0yRvwgQrE2qRZM3gzOqXwAA</XPD:REF>
<XPD:REF name="Tail">2BslPhtkvESilUjAwcU+XwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[32]" type="UMLNoteView" guid="Hrta0qIXLkmDAZiJGX4jegAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">3304</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">1740</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">237</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">83</XPD:ATTR>
<XPD:ATTR name="Text" type="string">void CgProgram::buildConstantDefinitions()
{
//将 mParametersMap 中的各个参数信息放
//到 mConstantDefs 中
}
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[33]" type="UMLNoteLinkView" guid="FnbQlviQxUyul58dXaC9uQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">3304,1757;3035,1703</XPD:ATTR>
<XPD:REF name="Head">X0yRvwgQrE2qRZM3gzOqXwAA</XPD:REF>
<XPD:REF name="Tail">Hrta0qIXLkmDAZiJGX4jegAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[34]" type="UMLNoteView" guid="4J5yk7k+bEu394D5wtR08wAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">3212</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">1872</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">421</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">68</XPD:ATTR>
<XPD:ATTR name="Text" type="string">void CgProgram::recurseParams(CGparameter parameter, size_t contextArraySize)
{
//递归从cg程序中获得参数
}
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[35]" type="UMLNoteLinkView" guid="Gh95vHmlm0SapZEgVqJcVwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">3337,1872;3035,1754</XPD:ATTR>
<XPD:REF name="Head">X0yRvwgQrE2qRZM3gzOqXwAA</XPD:REF>
<XPD:REF name="Tail">4J5yk7k+bEu394D5wtR08wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[36]" type="UMLClassView" guid="BUxjI6wqbkajs/K+H/P3wwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">2384</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">1164</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">123</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">43</XPD:ATTR>
<XPD:REF name="Model">mrIJ3RqYe0uO7L0F1NNU6wAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="TMsTc2G5IECRf91JHkoOUQAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="ZodUq0OYMUOLuZqIznnLYAAA">
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
<XPD:ATTR name="Text" type="string">D3D11HLSLProgram</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="nMZy8DUnO06UF9y7g04h7AAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="flfScoEgBEuybmiYoaA8OAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="Vur8XwNtu0ir8xJBb6hJ6wAA">
<XPD:REF name="Model">mrIJ3RqYe0uO7L0F1NNU6wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="tPBbRQzb9kSFsrNkY6cahQAA">
<XPD:REF name="Model">mrIJ3RqYe0uO7L0F1NNU6wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="O1EHf0UPsUKGcVZUaO82pQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:REF name="Model">mrIJ3RqYe0uO7L0F1NNU6wAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[37]" type="UMLGeneralizationView" guid="RIoSD4F6CUu3+7HRVLrb6gAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">2384,1180;2177,1162</XPD:ATTR>
<XPD:REF name="Model">OF9vS5TOyUu/iizvw+AifwAA</XPD:REF>
<XPD:REF name="Head">E1fUCEKksUmeW0nCKtzUjgAA</XPD:REF>
<XPD:REF name="Tail">BUxjI6wqbkajs/K+H/P3wwAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="emv0+s8uCkC/KlGKrrCFmQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">OF9vS5TOyUu/iizvw+AifwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="Nw9dMsqL00GZAwEFl7WSYwAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">OF9vS5TOyUu/iizvw+AifwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="H+kMqtyFj027DzlujBnmwQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">OF9vS5TOyUu/iizvw+AifwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[38]" type="UMLClassView" guid="hKTnCjeugEyrNXzUqfgKegAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">2328</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">1244</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">80</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">43</XPD:ATTR>
<XPD:REF name="Model">dlgSofzse06YoTM8CvX9KAAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="b4w0dokDbUG7nvXzcC30JQAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="ZS+Fj2zQ1Eq0wNZD6Xw0owAA">
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
<XPD:ATTR name="Text" type="string">NullProgram</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="FJ2TRmVNYkatgQTFhnv3nAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="z05xo1EilEuVov2oE9sFyAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="4xemkMqW9kqFC6agCAMJvAAA">
<XPD:REF name="Model">dlgSofzse06YoTM8CvX9KAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="8bH4B3OzcUuavr5i9zoPxQAA">
<XPD:REF name="Model">dlgSofzse06YoTM8CvX9KAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="rPmT30OU9EiSrgcfZ0tpTAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:REF name="Model">dlgSofzse06YoTM8CvX9KAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[39]" type="UMLGeneralizationView" guid="d+bZchdI2UmssqY9UpGUlQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">2328,1253;2177,1207</XPD:ATTR>
<XPD:REF name="Model">CKdie6QxKUah0QC9CtBABgAA</XPD:REF>
<XPD:REF name="Head">E1fUCEKksUmeW0nCKtzUjgAA</XPD:REF>
<XPD:REF name="Tail">hKTnCjeugEyrNXzUqfgKegAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="j75kcfy4L0ms8nIs4lXV+AAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">CKdie6QxKUah0QC9CtBABgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="Dq/eAhNr90uwFwHpL/jFeAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">CKdie6QxKUah0QC9CtBABgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="mlCt0/+FL02CljJVjT8AqgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">CKdie6QxKUah0QC9CtBABgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[40]" type="UMLNoteView" guid="oH2vQeQh5Uyfl82xUchOnQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">2096</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">1724</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">345</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">188</XPD:ATTR>
<XPD:ATTR name="Text" type="string">void UnifiedHighLevelGpuProgram::chooseDelegate()
{
//从当前的 mDelegateNames 中找出最合适 HighLevelGpuProgram
}

fragment_program Ogre/CelShadingFP unified
{
        delegate Ogre/CelShadingFPhlsl
        delegate Ogre/CelShadingFPGLSL
        delegate Ogre/CelShadingFPGLSLES
        delegate Ogre/CelShadingFPCg
}
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[41]" type="UMLNoteLinkView" guid="8BRxDEzr6EKdJo5GXHbdhwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">2268,1724;2268,1672</XPD:ATTR>
<XPD:REF name="Head">PFiZOJda4UetY0zsgwFqzQAA</XPD:REF>
<XPD:REF name="Tail">oH2vQeQh5Uyfl82xUchOnQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[42]" type="UMLClassView" guid="vwiVDFz/Q0WOdQItkNmArAAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">716</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">1432</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">165</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">56</XPD:ATTR>
<XPD:REF name="Model">ra3dHf9bXkW32QuqKXod4gAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="AGAHHJ5rC0uSdaIERF9PpwAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="/5HjjC0gcUq8+MLhM/m6KwAA">
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
<XPD:ATTR name="Text" type="string">GLSLGpuProgram</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="zJtxJoXAXkWq86TxKLuRJAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="flBycFwtk0qmU3Odm/wpZQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="QplDVrQJCEOtJFzDiqBCUgAA">
<XPD:REF name="Model">ra3dHf9bXkW32QuqKXod4gAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="X7kGsJJS3kKsSOqy+D0JsgAA">
<XPD:REF name="Model">ra3dHf9bXkW32QuqKXod4gAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="H21yIwfCV0CYK0CeEENNxQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:REF name="Model">ra3dHf9bXkW32QuqKXod4gAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[43]" type="UMLGeneralizationView" guid="QYCACQeyR0WoVCAG8+7GyAAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">724,1432;724,1155</XPD:ATTR>
<XPD:REF name="Model">UxkBFQa/LUe8Gh6BwSqpwwAA</XPD:REF>
<XPD:REF name="Head">uEpkrsDKfU2bd1WaOV9rnwAA</XPD:REF>
<XPD:REF name="Tail">vwiVDFz/Q0WOdQItkNmArAAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="GCOgkpJSO0KtpItFLYFjXAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">UxkBFQa/LUe8Gh6BwSqpwwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="hggXBra7bkGqFGrD4jUe8wAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">UxkBFQa/LUe8Gh6BwSqpwwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="e2VPVZSmr0WpbAInlx0N4QAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">UxkBFQa/LUe8Gh6BwSqpwwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[44]" type="UMLClassView" guid="lzkXjfAOkEemOyBYnDvegwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">996</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">1444</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">141</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">43</XPD:ATTR>
<XPD:REF name="Model">+gt7DffqbUefsBpCv3nacgAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="0l1sVXxGr02uRk9/dFfe1wAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="B7oE4egxBkmM9+J7/GN0kQAA">
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
<XPD:ATTR name="Text" type="string">GLGpuNvparseProgram</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="xq9muhu7dEWc1tFaQHxA5gAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="d1tRaHEjKk6AQLhB2Syy1wAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="5MT9nWv7zEivitAlq9jb2AAA">
<XPD:REF name="Model">+gt7DffqbUefsBpCv3nacgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="ry7LVIUUm0GhMKbHGzfLDgAA">
<XPD:REF name="Model">+gt7DffqbUefsBpCv3nacgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="j/zpdaLiKk23SPrhuCGg/wAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:REF name="Model">+gt7DffqbUefsBpCv3nacgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[45]" type="UMLGeneralizationView" guid="iPGOzRT64EatMhPblLFImgAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">1028,1444;1028,1140;808,1140</XPD:ATTR>
<XPD:REF name="Model">IH3ohYThFEquKvmRS31EUQAA</XPD:REF>
<XPD:REF name="Head">uEpkrsDKfU2bd1WaOV9rnwAA</XPD:REF>
<XPD:REF name="Tail">lzkXjfAOkEemOyBYnDvegwAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="EWbaqvhYFky9uPUC57wy4QAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">IH3ohYThFEquKvmRS31EUQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="gv6TTUk6ckuk+1EMtPtNOgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">IH3ohYThFEquKvmRS31EUQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="+w6KCJuKpEKQCpbqyC/EqAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">IH3ohYThFEquKvmRS31EUQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[46]" type="UMLNoteView" guid="FmcwvLrIqkGPyKZCH4nojgAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">40</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">1552</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">613</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">203</XPD:ATTR>
<XPD:ATTR name="Text" type="string">//GL_ARB_vertex_program NVIDIA Corporation 提供的opengl扩展
//创建GpuProgram
glGenProgramsARB(1, &amp;mProgramID);

//绑定程序
glEnable(getProgramType());
glBindProgramARB(getProgramType(), mProgramID);

//绑定使用的参数
glProgramLocalParameter4fvARB(type, logicalIndex, pFloat);

//从编译和使用 shader源码
glProgramStringARB(getProgramType(), GL_PROGRAM_FORMAT_ASCII_ARB, (GLsizei)mSource.length(), mSource.c_str());
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[47]" type="UMLNoteLinkView" guid="A2+tEOfiN06a8aPt3SRHjgAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">344,1552;343,1509</XPD:ATTR>
<XPD:REF name="Head">WK/4UstwqUCps8d/sQN1/gAA</XPD:REF>
<XPD:REF name="Tail">FmcwvLrIqkGPyKZCH4nojgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[48]" type="UMLClassView" guid="F+wx089ahUCfqQ9zE+OJPwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">1664</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">1424</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">373</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">329</XPD:ATTR>
<XPD:REF name="Model">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="WzqQ3HWyYEu18Xy/Bz05zAAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="Zv9exWtOqE+eXcQP08ij/wAA">
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
<XPD:ATTR name="Text" type="string">GLSLShaderCommon</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="Ty21PVeSM0uXQgKXRstF2wAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="uEdnXb7q70uxQ112W8D0DAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="3/IH7t8CE0OIORV6mFtnOQAA">
<XPD:REF name="Model">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="1HGtmSquB0yCy/wdm300SwAA">
<XPD:REF name="Model">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="ckKsW6FiK06Yp/KCcvEoxwAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:REF name="Model">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[49]" type="UMLGeneralizationView" guid="rMCtH2GFWEKaUdTOegNJ9AAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">1896,1424;1934,1289</XPD:ATTR>
<XPD:REF name="Model">fXNppTlgnECXzqa+7jrD1AAA</XPD:REF>
<XPD:REF name="Head">E1fUCEKksUmeW0nCKtzUjgAA</XPD:REF>
<XPD:REF name="Tail">F+wx089ahUCfqQ9zE+OJPwAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="k5bjW67DXkawGgJoumohSgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">fXNppTlgnECXzqa+7jrD1AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="VTKF5HunuUWRgm9keqrh2gAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">fXNppTlgnECXzqa+7jrD1AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="01YQjcNwekKsAjPDEzZTTgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">fXNppTlgnECXzqa+7jrD1AAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[50]" type="UMLClassView" guid="kUlNrOTlR02CoStGO7YQcgAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">1664</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">1816</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">373</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">173</XPD:ATTR>
<XPD:REF name="Model">PC7BxjUWxEq+mLj2Oei5yQAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="aqV/7rDveEuG8EwyrzVvLwAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="ypg6tsz8Lk+8Wt/1fHttrAAA">
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
<XPD:ATTR name="Text" type="string">GLSLProgram</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="1Z4WAujGOEGeoHncZL6uKgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="94h2GO0Xfk6HpUlKh/XkLQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="ULQK2AruAE2ctOJMzpwP9gAA">
<XPD:REF name="Model">PC7BxjUWxEq+mLj2Oei5yQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="dVk1PRTbV02DPJ+2Bv1I7QAA">
<XPD:REF name="Model">PC7BxjUWxEq+mLj2Oei5yQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="tBmsiESBRESmt0v7zI0yAQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:REF name="Model">PC7BxjUWxEq+mLj2Oei5yQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[51]" type="UMLGeneralizationView" guid="n33qrug7PkaM5l4ghdTz8QAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">1850,1816;1850,1752</XPD:ATTR>
<XPD:REF name="Model">azcF3PjFy0mzcBUjEUWXsQAA</XPD:REF>
<XPD:REF name="Head">F+wx089ahUCfqQ9zE+OJPwAA</XPD:REF>
<XPD:REF name="Tail">kUlNrOTlR02CoStGO7YQcgAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="CyoF/BLub0W2hjelcaU84wAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">azcF3PjFy0mzcBUjEUWXsQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="NVzsb8/rDk+pCEAXnZngCQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">azcF3PjFy0mzcBUjEUWXsQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="PEyvj2heu0SfvIfZoGPbDAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">azcF3PjFy0mzcBUjEUWXsQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[52]" type="UMLClassView" guid="G5cNkuRdmkaWSO1LRhgsggAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">400</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">2716</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">717</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">186</XPD:ATTR>
<XPD:REF name="Model">ID/+6/kG6k6Rbb7RVGBh4AAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="jp2dqMh9ukqZ8uFi+OX2ugAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="Ak2EmZmsRE+p/kue2Xi14wAA">
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
<XPD:ATTR name="Text" type="string">GLSLLinkProgramManager</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="Qt07kAmPGkeOo5o/2xFSKgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="enKJxZ4m50+vgeAW45jSrwAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="oZ1tNluUj02y+cLtyQdOAgAA">
<XPD:REF name="Model">ID/+6/kG6k6Rbb7RVGBh4AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="3MPH6bOsnkmHgmbkSXhRZAAA">
<XPD:REF name="Model">ID/+6/kG6k6Rbb7RVGBh4AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="0lI3bSk+9UqrqXqQmarTWQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:REF name="Model">ID/+6/kG6k6Rbb7RVGBh4AAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[53]" type="UMLClassView" guid="+5ba7AGKEEaOOp9OZRxgkwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">424</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">2512</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">672</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">147</XPD:ATTR>
<XPD:REF name="Model">XsNiMY1X802GjNJWAK/9twAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="TGT6wLGRD0uhQEPyny6REQAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="sCnc5JpwRUqAs6VHKe4digAA">
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
<XPD:ATTR name="Text" type="string">GLSLProgramManagerCommon</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="UYwhO7Sjz0OQ0Jy/Yq/w1AAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="Y6r1vlHxOkCJ9gIUOqUm6wAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="KwVUlfQw3kWw8J6HAqkZJgAA">
<XPD:REF name="Model">XsNiMY1X802GjNJWAK/9twAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="FLCaiuVYXku8uvZNrfwU/wAA">
<XPD:REF name="Model">XsNiMY1X802GjNJWAK/9twAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="vpBrupZ51UOWdYwBernx3AAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:REF name="Model">XsNiMY1X802GjNJWAK/9twAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[54]" type="UMLGeneralizationView" guid="4ydtq/sJ9kW75cSD7udsjQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">758,2716;758,2658</XPD:ATTR>
<XPD:REF name="Model">GW/akQXzH0ausASdKUe7dQAA</XPD:REF>
<XPD:REF name="Head">+5ba7AGKEEaOOp9OZRxgkwAA</XPD:REF>
<XPD:REF name="Tail">G5cNkuRdmkaWSO1LRhgsggAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="4mPJ4+V5uk+mIfMpe/9+TQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">GW/akQXzH0ausASdKUe7dQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="OkeXO/OuEUaOPfJq3vIc6gAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">GW/akQXzH0ausASdKUe7dQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="3bMtmWhyhUWJ4WATrKLSXQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">GW/akQXzH0ausASdKUe7dQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[55]" type="UMLNoteView" guid="2uLbg+G+7E+ZwgziS5TQ9wAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">1408</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">2040</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">468</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">158</XPD:ATTR>
<XPD:ATTR name="Text" type="string">//使用 GL_ARB_shader_objects 扩展
mGLHandle = glCreateShaderObjectARB(shaderType);

glShaderSourceARB(mGLHandle, 1, &amp;source, NULL);

glCompileShaderARB(mGLHandle);

glGetObjectParameterivARB(mGLHandle, GL_OBJECT_COMPILE_STATUS_ARB, &amp;mCompiled);

glAttachObjectARB( programObject, mGLHandle );
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[56]" type="UMLNoteLinkView" guid="rCX5LNyDg0ybMGVaENK95AAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">1716,2040;1766,1988</XPD:ATTR>
<XPD:REF name="Head">kUlNrOTlR02CoStGO7YQcgAA</XPD:REF>
<XPD:REF name="Tail">2uLbg+G+7E+ZwgziS5TQ9wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[57]" type="UMLNoteView" guid="XLXNVpwVOEmVagi+9O0AzAAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">1936</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">2048</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">421</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">98</XPD:ATTR>
<XPD:ATTR name="Text" type="string">void GLSLProgram::createLowLevelImpl(void)
    {
        mAssemblerProgram = GpuProgramPtr(OGRE_NEW GLSLGpuProgram( this ));
        // Shader params need to be forwarded to low level implementation
        mAssemblerProgram-&gt;setAdjacencyInfoRequired(isAdjacencyInfoRequired());
    }
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[58]" type="UMLNoteLinkView" guid="Z39j9lNY0UaSbWY7I2TEugAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">2073,2048;1981,1988</XPD:ATTR>
<XPD:REF name="Head">kUlNrOTlR02CoStGO7YQcgAA</XPD:REF>
<XPD:REF name="Tail">XLXNVpwVOEmVagi+9O0AzAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[59]" type="UMLClassView" guid="BLr6EpAJ6U2NNiF3bGgbxQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">1204</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">1444</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">142</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">43</XPD:ATTR>
<XPD:REF name="Model">EP1o5RNkBUiVK+LZdMJhcAAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="mbaWiBeJPUu5dhUBKh0+dgAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="dLtwFl+HVU6P58yIbSEt1wAA">
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
<XPD:ATTR name="Text" type="string">ATI_FS_GLGpuProgram</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="AYVS5tMWJkm3zeDvgfXIQgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="PK33Xj6SqEi2xrR2hiXjIgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="8bG1KWvRz0CUW70J6DIIOQAA">
<XPD:REF name="Model">EP1o5RNkBUiVK+LZdMJhcAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="xKvGB5RBokCCkcC15KOYTwAA">
<XPD:REF name="Model">EP1o5RNkBUiVK+LZdMJhcAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="WfathBcW0k2irIJO46Gi0gAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:REF name="Model">EP1o5RNkBUiVK+LZdMJhcAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[60]" type="UMLGeneralizationView" guid="MGiuDs0Dvk+QKjx/i4+yJAAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">1274,1444;1274,1107;808,1107</XPD:ATTR>
<XPD:REF name="Model">h/o8+Z2J1ECQylXbdBBy/gAA</XPD:REF>
<XPD:REF name="Head">uEpkrsDKfU2bd1WaOV9rnwAA</XPD:REF>
<XPD:REF name="Tail">BLr6EpAJ6U2NNiF3bGgbxQAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="iKpYm/JarUGmnFwJppEWywAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">h/o8+Z2J1ECQylXbdBBy/gAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="fM1TozOGZ0yrKHh8UDEhCwAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">h/o8+Z2J1ECQylXbdBBy/gAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="eognpo6HG062zK+6cq8e+AAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">h/o8+Z2J1ECQylXbdBBy/gAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[61]" type="UMLNoteView" guid="ewHKFG0uBUOkvmq8rHdmDQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">744</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">36</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">375</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">203</XPD:ATTR>
<XPD:ATTR name="Text" type="string">vertex_program Ogre/CelShadingVP asm/unified/other
{
      .................
}      
//根据 asm/unified/other 的不同，program文件在解析时
//会生成 GpuProgram派生类的低级语言、 UnifiedHighLevelGpuProgram
//和 CgProgram高级语言
        if(language == &quot;asm&quot;)
            translateGpuProgram(compiler, obj);
        else if(language == &quot;unified&quot;)
            translateUnifiedGpuProgram(compiler, obj);
        else
            translateHighLevelGpuProgram(compiler, obj);
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[62]" type="UMLNoteLinkView" guid="vJuVm5rn2kSCXob3Ik30PgAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">1192,380;1039,238</XPD:ATTR>
<XPD:REF name="Head">ewHKFG0uBUOkvmq8rHdmDQAA</XPD:REF>
<XPD:REF name="Tail">7XwxMBRNikC1W/tAh/Pi0AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[63]" type="UMLNoteView" guid="FaaEeI+iIEerjPRPGB8VFAAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">464</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">936</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">224</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">30</XPD:ATTR>
<XPD:ATTR name="Text" type="string">中间类，仅提供低级语言的虚函数接口
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[64]" type="UMLNoteLinkView" guid="Poav0t6Zh0q8ZO2B/pJKnQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">576,996;575,965</XPD:ATTR>
<XPD:REF name="Head">FaaEeI+iIEerjPRPGB8VFAAA</XPD:REF>
<XPD:REF name="Tail">uEpkrsDKfU2bd1WaOV9rnwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[65]" type="UMLNoteView" guid="hb5BQHsWdUmk5ZUklIDtrgAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">52</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">1304</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">288</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">38</XPD:ATTR>
<XPD:ATTR name="Text" type="string">对应的profile:arbvp1,vp30,vp40,gp4vp,gpu_vp,nvgp4
,gp4gp,gpu_gp,arbfp1,pf40,pf30,gp4fp,gpu_fp
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[66]" type="UMLNoteLinkView" guid="5DHarTWkhUCYHJGCxdJfNwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">261,1376;218,1341</XPD:ATTR>
<XPD:REF name="Head">hb5BQHsWdUmk5ZUklIDtrgAA</XPD:REF>
<XPD:REF name="Tail">WK/4UstwqUCps8d/sQN1/gAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[67]" type="UMLNoteView" guid="gA/lErayB0yfBUQa5bjDNAAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">1056</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">1380</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">112</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">30</XPD:ATTR>
<XPD:ATTR name="Text" type="string">对应的profile:fp20
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[68]" type="UMLNoteLinkView" guid="ySeWHz29IU+6iyvV4BWXYAAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">1079,1444;1101,1409</XPD:ATTR>
<XPD:REF name="Head">gA/lErayB0yfBUQa5bjDNAAA</XPD:REF>
<XPD:REF name="Tail">lzkXjfAOkEemOyBYnDvegwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[69]" type="UMLNoteView" guid="0leY8M3Orka4uN77s+2rcwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">1304</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">1376</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">129</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">53</XPD:ATTR>
<XPD:ATTR name="Text" type="string">对应的profile:ps_1_1,
ps_1_2,ps_1_3
ps_1_4
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[70]" type="UMLNoteLinkView" guid="XQ416pwnl0Ooo9+YsLu4DwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">1305,1444;1329,1428</XPD:ATTR>
<XPD:REF name="Head">0leY8M3Orka4uN77s+2rcwAA</XPD:REF>
<XPD:REF name="Tail">BLr6EpAJ6U2NNiF3bGgbxQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[71]" type="UMLNoteView" guid="/T6GX42OT0mvA27pShxz1AAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">752</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">1360</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">261</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">53</XPD:ATTR>
<XPD:ATTR name="Text" type="string">对GLSLProgram的包装和代理
为GLSLLinkProgramManager、GLRenderSystem、
GLSLProgram之间的相互调用提供接口
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[72]" type="UMLNoteLinkView" guid="VsnNEzDTf0GC/rS2o1RS2gAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">829,1432;852,1412</XPD:ATTR>
<XPD:REF name="Head">/T6GX42OT0mvA27pShxz1AAA</XPD:REF>
<XPD:REF name="Tail">vwiVDFz/Q0WOdQItkNmArAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[73]" type="UMLClassView" guid="r5zf3k5TLUiyaPeTjv0oeAAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">1344</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">2624</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">607</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">381</XPD:ATTR>
<XPD:REF name="Model">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="Y4LtggbRZkaRv3wrzidNdgAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="yIjJiONJrkycF7pkCZWXOQAA">
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
<XPD:ATTR name="Text" type="string">GLSLProgramCommon</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="zKAWHmMC2kerxvopsBnNnQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="Z/MRXbStdUu2r2g6utooeQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="zvTPb3D470SDer505rCwVwAA">
<XPD:REF name="Model">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="y0eK9p+JPUu306JRIVpxHQAA">
<XPD:REF name="Model">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="Q0+xvxunQES99Avfv2Ni0AAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:REF name="Model">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[74]" type="UMLClassView" guid="VpCm8r80JUqm1np5emC5bQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">2012</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">2764</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">180</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">82</XPD:ATTR>
<XPD:REF name="Model">CdxQfbx8hkeoUSJ+PAwvlwAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="Q+tdSaBCJE2OZEJ8+wn09wAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="gKva47N7qUKa7q4P/XG2xgAA">
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
<XPD:ATTR name="Text" type="string">CustomAttribute</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="C5lufjd7q0GcueIzDUGF5QAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="NTplXvCGbUiJg5UNo4iUMAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="AkU/0kWHrkCmrjK3P8Kb5AAA">
<XPD:REF name="Model">CdxQfbx8hkeoUSJ+PAwvlwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="X9L25beJRUWzk533neE0uQAA">
<XPD:REF name="Model">CdxQfbx8hkeoUSJ+PAwvlwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="8JB9r64mbkmHPquAi2B37QAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:REF name="Model">CdxQfbx8hkeoUSJ+PAwvlwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[75]" type="UMLEnumerationView" guid="JRS+1uvxg06FbJgZQCcXkQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">2280</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">2708</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">165</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">186</XPD:ATTR>
<XPD:REF name="Model">D8PJWyhJp0Se1jG74OxfIAAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="6ploBrBcBU+4aYhnCM0A9wAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="fpk4bDX4g0SqwGomz33TzgAA">
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
<XPD:ATTR name="Text" type="string">VertexElementSemantic</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="jYcNJRVCREeVvouuVD5qUwAA">
<XPD:ATTR name="Text" type="string">&lt;&lt;enumeration&gt;&gt;</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="V58YubGC6kCXMVzsowjyzwAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="EnumerationLiteralCompartment" type="UMLEnumerationLiteralCompartmentView" guid="WstRkVbIVEyiAhOzO5M9jgAA">
<XPD:REF name="Model">D8PJWyhJp0Se1jG74OxfIAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="e4A6fhjMhEO46woeGzCmGAAA">
<XPD:REF name="Model">D8PJWyhJp0Se1jG74OxfIAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[76]" type="UMLAssociationView" guid="u2/WaoxNV0Kjb8JBKstRvwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">2191,2803;2280,2801</XPD:ATTR>
<XPD:REF name="Model">mk5H0kekcEClpqnc8nfwWQAA</XPD:REF>
<XPD:REF name="Head">JRS+1uvxg06FbJgZQCcXkQAA</XPD:REF>
<XPD:REF name="Tail">VpCm8r80JUqm1np5emC5bQAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="EGhF4DfzTU2p+VD3YnsGAwAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">mk5H0kekcEClpqnc8nfwWQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="rfZRbANVdkGPXo4D0Cw6kgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">mk5H0kekcEClpqnc8nfwWQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="jx+lcp9/IE+9xSTkVYC5JAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">mk5H0kekcEClpqnc8nfwWQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="HeadRoleNameLabel" type="EdgeLabelView" guid="nhA8slubKkulwEH635rvPQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-0.523598775598299</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
<XPD:REF name="Model">76y1bJvFyEax61NXNc4zFwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TailRoleNameLabel" type="EdgeLabelView" guid="JzCPdO9qv0KLbuKCHQ5O8wAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">0.523598775598299</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
<XPD:REF name="Model">oj5H0bg+40Sj71kjXg+SGQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="HeadMultiplicityLabel" type="EdgeLabelView" guid="zUr32xXax06O7mknjT0VCQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">0.523598775598299</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
<XPD:REF name="Model">76y1bJvFyEax61NXNc4zFwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TailMultiplicityLabel" type="EdgeLabelView" guid="KZrAcVkHc06wYqwZbJvUYwAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-0.523598775598299</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
<XPD:REF name="Model">oj5H0bg+40Sj71kjXg+SGQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="HeadPropertyLabel" type="EdgeLabelView" guid="FkPzv8jBd0qtgQ1JEtKXogAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-0.785398163397448</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
<XPD:REF name="Model">76y1bJvFyEax61NXNc4zFwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TailPropertyLabel" type="EdgeLabelView" guid="JgZA+OiNRkmVjwGCH1rYrgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">0.785398163397448</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
<XPD:REF name="Model">oj5H0bg+40Sj71kjXg+SGQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="HeadQualifierCompartment" type="UMLQualifierCompartmentView" guid="x9+E92fj/kCLbWhHf2dlTQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">-804</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">-800</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
<XPD:REF name="Model">76y1bJvFyEax61NXNc4zFwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TailQualifierCompartment" type="UMLQualifierCompartmentView" guid="E8g53Ca0wU2kKvkUY3MbvQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">-804</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">-800</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
<XPD:REF name="Model">oj5H0bg+40Sj71kjXg+SGQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[77]" type="UMLAssociationView" guid="Fu4cNv/L502yhIbLMX/0TwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">1950,2807;2012,2806</XPD:ATTR>
<XPD:REF name="Model">nR36i1xnyk20Bnn9AzeIKQAA</XPD:REF>
<XPD:REF name="Head">VpCm8r80JUqm1np5emC5bQAA</XPD:REF>
<XPD:REF name="Tail">r5zf3k5TLUiyaPeTjv0oeAAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="2510ke0vK0S0+Ew7a6sE6AAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">nR36i1xnyk20Bnn9AzeIKQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="o0BZQQC1W0KTV52NJghLTgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">nR36i1xnyk20Bnn9AzeIKQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="23eZ2b+8B0aUhlVo4HkCLAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">nR36i1xnyk20Bnn9AzeIKQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="HeadRoleNameLabel" type="EdgeLabelView" guid="DD5/hkMhmEKESaVYsB7zqwAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-0.523598775598299</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
<XPD:REF name="Model">xOR0GezFS06VNfX9zsPOLAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TailRoleNameLabel" type="EdgeLabelView" guid="01Iw/WmwW0WmX97vL7ZTKAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">0.523598775598299</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
<XPD:REF name="Model">12mTE9x9B0W48xNOH4O6ZQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="HeadMultiplicityLabel" type="EdgeLabelView" guid="myGsNre4KkO20dc6+vxvTgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">0.523598775598299</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
<XPD:REF name="Model">xOR0GezFS06VNfX9zsPOLAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TailMultiplicityLabel" type="EdgeLabelView" guid="CrypR6LKfUyQDplCLTxbxgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-0.523598775598299</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
<XPD:REF name="Model">12mTE9x9B0W48xNOH4O6ZQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="HeadPropertyLabel" type="EdgeLabelView" guid="IrJVfJo/p0S+d2tT+2lLBQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-0.785398163397448</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
<XPD:REF name="Model">xOR0GezFS06VNfX9zsPOLAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TailPropertyLabel" type="EdgeLabelView" guid="hd4rfhzADUKNeXWTOxGBTAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">0.785398163397448</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
<XPD:REF name="Model">12mTE9x9B0W48xNOH4O6ZQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="HeadQualifierCompartment" type="UMLQualifierCompartmentView" guid="t02/DJRWakO74IX9przGAQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">-944</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">-812</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
<XPD:REF name="Model">xOR0GezFS06VNfX9zsPOLAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TailQualifierCompartment" type="UMLQualifierCompartmentView" guid="HaFOTk6lDkuNZbT4j9QZTQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">-944</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">-812</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
<XPD:REF name="Model">12mTE9x9B0W48xNOH4O6ZQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[78]" type="UMLNoteView" guid="7Ylirc2qv0KgAGeGYTYqzAAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">1208</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">2524</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">370</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">68</XPD:ATTR>
<XPD:ATTR name="Text" type="string">GLSLProgramCommon::getAttributeSemanticEnum(const String&amp; type)
{
//从msCustomAttributes中根据类型找出对应的VertexElementSemantic
}
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[79]" type="UMLNoteLinkView" guid="9hJpVFFoWEKntMpxXbnIfQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">1425,2624;1425,2591</XPD:ATTR>
<XPD:REF name="Head">7Ylirc2qv0KgAGeGYTYqzAAA</XPD:REF>
<XPD:REF name="Tail">r5zf3k5TLUiyaPeTjv0oeAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[80]" type="UMLClassView" guid="ni010HCEUECBSJJNEi5CVwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">2036</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">2560</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">360</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">95</XPD:ATTR>
<XPD:REF name="Model">XpqyRLzK50y91lNjpszliQAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="jIBIVwcJmkKwiSdeSPv4pQAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="A423lQ4AeUa8MV3dWGNOlQAA">
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
<XPD:ATTR name="Text" type="string">GLUniformReference</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="2aYVywkBwkOlpNw8OiqOcAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="B/Z1FixvF0iUDYZHE93J3QAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="2xPyzpF+3E6UO1alRF6a0AAA">
<XPD:REF name="Model">XpqyRLzK50y91lNjpszliQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="WWkWCGUv/USoPAKCmtfIgAAA">
<XPD:REF name="Model">XpqyRLzK50y91lNjpszliQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="brq7HO5aIU2AcPtScFgXfwAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:REF name="Model">XpqyRLzK50y91lNjpszliQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[81]" type="UMLAssociationView" guid="WYOi7YGxDUOvg4Gt5wlrUwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">1950,2704;2087,2654</XPD:ATTR>
<XPD:REF name="Model">R14TmsmkUUiFBJJbi9e5aAAA</XPD:REF>
<XPD:REF name="Head">ni010HCEUECBSJJNEi5CVwAA</XPD:REF>
<XPD:REF name="Tail">r5zf3k5TLUiyaPeTjv0oeAAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="2uAH1mYpqUeHaCwwAybYxAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">R14TmsmkUUiFBJJbi9e5aAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="6lyhBOH/R0KQAoTTHkOECgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">R14TmsmkUUiFBJJbi9e5aAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="Csr5ctF29k6yYh9yXhhagQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">R14TmsmkUUiFBJJbi9e5aAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="HeadRoleNameLabel" type="EdgeLabelView" guid="2bV0K9IELkyg539ZNaqkRQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-0.523598775598299</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
<XPD:REF name="Model">vSLYq6deEUuN7X1uOyqzowAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TailRoleNameLabel" type="EdgeLabelView" guid="5v5dVGMewUmunRWFvmt0BQAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">0.523598775598299</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
<XPD:REF name="Model">P/mR4golxE+MMWTyDSbcpwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="HeadMultiplicityLabel" type="EdgeLabelView" guid="K4jjCvSdYEGsCUrH6tIt5wAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">0.523598775598299</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
<XPD:REF name="Model">vSLYq6deEUuN7X1uOyqzowAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TailMultiplicityLabel" type="EdgeLabelView" guid="kMFL+TTt/Ey5N2VUdTukDwAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-0.523598775598299</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">25</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
<XPD:REF name="Model">P/mR4golxE+MMWTyDSbcpwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="HeadPropertyLabel" type="EdgeLabelView" guid="dKdWPYa0BUGtsXaLwbQPXAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-0.785398163397448</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epHead</XPD:ATTR>
<XPD:REF name="Model">vSLYq6deEUuN7X1uOyqzowAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TailPropertyLabel" type="EdgeLabelView" guid="uaqHeQt5YEu+w3shtY0PSgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">0.785398163397448</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">40</XPD:ATTR>
<XPD:ATTR name="EdgePosition" type="EdgePositionKind">epTail</XPD:ATTR>
<XPD:REF name="Model">P/mR4golxE+MMWTyDSbcpwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="HeadQualifierCompartment" type="UMLQualifierCompartmentView" guid="uAhPcVMi6E6+3qdux7NZpAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">-944</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">-812</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
<XPD:REF name="Model">vSLYq6deEUuN7X1uOyqzowAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TailQualifierCompartment" type="UMLQualifierCompartmentView" guid="rRuslOvtKE2fCzJ7iAFCmAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">-944</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">-812</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">50</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">8</XPD:ATTR>
<XPD:REF name="Model">P/mR4golxE+MMWTyDSbcpwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[82]" type="UMLNoteView" guid="Ae0K2xhsKE+/aOHyTF/rMAAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">1232</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">2444</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">428</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">68</XPD:ATTR>
<XPD:ATTR name="Text" type="string">GLSLProgramCommon::getAttributeSemanticString(VertexElementSemantic semantic)
{
//从 msCustomAttributes 中找出对应semantic的名字
}
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[83]" type="UMLNoteLinkView" guid="JwBzfi2nrEiTnXc/V6Nv+gAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">1604,2624;1604,2511</XPD:ATTR>
<XPD:REF name="Head">Ae0K2xhsKE+/aOHyTF/rMAAA</XPD:REF>
<XPD:REF name="Tail">r5zf3k5TLUiyaPeTjv0oeAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[84]" type="UMLNoteView" guid="yjLD1Qmc6Uu6D3UjEJm78AAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">1420</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">2328</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">296</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">98</XPD:ATTR>
<XPD:ATTR name="Text" type="string">void GLSLProgramCommon::extractLayoutQualifiers(void)
{
    String shaderSource = mVertexShader-&gt;getSource();
    从shaderSource 中找出相关参数保存到
     mCustomAttributesIndexes 中
}
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[85]" type="UMLNoteLinkView" guid="cr9YyY+Va0ipqgkM2yE+RwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="LineStyle" type="LineStyleKind">lsRectilinear</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">1692,2624;1692,2425</XPD:ATTR>
<XPD:REF name="Head">yjLD1Qmc6Uu6D3UjEJm78AAA</XPD:REF>
<XPD:REF name="Tail">r5zf3k5TLUiyaPeTjv0oeAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[86]" type="UMLClassView" guid="JYKZc2CowEqxBnm4h+LDCgAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">1364</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">3088</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">574</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">264</XPD:ATTR>
<XPD:REF name="Model">Zw0QZHYJxUK/vmfi3Ax5/wAA</XPD:REF>
<XPD:OBJ name="NameCompartment" type="UMLNameCompartmentView" guid="a3PZdDL/dU6okgVYyOWL5QAA">
<XPD:OBJ name="NameLabel" type="LabelView" guid="TxQo09D3tkqjlEFBRcfGWQAA">
<XPD:ATTR name="FontStyle" type="integer">1</XPD:ATTR>
<XPD:ATTR name="Text" type="string">GLSLLinkProgram</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="LabelView" guid="yFNekNerFE6zZPh+GiUEBgAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="LabelView" guid="tyaIcJunPk2l2gr/emiRHAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="AttributeCompartment" type="UMLAttributeCompartmentView" guid="F/nAUSNIdUKBGl0YH3dOeAAA">
<XPD:REF name="Model">Zw0QZHYJxUK/vmfi3Ax5/wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OperationCompartment" type="UMLOperationCompartmentView" guid="SPPxWpSP10GOy9t6z0hwiAAA">
<XPD:REF name="Model">Zw0QZHYJxUK/vmfi3Ax5/wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="TemplateParameterCompartment" type="UMLTemplateParameterCompartmentView" guid="fZSMt0YAn0CDoDwUamyvdAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:REF name="Model">Zw0QZHYJxUK/vmfi3Ax5/wAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[87]" type="UMLNoteView" guid="ELpY7GOp10K2xtBZ2TKaNQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">1380</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">3032</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">194</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">38</XPD:ATTR>
<XPD:ATTR name="Text" type="string">对GLSLProgram 对象的封装和管理
包含顶点、片断、图形着色器
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[88]" type="UMLNoteLinkView" guid="j3/d7K31bESqmWncwO5G8QAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">1515,3088;1496,3069</XPD:ATTR>
<XPD:REF name="Head">ELpY7GOp10K2xtBZ2TKaNQAA</XPD:REF>
<XPD:REF name="Tail">JYKZc2CowEqxBnm4h+LDCgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[89]" type="UMLGeneralizationView" guid="tb6pFy1KXEiNwJVYmjlv1gAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">1649,3088;1648,3004</XPD:ATTR>
<XPD:REF name="Model">GTFyyY1kAkuBUcTiYLW7PgAA</XPD:REF>
<XPD:REF name="Head">r5zf3k5TLUiyaPeTjv0oeAAA</XPD:REF>
<XPD:REF name="Tail">JYKZc2CowEqxBnm4h+LDCgAA</XPD:REF>
<XPD:OBJ name="NameLabel" type="EdgeLabelView" guid="wpYExNSxSUuJBRyopvLE/QAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">GTFyyY1kAkuBUcTiYLW7PgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="StereotypeLabel" type="EdgeLabelView" guid="BYOfOL1zwkeKMSd47N0k2QAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">30</XPD:ATTR>
<XPD:REF name="Model">GTFyyY1kAkuBUcTiYLW7PgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="PropertyLabel" type="EdgeLabelView" guid="P0NM+dPmc02mc6eNuGmccAAA">
<XPD:ATTR name="Visible" type="boolean">False</XPD:ATTR>
<XPD:ATTR name="Alpha" type="real">-1.5707963267949</XPD:ATTR>
<XPD:ATTR name="Distance" type="real">15</XPD:ATTR>
<XPD:REF name="Model">GTFyyY1kAkuBUcTiYLW7PgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[90]" type="UMLNoteView" guid="YhQDe3TLqECk7z+2Z6hgoQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">2028</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">3064</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">586</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">233</XPD:ATTR>
<XPD:ATTR name="Text" type="string">void GLSLLinkProgram::activate(void)
{
     mGLProgramHandle = glCreateProgramObjectARB();
     if ( canGetCompiledShaderBuffer )
             glProgramBinary(mGLProgramHandle, binaryFormat,  programBuffer, static_cast&lt;GLsizei&gt;(sizeOfBuffer));
             compileAndLink()
       else
              compileAndLink();
      
       buildGLUniformReferences();//从mVertexShader、mGeometryProgram、mFragmentProgram 中查找Uniform参数
       extractAttributes();  //使用glGetAttribLocationARB(mGLProgramHandle, a.name);查找attribute参数

       if (mLinked)
            glUseProgramObjectARB( mGLProgramHandle );
}
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[91]" type="UMLNoteLinkView" guid="eWex/+XREUeqenbF+Rvh7gAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">1937,3202;2028,3197</XPD:ATTR>
<XPD:REF name="Head">YhQDe3TLqECk7z+2Z6hgoQAA</XPD:REF>
<XPD:REF name="Tail">JYKZc2CowEqxBnm4h+LDCgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[92]" type="UMLNoteView" guid="o+9aY4wK+UacPCHVocGgwQAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">2228</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">3376</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">382</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">398</XPD:ATTR>
<XPD:ATTR name="Text" type="string">void GLSLLinkProgram::compileAndLink()
{
      if (mVertexShader)
      {
           mVertexShader-&gt;compile(true)
           mVertexShader-&gt;attachToProgramObject(mGLProgramHandle);
           const String&amp; vpSource = mVertexShader-&gt;getSource();
           //再从vpSource中查找相关参数
       }
       if (mGeometryProgram)
       {
            mGeometryProgram-&gt;compile(true)
            mGeometryProgram-&gt;attachToProgramObject(mGLProgramHandle)
            glProgramParameteriEXT() //设置参数
       }
       if (mFragmentProgram)
        {
            mFragmentProgram-&gt;compile(true) 
            mFragmentProgram-&gt;attachToProgramObject(mGLProgramHandle);
        }
        glLinkProgramARB( mGLProgramHandle )
}
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[93]" type="UMLNoteLinkView" guid="lcholCCWVkGXMxs08OqC/QAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">2228,3486;1936,3351</XPD:ATTR>
<XPD:REF name="Head">JYKZc2CowEqxBnm4h+LDCgAA</XPD:REF>
<XPD:REF name="Tail">o+9aY4wK+UacPCHVocGgwQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[94]" type="UMLNoteView" guid="+Nx9AySWjkq0LpAKZh/0PwAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Left" type="integer">1632</XPD:ATTR>
<XPD:ATTR name="Top" type="integer">1764</XPD:ATTR>
<XPD:ATTR name="Width" type="integer">182</XPD:ATTR>
<XPD:ATTR name="Height" type="integer">30</XPD:ATTR>
<XPD:ATTR name="Text" type="string">对应一个VP shader 或 FP shader
</XPD:ATTR>
</XPD:OBJ>
<XPD:OBJ name="OwnedViews[95]" type="UMLNoteLinkView" guid="y9t9lCx4VkSeSBqHkrI+ZgAA">
<XPD:ATTR name="LineColor" type="string">clMaroon</XPD:ATTR>
<XPD:ATTR name="FillColor" type="string">$00B9FFFF</XPD:ATTR>
<XPD:ATTR name="Points" type="Points">1761,1816;1737,1793</XPD:ATTR>
<XPD:REF name="Head">+Nx9AySWjkq0LpAKZh/0PwAA</XPD:REF>
<XPD:REF name="Tail">kUlNrOTlR02CoStGO7YQcgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
</XPD:OBJ>
<XPD:ATTR name="#OwnedElements" type="integer">45</XPD:ATTR>
<XPD:OBJ name="OwnedElements[0]" type="UMLClass" guid="Ca3BHRQ93E6lSiyVsEqA8AAA">
<XPD:ATTR name="Name" type="string">GpuProgram</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GpuProgram</XPD:ATTR>
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">7XwxMBRNikC1W/tAh/Pi0AAA</XPD:REF>
<XPD:REF name="Views[1]">sio+PQvR9UmVYDWgtmk/wAAA</XPD:REF>
<XPD:REF name="Views[2]">Wo04Emq3v0WJL/LPScVE3gAA</XPD:REF>
<XPD:REF name="Views[3]">2fKbbm5gDUO6QDm/w+4bTQAA</XPD:REF>
<XPD:ATTR name="#Generalizations" type="integer">1</XPD:ATTR>
<XPD:REF name="Generalizations[0]">nDa1aM6K20Gtr6VcPWornwAA</XPD:REF>
<XPD:ATTR name="#Specializations" type="integer">2</XPD:ATTR>
<XPD:REF name="Specializations[0]">aC2IYq3Q1EC7dFUiWiZW4wAA</XPD:REF>
<XPD:REF name="Specializations[1]">HyBs3SGoPkOouiXDZ2NpEAAA</XPD:REF>
<XPD:ATTR name="#Operations" type="integer">8</XPD:ATTR>
<XPD:OBJ name="Operations[0]" type="UMLOperation" guid="qL1NyQwsHEaGs232rXnO0gAA">
<XPD:ATTR name="Name" type="string">const String&amp; getSourceFile</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">const String&amp; getSourceFile</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="B4RUiunWEEajMRdpPxzy9AAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">qL1NyQwsHEaGs232rXnO0gAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[1]" type="UMLOperation" guid="zg8vHYWw/EOYPtwDIZ6olgAA">
<XPD:ATTR name="Name" type="string">const String&amp; getSource</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">const String&amp; getSource</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="xZHSmlk6gUK5zBNEm+xyfAAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">zg8vHYWw/EOYPtwDIZ6olgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[2]" type="UMLOperation" guid="GF0r001nHU258NX5JtHe0AAA">
<XPD:ATTR name="Name" type="string">void setType</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void setType</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="ILf4iN2ztE23bACSzf7eowAA">
<XPD:ATTR name="Name" type="string">GpuProgramType t</XPD:ATTR>
<XPD:REF name="BehavioralFeature">GF0r001nHU258NX5JtHe0AAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[3]" type="UMLOperation" guid="HvFMCYQSoUm7ir0YcG15sAAA">
<XPD:ATTR name="Name" type="string">GpuProgramType getType</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GpuProgramType getType</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="6PQEC3lWO0iBzOrjOO3TDQAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">HvFMCYQSoUm7ir0YcG15sAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[4]" type="UMLOperation" guid="O34pp+N0xUaioaoWHeSs0wAA">
<XPD:ATTR name="Name" type="string">virtual GpuProgram* _getBindingDelegate</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual GpuProgram* _getBindingDelegate</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="+KLB2PM3SUCkszVMIMR51gAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">O34pp+N0xUaioaoWHeSs0wAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[5]" type="UMLOperation" guid="GQ32N//NnECp/vj6GjJzhQAA">
<XPD:ATTR name="Name" type="string">virtual GpuProgramParametersSharedPtr createParameters</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual GpuProgramParametersSharedPtr createParameters</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="rRsTC4KsZUqGg+wKfChd8QAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">GQ32N//NnECp/vj6GjJzhQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[6]" type="UMLOperation" guid="LawSsZ5YDUGiepNTJhXfewAA">
<XPD:ATTR name="Name" type="string">virtual GpuProgramParametersSharedPtr getDefaultParameters</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual GpuProgramParametersSharedPtr getDefaultParameters</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="7kIV00AXf0652Urhl5VNeQAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">LawSsZ5YDUGiepNTJhXfewAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[7]" type="UMLOperation" guid="5Sm6zmX0r0OkPC+iv3cCHAAA">
<XPD:ATTR name="Name" type="string">virtual void loadFromSource</XPD:ATTR>
<XPD:ATTR name="Visibility" type="UMLVisibilityKind">vkProtected</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual void loadFromSource</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="scay211JTE+Zj+HhjONL9wAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">5Sm6zmX0r0OkPC+iv3cCHAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:ATTR name="#Associations" type="integer">4</XPD:ATTR>
<XPD:REF name="Associations[0]">sLZMUB8+P0SjEJv9NntdqgAA</XPD:REF>
<XPD:REF name="Associations[1]">wtubKrPE8U6JUwoRC/rTMgAA</XPD:REF>
<XPD:REF name="Associations[2]">0i0kwYdYJEui9W/l+ne5gAAA</XPD:REF>
<XPD:REF name="Associations[3]">LbFXjmStNEim2tE7Q6ifKQAA</XPD:REF>
<XPD:ATTR name="#Attributes" type="integer">31</XPD:ATTR>
<XPD:OBJ name="Attributes[0]" type="UMLAttribute" guid="tgHwVOzp/EG3mdhxMYojvwAA">
<XPD:ATTR name="Name" type="string">class  CmdType</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">class _OgreExport CmdType</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">public ParamCommand</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[1]" type="UMLAttribute" guid="WETS8789M0+rRlmB9NMfawAA">
<XPD:ATTR name="Name" type="string">class  CmdSyntax</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">class _OgreExport CmdSyntax</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">public ParamCommand</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[2]" type="UMLAttribute" guid="ATf3aaGExkGQhKUfrdfXjgAA">
<XPD:ATTR name="Name" type="string">class CmdSkeletal</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">class _OgreExport CmdSkeletal</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">public ParamCommand</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[3]" type="UMLAttribute" guid="SK5A8UEJXUugrAx4XVXzQQAA">
<XPD:ATTR name="Name" type="string">class  CmdMorph</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">class _OgreExport CmdMorph</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">public ParamCommand</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[4]" type="UMLAttribute" guid="jTlfelC4zkOqAKxmzWIHSQAA">
<XPD:ATTR name="Name" type="string">class CmdPose</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">class _OgreExport CmdPose</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">public ParamCommand</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[5]" type="UMLAttribute" guid="vv5WroWNt0++NK65FJxfqAAA">
<XPD:ATTR name="Name" type="string">class CmdVTF</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">class _OgreExport CmdVTF</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">public ParamCommand</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[6]" type="UMLAttribute" guid="juc/8atsSkCic+iM+hxvCAAA">
<XPD:ATTR name="Name" type="string">class CmdManualNamedConstsFile</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">class _OgreExport CmdManualNamedConstsFile</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">public ParamCommand</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[7]" type="UMLAttribute" guid="dxuhcwSz3UK39snz0oXKQwAA">
<XPD:ATTR name="Name" type="string">class  CmdAdjacency</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">class _OgreExport CmdAdjacency</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">public ParamCommand</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[8]" type="UMLAttribute" guid="fxnwjcrFR0qdxyCdT86P0QAA">
<XPD:ATTR name="Name" type="string">class CmdComputeGroupDims</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">class _OgreExport CmdComputeGroupDims</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">public ParamCommand</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[9]" type="UMLAttribute" guid="0uchabXlYUitm3FTM57fxAAA">
<XPD:ATTR name="Name" type="string">static CmdType msTypeCmd</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">static CmdType msTypeCmd</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[10]" type="UMLAttribute" guid="14c0dSpLTUmSLhvcdSNz3gAA">
<XPD:ATTR name="Name" type="string">static CmdSyntax msSyntaxCmd</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">static CmdSyntax msSyntaxCmd</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[11]" type="UMLAttribute" guid="BXh0wpbZwEC5CybqxG+85QAA">
<XPD:ATTR name="Name" type="string">static CmdSkeletal msSkeletalCmd</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">static CmdSkeletal msSkeletalCmd</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[12]" type="UMLAttribute" guid="Fz5SBUU+IESxUzrn1AZEfQAA">
<XPD:ATTR name="Name" type="string">static CmdMorph msMorphCmd</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">static CmdMorph msMorphCmd</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[13]" type="UMLAttribute" guid="gfLg3os1qUm5hTs5VRHJ4wAA">
<XPD:ATTR name="Name" type="string">static CmdPose msPoseCmd</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">static CmdPose msPoseCmd</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[14]" type="UMLAttribute" guid="cvaxR58mLUS6DcOcq4wVhQAA">
<XPD:ATTR name="Name" type="string">static CmdVTF msVTFCmd</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">static CmdVTF msVTFCmd</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[15]" type="UMLAttribute" guid="8I0nW6DLvkCuAaKzJVkUfQAA">
<XPD:ATTR name="Name" type="string">static CmdManualNamedConstsFile msManNamedConstsFileCmd</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">static CmdManualNamedConstsFile msManNamedConstsFileCmd</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[16]" type="UMLAttribute" guid="BT6Q9gV190Gr1pjj3qZwAgAA">
<XPD:ATTR name="Name" type="string">static CmdAdjacency msAdjacencyCmd</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">static CmdAdjacency msAdjacencyCmd</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[17]" type="UMLAttribute" guid="wsyFbxaw7Eeq/77EW+9foAAA">
<XPD:ATTR name="Name" type="string">static CmdComputeGroupDims msComputeGroupDimsCmd</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">static CmdComputeGroupDims msComputeGroupDimsCmd</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[18]" type="UMLAttribute" guid="fdXFFasZwE6mTcDFYE00dgAA">
<XPD:ATTR name="Name" type="string">GpuProgramType mType</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GpuProgramType mType</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[19]" type="UMLAttribute" guid="S5Gev5IBLU21SfK7zuTx3wAA">
<XPD:ATTR name="Name" type="string">String mFilename</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">String mFilename</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[20]" type="UMLAttribute" guid="pDt0TCq+HUaJeW7oKRv5WAAA">
<XPD:ATTR name="Name" type="string">String mSource</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">String mSource</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[21]" type="UMLAttribute" guid="y3F778xqEUSqbV/Q9ueO7AAA">
<XPD:ATTR name="Name" type="string">bool mLoadFromFile</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">bool mLoadFromFile</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[22]" type="UMLAttribute" guid="AccPVED5g0OSsAyPyEPHbgAA">
<XPD:ATTR name="Name" type="string">String mSyntaxCode</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">String mSyntaxCode</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[23]" type="UMLAttribute" guid="Z4qyoNm8c0CI1iECEd9xVgAA">
<XPD:ATTR name="Name" type="string">GpuLogicalBufferStructPtr mFloatLogicalToPhysical</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">mutable GpuLogicalBufferStructPtr mFloatLogicalToPhysical</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[24]" type="UMLAttribute" guid="Bsp3CwtmD0C84ZDLHVS1zQAA">
<XPD:ATTR name="Name" type="string">GpuLogicalBufferStructPtr mDoubleLogicalToPhysical</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GpuLogicalBufferStructPtr mDoubleLogicalToPhysical</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[25]" type="UMLAttribute" guid="MhdvuupaVUmTRuj1JTICjAAA">
<XPD:ATTR name="Name" type="string">GpuLogicalBufferStructPtr mIntLogicalToPhysical</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GpuLogicalBufferStructPtr mIntLogicalToPhysical</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[26]" type="UMLAttribute" guid="zHY+3Vdlh0OntKonwOf1YAAA">
<XPD:ATTR name="Name" type="string">GpuLogicalBufferStructPtr mUIntLogicalToPhysical</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GpuLogicalBufferStructPtr mUIntLogicalToPhysical</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[27]" type="UMLAttribute" guid="5efN5ZBfHke2gdY6Nu08oAAA">
<XPD:ATTR name="Name" type="string">GpuLogicalBufferStructPtr mBoolLogicalToPhysical</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GpuLogicalBufferStructPtr mBoolLogicalToPhysical</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[28]" type="UMLAttribute" guid="qxGIJGUHzkm3vB2Btt/3aQAA">
<XPD:ATTR name="Name" type="string">GpuNamedConstantsPtr mConstantDefs</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GpuNamedConstantsPtr mConstantDefs</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[29]" type="UMLAttribute" guid="vzozBNPP/kSa2gQsw3MCqQAA">
<XPD:ATTR name="Name" type="string">String mManualNamedConstantsFile</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">String mManualNamedConstantsFile</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[30]" type="UMLAttribute" guid="Rxz7u/qaPk+l6EOzrAzeAgAA">
<XPD:ATTR name="Name" type="string">bool mLoadedManualNamedConstants</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">bool mLoadedManualNamedConstants</XPD:ATTR>
<XPD:REF name="Owner">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[1]" type="UMLClass" guid="3tJKl1yiY0GhAKOtXMpP+AAA">
<XPD:ATTR name="Name" type="string">Resource</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">Resource</XPD:ATTR>
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">9fEe1YbZNkamI1cvbNymQgAA</XPD:REF>
<XPD:REF name="Views[1]">+Orw/z7X1UmPm5xgfujL4wAA</XPD:REF>
<XPD:REF name="Views[2]">Waof0ouR6UC4/hTLSbA11wAA</XPD:REF>
<XPD:REF name="Views[3]">uS4lqMHD9UuMBLkiTOZK9AAA</XPD:REF>
<XPD:ATTR name="#Specializations" type="integer">1</XPD:ATTR>
<XPD:REF name="Specializations[0]">nDa1aM6K20Gtr6VcPWornwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[2]" type="UMLGeneralization" guid="nDa1aM6K20Gtr6VcPWornwAA">
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:REF name="Child">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
<XPD:REF name="Parent">3tJKl1yiY0GhAKOtXMpP+AAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">umSfWEECW06AxSchScg8DwAA</XPD:REF>
<XPD:REF name="Views[1]">b9MJ/A03rUaQ7MeK/Df5TgAA</XPD:REF>
<XPD:REF name="Views[2]">KBM/q/6cX0uGvOO1426+vAAA</XPD:REF>
<XPD:REF name="Views[3]">TlKbiIMJ0kenRh0WIx9ZJgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[3]" type="UMLClass" guid="Ruu1l0kA0UeLc0M17+AyDgAA">
<XPD:ATTR name="Name" type="string">ParamCommand</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">ParamCommand</XPD:ATTR>
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">L3jXB4PeK0+vhdz0b4mAugAA</XPD:REF>
<XPD:REF name="Views[1]">ZH+3zCYHTUGqTKTdBbjIkgAA</XPD:REF>
<XPD:REF name="Views[2]">LRgZZMyiSkmH8c9PeLeDNwAA</XPD:REF>
<XPD:REF name="Views[3]">dAxU8pEMCkWDKZamEHjxTAAA</XPD:REF>
<XPD:ATTR name="#Operations" type="integer">2</XPD:ATTR>
<XPD:OBJ name="Operations[0]" type="UMLOperation" guid="DekeZA66EEqCBhqoQJWjZgAA">
<XPD:ATTR name="Name" type="string">virtual String doGet</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual String doGet</XPD:ATTR>
<XPD:REF name="Owner">Ruu1l0kA0UeLc0M17+AyDgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="Ua8rH+25G0ObCjfoxAufOAAA">
<XPD:ATTR name="Name" type="string">const void* target</XPD:ATTR>
<XPD:REF name="BehavioralFeature">DekeZA66EEqCBhqoQJWjZgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[1]" type="UMLOperation" guid="nEUHI6mU70W8Jwyq/4Lx2wAA">
<XPD:ATTR name="Name" type="string">virtual void doSet</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual void doSet</XPD:ATTR>
<XPD:REF name="Owner">Ruu1l0kA0UeLc0M17+AyDgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">2</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="0OEmPrCEwUKHZCLmUOs0sQAA">
<XPD:ATTR name="Name" type="string">void* target</XPD:ATTR>
<XPD:REF name="BehavioralFeature">nEUHI6mU70W8Jwyq/4Lx2wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="r02dA472LE2Nz9gljZxfEgAA">
<XPD:ATTR name="Name" type="string">const String&amp; val</XPD:ATTR>
<XPD:REF name="BehavioralFeature">nEUHI6mU70W8Jwyq/4Lx2wAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:ATTR name="#Associations" type="integer">1</XPD:ATTR>
<XPD:REF name="Associations[0]">aPhNTAUDbkqsZb1ZpjdNzAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[4]" type="UMLAssociation" guid="MyTFj70SSUyGU6RMvKGV1wAA">
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">nBzYToKBQkWfGHjSdS0s2QAA</XPD:REF>
<XPD:REF name="Views[1]">bgA8xvjv60CiQB917B5ZSQAA</XPD:REF>
<XPD:REF name="Views[2]">Cc7fGzHcvkCztiuZGv7fpwAA</XPD:REF>
<XPD:REF name="Views[3]">2+ZfQPFzrEq7QHm2dn+29AAA</XPD:REF>
<XPD:ATTR name="#Connections" type="integer">2</XPD:ATTR>
<XPD:OBJ name="Connections[0]" type="UMLAssociationEnd" guid="sLZMUB8+P0SjEJv9NntdqgAA">
<XPD:ATTR name="IsNavigable" type="boolean">False</XPD:ATTR>
<XPD:REF name="Association">MyTFj70SSUyGU6RMvKGV1wAA</XPD:REF>
<XPD:REF name="Participant">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">sDULMCs3SUm89qxVAhEfqAAA</XPD:REF>
<XPD:REF name="Views[1]">P7COXCJNqEmbUqZolK1gWwAA</XPD:REF>
<XPD:REF name="Views[2]">DabF+r6s+US7AlXcSvrEVQAA</XPD:REF>
<XPD:REF name="Views[3]">+P/pWFLl4UShobhv4cXS1wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Connections[1]" type="UMLAssociationEnd" guid="aPhNTAUDbkqsZb1ZpjdNzAAA">
<XPD:REF name="Association">MyTFj70SSUyGU6RMvKGV1wAA</XPD:REF>
<XPD:REF name="Participant">Ruu1l0kA0UeLc0M17+AyDgAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">fL2GtfkQUUK9AFubn4+UOwAA</XPD:REF>
<XPD:REF name="Views[1]">guU0gSbeJUCZN/XeshbBTAAA</XPD:REF>
<XPD:REF name="Views[2]">/whFt6vdHkueuFVGWLwBsgAA</XPD:REF>
<XPD:REF name="Views[3]">pAK6xa6HXUq8y6eHbj337QAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[5]" type="UMLClass" guid="Ehy2CXKPwkK55nQi7MbYlwAA">
<XPD:ATTR name="Name" type="string">GLGpuProgram</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLGpuProgram</XPD:ATTR>
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">uEpkrsDKfU2bd1WaOV9rnwAA</XPD:REF>
<XPD:REF name="Views[1]">GFMazsu1CEO2sPNKJWrjNQAA</XPD:REF>
<XPD:REF name="Views[2]">Gu/OYF3LgUSgN+X3UY+5iAAA</XPD:REF>
<XPD:REF name="Views[3]">EWtsTx8FMkmvP6U2Kr6OoAAA</XPD:REF>
<XPD:ATTR name="#Generalizations" type="integer">1</XPD:ATTR>
<XPD:REF name="Generalizations[0]">aC2IYq3Q1EC7dFUiWiZW4wAA</XPD:REF>
<XPD:ATTR name="#Specializations" type="integer">4</XPD:ATTR>
<XPD:REF name="Specializations[0]">VOrHxO1nkU2iudvb8+kHzAAA</XPD:REF>
<XPD:REF name="Specializations[1]">UxkBFQa/LUe8Gh6BwSqpwwAA</XPD:REF>
<XPD:REF name="Specializations[2]">IH3ohYThFEquKvmRS31EUQAA</XPD:REF>
<XPD:REF name="Specializations[3]">h/o8+Z2J1ECQylXbdBBy/gAA</XPD:REF>
<XPD:ATTR name="#Operations" type="integer">8</XPD:ATTR>
<XPD:OBJ name="Operations[0]" type="UMLOperation" guid="/nVbQpQsUE6UcUSJjanFSQAA">
<XPD:ATTR name="Name" type="string">virtual void bindProgram</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual void bindProgram</XPD:ATTR>
<XPD:REF name="Owner">Ehy2CXKPwkK55nQi7MbYlwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="X4N3uyqCWEylQ2N0vIgYIAAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">/nVbQpQsUE6UcUSJjanFSQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[1]" type="UMLOperation" guid="K4J/cjccwkCV+Kkuo5eAnQAA">
<XPD:ATTR name="Name" type="string">virtual void unbindProgram</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual void unbindProgram</XPD:ATTR>
<XPD:REF name="Owner">Ehy2CXKPwkK55nQi7MbYlwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="JSM4zn7ziUmKcsCABpJH3gAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">K4J/cjccwkCV+Kkuo5eAnQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[2]" type="UMLOperation" guid="4769/1wa40mExuAeQVI4DAAA">
<XPD:ATTR name="Name" type="string">virtual void bindProgramParameters</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual void bindProgramParameters</XPD:ATTR>
<XPD:REF name="Owner">Ehy2CXKPwkK55nQi7MbYlwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">2</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="4JgaP9z/iUGLIgRDtaJAogAA">
<XPD:ATTR name="Name" type="string">GpuProgramParametersSharedPtr params</XPD:ATTR>
<XPD:REF name="BehavioralFeature">4769/1wa40mExuAeQVI4DAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="Y0ZJA4gho0KjcGk3VNAJqQAA">
<XPD:ATTR name="Name" type="string">uint16 mask</XPD:ATTR>
<XPD:REF name="BehavioralFeature">4769/1wa40mExuAeQVI4DAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[3]" type="UMLOperation" guid="RmOWlu9wKUGQhlP9ftbKrAAA">
<XPD:ATTR name="Name" type="string">virtual void bindProgramPassIterationParameters</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual void bindProgramPassIterationParameters</XPD:ATTR>
<XPD:REF name="Owner">Ehy2CXKPwkK55nQi7MbYlwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="D4EH5TQuZUGkz93J/qlEbQAA">
<XPD:ATTR name="Name" type="string">GpuProgramParametersSharedPtr params</XPD:ATTR>
<XPD:REF name="BehavioralFeature">RmOWlu9wKUGQhlP9ftbKrAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[4]" type="UMLOperation" guid="pEfMYAWKX02Exsriw6gW0AAA">
<XPD:ATTR name="Name" type="string">virtual size_t calculateSize</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual size_t calculateSize</XPD:ATTR>
<XPD:REF name="Owner">Ehy2CXKPwkK55nQi7MbYlwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="pkgMmgvc2UyvrE3/OBf0dwAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">pEfMYAWKX02Exsriw6gW0AAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[5]" type="UMLOperation" guid="Eu1ZSkRO7EOq4QXdIjOMHwAA">
<XPD:ATTR name="Name" type="string">virtual bool isAttributeValid</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual bool isAttributeValid</XPD:ATTR>
<XPD:REF name="Owner">Ehy2CXKPwkK55nQi7MbYlwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">2</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="8jfM8Lg/7EaZGmkARfiWsAAA">
<XPD:ATTR name="Name" type="string">VertexElementSemantic semantic</XPD:ATTR>
<XPD:REF name="BehavioralFeature">Eu1ZSkRO7EOq4QXdIjOMHwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="+xSgfXLhHEGAheuB+NKESwAA">
<XPD:ATTR name="Name" type="string">uint index</XPD:ATTR>
<XPD:REF name="BehavioralFeature">Eu1ZSkRO7EOq4QXdIjOMHwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[6]" type="UMLOperation" guid="huGxLCllzUK9kK9DHnseMgAA">
<XPD:ATTR name="Name" type="string">void loadFromSource</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void loadFromSource</XPD:ATTR>
<XPD:REF name="Owner">Ehy2CXKPwkK55nQi7MbYlwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="iYrsQ15CP0ev46yh0CBaYgAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">huGxLCllzUK9kK9DHnseMgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[7]" type="UMLOperation" guid="ijFKdj692kCmOf1sllZ5DQAA">
<XPD:ATTR name="Name" type="string">void unloadImpl</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void unloadImpl</XPD:ATTR>
<XPD:REF name="Owner">Ehy2CXKPwkK55nQi7MbYlwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="/YvgZQpc2k2fz6WYhDkLQAAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">ijFKdj692kCmOf1sllZ5DQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:ATTR name="#Attributes" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Attributes[0]" type="UMLAttribute" guid="nO8VYmwqekuhNj1VAzmI3QAA">
<XPD:ATTR name="Name" type="string">GLuint mProgramID</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLuint mProgramID</XPD:ATTR>
<XPD:REF name="Owner">Ehy2CXKPwkK55nQi7MbYlwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[6]" type="UMLGeneralization" guid="aC2IYq3Q1EC7dFUiWiZW4wAA">
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:REF name="Child">Ehy2CXKPwkK55nQi7MbYlwAA</XPD:REF>
<XPD:REF name="Parent">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">7YTePMsxb0eSTuvJpbYdBwAA</XPD:REF>
<XPD:REF name="Views[1]">mqaaCAGyX0e7YqjV9WlAgQAA</XPD:REF>
<XPD:REF name="Views[2]">0ixNQzN3M0O4c5e0T8YvBAAA</XPD:REF>
<XPD:REF name="Views[3]">X7sDdv0MtEC45A34yRlaBgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[7]" type="UMLClass" guid="G+dIPc91GE6nU3XEXBlGwwAA">
<XPD:ATTR name="Name" type="string">GLArbGpuProgram</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLArbGpuProgram</XPD:ATTR>
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">WK/4UstwqUCps8d/sQN1/gAA</XPD:REF>
<XPD:REF name="Views[1]">FJBHvbBCt0OeDXtOWW+L7AAA</XPD:REF>
<XPD:REF name="Views[2]">yhVNNF5wUEiZvLI3f72J1wAA</XPD:REF>
<XPD:REF name="Views[3]">qzDlSLS7oE2J2QPuwA7PXgAA</XPD:REF>
<XPD:ATTR name="#Generalizations" type="integer">1</XPD:ATTR>
<XPD:REF name="Generalizations[0]">VOrHxO1nkU2iudvb8+kHzAAA</XPD:REF>
<XPD:ATTR name="#Operations" type="integer">7</XPD:ATTR>
<XPD:OBJ name="Operations[0]" type="UMLOperation" guid="/XSn9Gs5906xzcTHyVqL6AAA">
<XPD:ATTR name="Name" type="string">void bindProgram</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void bindProgram</XPD:ATTR>
<XPD:REF name="Owner">G+dIPc91GE6nU3XEXBlGwwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="8i87gn0eUEGPXj/8+LJ08QAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">/XSn9Gs5906xzcTHyVqL6AAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[1]" type="UMLOperation" guid="F3BLeeDwEUOHMcQo6LPKLQAA">
<XPD:ATTR name="Name" type="string">void unbindProgram</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void unbindProgram</XPD:ATTR>
<XPD:REF name="Owner">G+dIPc91GE6nU3XEXBlGwwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="4C2k7CJXk0ygeAPM0sNhcQAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">F3BLeeDwEUOHMcQo6LPKLQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[2]" type="UMLOperation" guid="jwqEivjywEKSBprU92lNnwAA">
<XPD:ATTR name="Name" type="string">void bindProgramParameters</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void bindProgramParameters</XPD:ATTR>
<XPD:REF name="Owner">G+dIPc91GE6nU3XEXBlGwwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">2</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="u4ljA+230kCx8b9HEUgleQAA">
<XPD:ATTR name="Name" type="string">GpuProgramParametersSharedPtr params</XPD:ATTR>
<XPD:REF name="BehavioralFeature">jwqEivjywEKSBprU92lNnwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="07dPDm5/Ake/ErujqExG7AAA">
<XPD:ATTR name="Name" type="string">uint16 mask</XPD:ATTR>
<XPD:REF name="BehavioralFeature">jwqEivjywEKSBprU92lNnwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[3]" type="UMLOperation" guid="tJbdYIS6lU6JCrklEGIB6wAA">
<XPD:ATTR name="Name" type="string">void bindProgramPassIterationParameters</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void bindProgramPassIterationParameters</XPD:ATTR>
<XPD:REF name="Owner">G+dIPc91GE6nU3XEXBlGwwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="ULWO4xRbrEmLCL6CrzRyoAAA">
<XPD:ATTR name="Name" type="string">GpuProgramParametersSharedPtr params</XPD:ATTR>
<XPD:REF name="BehavioralFeature">tJbdYIS6lU6JCrklEGIB6wAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[4]" type="UMLOperation" guid="BU3BwvTgnEK6WUG4Q6xqhQAA">
<XPD:ATTR name="Name" type="string">GLenum getProgramType</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLenum getProgramType</XPD:ATTR>
<XPD:REF name="Owner">G+dIPc91GE6nU3XEXBlGwwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="HQcv9iiM/U6TFKXKgDFdzAAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">BU3BwvTgnEK6WUG4Q6xqhQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[5]" type="UMLOperation" guid="2FtiFul4UU+aI3KkVg2QCgAA">
<XPD:ATTR name="Name" type="string">void loadFromSource</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void loadFromSource</XPD:ATTR>
<XPD:REF name="Owner">G+dIPc91GE6nU3XEXBlGwwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="pu/XOOIlSkaXZ/ie6IHwYQAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">2FtiFul4UU+aI3KkVg2QCgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[6]" type="UMLOperation" guid="J1rX2V9gG02za54Zae97vQAA">
<XPD:ATTR name="Name" type="string">void unloadImpl</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void unloadImpl</XPD:ATTR>
<XPD:REF name="Owner">G+dIPc91GE6nU3XEXBlGwwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="JRlKaPZmF0GtNGZ7Dby+GQAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">J1rX2V9gG02za54Zae97vQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[8]" type="UMLGeneralization" guid="VOrHxO1nkU2iudvb8+kHzAAA">
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:REF name="Child">G+dIPc91GE6nU3XEXBlGwwAA</XPD:REF>
<XPD:REF name="Parent">Ehy2CXKPwkK55nQi7MbYlwAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">HuxWXuCnHUKfRzHn2wEGzAAA</XPD:REF>
<XPD:REF name="Views[1]">YzVEkrbt6EeH2PXzTN34NQAA</XPD:REF>
<XPD:REF name="Views[2]">zTzCLEhH9k2RFTVEkokG/gAA</XPD:REF>
<XPD:REF name="Views[3]">e81v6nqDQk2kCjag9m40owAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[9]" type="UMLClass" guid="qQcG7ZUUXU+qilFWk/228wAA">
<XPD:ATTR name="Name" type="string">HighLevelGpuProgram</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">HighLevelGpuProgram</XPD:ATTR>
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">E1fUCEKksUmeW0nCKtzUjgAA</XPD:REF>
<XPD:REF name="Views[1]">Hsxbv3QZ5UGu31TMkhU4XgAA</XPD:REF>
<XPD:REF name="Views[2]">FHYfDhoG6EKcOyllpH9uXwAA</XPD:REF>
<XPD:REF name="Views[3]">7TXVZEnzkEiKlfhKp/oanAAA</XPD:REF>
<XPD:ATTR name="#Generalizations" type="integer">1</XPD:ATTR>
<XPD:REF name="Generalizations[0]">HyBs3SGoPkOouiXDZ2NpEAAA</XPD:REF>
<XPD:ATTR name="#Specializations" type="integer">5</XPD:ATTR>
<XPD:REF name="Specializations[0]">7B/9P428eEiXYWexhNvhIwAA</XPD:REF>
<XPD:REF name="Specializations[1]">Zwf/Dz67kUy89d+dU+pUZwAA</XPD:REF>
<XPD:REF name="Specializations[2]">OF9vS5TOyUu/iizvw+AifwAA</XPD:REF>
<XPD:REF name="Specializations[3]">CKdie6QxKUah0QC9CtBABgAA</XPD:REF>
<XPD:REF name="Specializations[4]">fXNppTlgnECXzqa+7jrD1AAA</XPD:REF>
<XPD:ATTR name="#Operations" type="integer">15</XPD:ATTR>
<XPD:OBJ name="Operations[0]" type="UMLOperation" guid="Cuuj5dn7tESKfOUt52nNXgAA">
<XPD:ATTR name="Name" type="string">virtual void loadHighLevel</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual void loadHighLevel</XPD:ATTR>
<XPD:REF name="Owner">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="XYqM44A490iQjx/wEL60iQAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">Cuuj5dn7tESKfOUt52nNXgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[1]" type="UMLOperation" guid="Tm1qoU/CjUaiDiDDjFKNRAAA">
<XPD:ATTR name="Name" type="string">virtual void unloadHighLevel</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual void unloadHighLevel</XPD:ATTR>
<XPD:REF name="Owner">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="F2PkpCOT5UaH4AO1osasewAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">Tm1qoU/CjUaiDiDDjFKNRAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[2]" type="UMLOperation" guid="T4qZqaAkKk6DcQdTxxp0KQAA">
<XPD:ATTR name="Name" type="string">virtual void loadHighLevelImpl</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual void loadHighLevelImpl</XPD:ATTR>
<XPD:REF name="Owner">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="PkPbHRJdZ0G4FMO3gjY6jgAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">T4qZqaAkKk6DcQdTxxp0KQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[3]" type="UMLOperation" guid="oSNfjEm30U64gCIJSAcNlwAA">
<XPD:ATTR name="Name" type="string">virtual void createLowLevelImpl</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual void createLowLevelImpl</XPD:ATTR>
<XPD:REF name="Owner">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="pYI6uX/U9UGQCwcvjy8lvwAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">oSNfjEm30U64gCIJSAcNlwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[4]" type="UMLOperation" guid="CnA+1CmAvU23LGkT6sftBwAA">
<XPD:ATTR name="Name" type="string">virtual void unloadHighLevelImpl</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual void unloadHighLevelImpl</XPD:ATTR>
<XPD:REF name="Owner">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="IiUh2YkxpU++RcUlIE0s9QAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">CnA+1CmAvU23LGkT6sftBwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[5]" type="UMLOperation" guid="jOHhnS57bESjWLM5RhcAEAAA">
<XPD:ATTR name="Name" type="string">virtual void populateParameterNames</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual void populateParameterNames</XPD:ATTR>
<XPD:REF name="Owner">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="vi7NiYARlE2vO8NMEbG2UgAA">
<XPD:ATTR name="Name" type="string">GpuProgramParametersSharedPtr params</XPD:ATTR>
<XPD:REF name="BehavioralFeature">jOHhnS57bESjWLM5RhcAEAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[6]" type="UMLOperation" guid="eA1kbif/UUqSLS/qPxG++QAA">
<XPD:ATTR name="Name" type="string">virtual void buildConstantDefinitions</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual void buildConstantDefinitions</XPD:ATTR>
<XPD:REF name="Owner">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Operations[7]" type="UMLOperation" guid="cejsySPxG0yf9jbcwdxRXQAA">
<XPD:ATTR name="Name" type="string">void loadImpl</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void loadImpl</XPD:ATTR>
<XPD:REF name="Owner">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Operations[8]" type="UMLOperation" guid="1Aclpf1SjEG0o8NsLO/F5wAA">
<XPD:ATTR name="Name" type="string">void unloadImpl</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void unloadImpl</XPD:ATTR>
<XPD:REF name="Owner">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Operations[9]" type="UMLOperation" guid="hOGgphRjOUGU/PqTHzt1SAAA">
<XPD:ATTR name="Name" type="string">GpuProgramParametersSharedPtr createParameters</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GpuProgramParametersSharedPtr createParameters</XPD:ATTR>
<XPD:REF name="Owner">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="ajQ8L+V3UEenGQuRA3h61wAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">hOGgphRjOUGU/PqTHzt1SAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[10]" type="UMLOperation" guid="osmmDeBGykOyyu51HAaQlAAA">
<XPD:ATTR name="Name" type="string">GpuProgram* _getBindingDelegate</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GpuProgram* _getBindingDelegate</XPD:ATTR>
<XPD:REF name="Owner">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="PVRs2ZyBz0CvKdvGbz9OhQAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">osmmDeBGykOyyu51HAaQlAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[11]" type="UMLOperation" guid="OA2JiSzqzE6PfOM3AOxrrAAA">
<XPD:ATTR name="Name" type="string">const GpuNamedConstants&amp; getConstantDefinitions</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">const GpuNamedConstants&amp; getConstantDefinitions</XPD:ATTR>
<XPD:REF name="Owner">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Operations[12]" type="UMLOperation" guid="5v873HpYg0uO3FkVLzpTdgAA">
<XPD:ATTR name="Name" type="string">virtual size_t calculateSize</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual size_t calculateSize</XPD:ATTR>
<XPD:REF name="Owner">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="e4G3ns9dkU6RnBKsLghvQgAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">5v873HpYg0uO3FkVLzpTdgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[13]" type="UMLOperation" guid="xwrjS9qxhE2Up1BoY5eOpQAA">
<XPD:ATTR name="Name" type="string">void setPreprocessorDefines</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void setPreprocessorDefines</XPD:ATTR>
<XPD:REF name="Owner">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="isCQUuA8okWmVHZOsSb1uQAA">
<XPD:ATTR name="Name" type="string">const String&amp; defines</XPD:ATTR>
<XPD:REF name="BehavioralFeature">xwrjS9qxhE2Up1BoY5eOpQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[14]" type="UMLOperation" guid="8Q7ufJHGfUyNo+FmzYyN/gAA">
<XPD:ATTR name="Name" type="string">const String&amp; getPreprocessorDefines</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">const String&amp; getPreprocessorDefines</XPD:ATTR>
<XPD:REF name="Owner">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="I8jvsXjrzUae1AnVFTx3EQAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">8Q7ufJHGfUyNo+FmzYyN/gAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:ATTR name="#Attributes" type="integer">4</XPD:ATTR>
<XPD:OBJ name="Attributes[0]" type="UMLAttribute" guid="xpIVBd4EXEGjNjJ5+ME4EAAA">
<XPD:ATTR name="Name" type="string">bool mHighLevelLoaded</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">bool mHighLevelLoaded</XPD:ATTR>
<XPD:REF name="Owner">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[1]" type="UMLAttribute" guid="fivQuMv5vkyWyE5qh6EaSgAA">
<XPD:ATTR name="Name" type="string">GpuProgramPtr mAssemblerProgram</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GpuProgramPtr mAssemblerProgram</XPD:ATTR>
<XPD:REF name="Owner">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[2]" type="UMLAttribute" guid="zQb1IdkeC023cnsktD73twAA">
<XPD:ATTR name="Name" type="string">bool mConstantDefsBuilt</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">bool mConstantDefsBuilt</XPD:ATTR>
<XPD:REF name="Owner">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[3]" type="UMLAttribute" guid="0MQDrmK8FEm36jiydt40iwAA">
<XPD:ATTR name="Name" type="string">String mPreprocessorDefines</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">String mPreprocessorDefines</XPD:ATTR>
<XPD:REF name="Owner">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[10]" type="UMLClass" guid="ittCx8YirkiwSGAYDAkslwAA">
<XPD:ATTR name="Name" type="string">CgProgram</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">CgProgram</XPD:ATTR>
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">X0yRvwgQrE2qRZM3gzOqXwAA</XPD:REF>
<XPD:REF name="Views[1]">GcQaRiB3SEGRWep+/PjW0wAA</XPD:REF>
<XPD:REF name="Views[2]">XtozuHM7eE6uzzNDm9XsKAAA</XPD:REF>
<XPD:REF name="Views[3]">hcA/w0hiI0KHbRNUL23UygAA</XPD:REF>
<XPD:ATTR name="#Generalizations" type="integer">1</XPD:ATTR>
<XPD:REF name="Generalizations[0]">7B/9P428eEiXYWexhNvhIwAA</XPD:REF>
<XPD:ATTR name="#Operations" type="integer">17</XPD:ATTR>
<XPD:OBJ name="Operations[0]" type="UMLOperation" guid="TCFXV6IwQUmy4TBcNR1eOwAA">
<XPD:ATTR name="Name" type="string">void loadFromSource</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void loadFromSource</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="Q2cw+BGPjUSQCB7rrrBAYQAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">TCFXV6IwQUmy4TBcNR1eOwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[1]" type="UMLOperation" guid="1/pYfq8dFEucPNKjyN5LZAAA">
<XPD:ATTR name="Name" type="string">void createLowLevelImpl</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void createLowLevelImpl</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="VhcKVQ7Yr0mATNUiIM82OAAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">1/pYfq8dFEucPNKjyN5LZAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[2]" type="UMLOperation" guid="dNtOYcf2I0mTvbJS0X3cfgAA">
<XPD:ATTR name="Name" type="string">void unloadHighLevelImpl</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void unloadHighLevelImpl</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="kxKNA/Lb3kCGy1VUrdkgXgAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">dNtOYcf2I0mTvbJS0X3cfgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[3]" type="UMLOperation" guid="c+yBfNSAdkWHqM2rm3nkWwAA">
<XPD:ATTR name="Name" type="string">void buildConstantDefinitions</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void buildConstantDefinitions</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Operations[4]" type="UMLOperation" guid="onOJ8WIsVEOMK06CJ1me/QAA">
<XPD:ATTR name="Name" type="string">void loadHighLevelSafe</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void loadHighLevelSafe</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Operations[5]" type="UMLOperation" guid="sdD8g8cYgUGG6qJbzHHoEQAA">
<XPD:ATTR name="Name" type="string">void recurseParams</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void recurseParams</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">2</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="wW1qS97pnEa5+JlG7Ldg1QAA">
<XPD:ATTR name="Name" type="string">CGparameter param</XPD:ATTR>
<XPD:REF name="BehavioralFeature">sdD8g8cYgUGG6qJbzHHoEQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="RVp5lnzRSE6Yb9nqq/CJdgAA">
<XPD:ATTR name="Name" type="string">size_t contextArraySize</XPD:ATTR>
<XPD:ATTR name="DefaultValue" type="string">1</XPD:ATTR>
<XPD:REF name="BehavioralFeature">sdD8g8cYgUGG6qJbzHHoEQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[6]" type="UMLOperation" guid="DKZ9h0W0R0uaearHk/FBlgAA">
<XPD:ATTR name="Name" type="string">void mapTypeAndElementSize</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void mapTypeAndElementSize</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">3</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="POLpk9zU40CSIQC84y2KUQAA">
<XPD:ATTR name="Name" type="string">CGtype cgType</XPD:ATTR>
<XPD:REF name="BehavioralFeature">DKZ9h0W0R0uaearHk/FBlgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="5NPxCIqaH02ghnbHmGkiBwAA">
<XPD:ATTR name="Name" type="string">bool isRegisterCombiner</XPD:ATTR>
<XPD:REF name="BehavioralFeature">DKZ9h0W0R0uaearHk/FBlgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[2]" type="UMLParameter" guid="O4Ug1AtKG0GU2SQ31kKIJgAA">
<XPD:ATTR name="Name" type="string">GpuConstantDefinition&amp; def</XPD:ATTR>
<XPD:REF name="BehavioralFeature">DKZ9h0W0R0uaearHk/FBlgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[7]" type="UMLOperation" guid="cc9kBkAElkyts02jljXcVgAA">
<XPD:ATTR name="Name" type="string">void selectProfile</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void selectProfile</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="rshF/CwJg0CqqHNLLSrqfwAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">cc9kBkAElkyts02jljXcVgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[8]" type="UMLOperation" guid="/6r74rBpiEqn8eCcFO7VPwAA">
<XPD:ATTR name="Name" type="string">void buildArgs</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void buildArgs</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="tZSFpioXlUSJ3wwhFX5uUwAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">/6r74rBpiEqn8eCcFO7VPwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[9]" type="UMLOperation" guid="5d76YiuSUU+17exA/EPdlwAA">
<XPD:ATTR name="Name" type="string">void freeCgArgs</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void freeCgArgs</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="xReS86JVzEGctUJ4eH9hkgAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">5d76YiuSUU+17exA/EPdlwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[10]" type="UMLOperation" guid="zGsdX1W3z0K4o8DRcc2+YQAA">
<XPD:ATTR name="Name" type="string">void getMicrocodeFromCache</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void getMicrocodeFromCache</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="1NnwpHpkVkCtaOCe7uCv5wAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">zGsdX1W3z0K4o8DRcc2+YQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[11]" type="UMLOperation" guid="sthJqr/leUCt22kkrlPfvQAA">
<XPD:ATTR name="Name" type="string">void compileMicrocode</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void compileMicrocode</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="aSCzt9/GskqRhUnhREnCLgAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">sthJqr/leUCt22kkrlPfvQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[12]" type="UMLOperation" guid="spHgO0Op3kC4pekX9sgIvgAA">
<XPD:ATTR name="Name" type="string">void addMicrocodeToCache</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void addMicrocodeToCache</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Operations[13]" type="UMLOperation" guid="hPfMzTPF1kGZrlZD43JEPgAA">
<XPD:ATTR name="Name" type="string">String getHighLevelLanguage</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">String getHighLevelLanguage</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Operations[14]" type="UMLOperation" guid="0IT/sphj2UGJmJEFDYuJ2wAA">
<XPD:ATTR name="Name" type="string">String getHighLevelTarget</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">String getHighLevelTarget</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Operations[15]" type="UMLOperation" guid="9CU16E1jukO9WZQncssmnAAA">
<XPD:ATTR name="Name" type="string">void fixHighLevelOutput</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void fixHighLevelOutput</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="oOMH6lmkq02vE2ObTtl3SAAA">
<XPD:ATTR name="Name" type="string">String&amp; hlSource</XPD:ATTR>
<XPD:REF name="BehavioralFeature">9CU16E1jukO9WZQncssmnAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[16]" type="UMLOperation" guid="XMB7rM9hKEStvTaTYrb9wgAA">
<XPD:ATTR name="Name" type="string">static String resolveCgIncludes</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">static String resolveCgIncludes</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">3</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="RIE9XjP/Rk230jJTLHBXpwAA">
<XPD:ATTR name="Name" type="string">const String&amp; source</XPD:ATTR>
<XPD:REF name="BehavioralFeature">XMB7rM9hKEStvTaTYrb9wgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="z2fbECY9pUG9XOdgTGwWsgAA">
<XPD:ATTR name="Name" type="string">Resource* resourceBeingLoaded</XPD:ATTR>
<XPD:REF name="BehavioralFeature">XMB7rM9hKEStvTaTYrb9wgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[2]" type="UMLParameter" guid="RMnMdignf0mKdx/HijEqDwAA">
<XPD:ATTR name="Name" type="string">const String&amp; fileName</XPD:ATTR>
<XPD:REF name="BehavioralFeature">XMB7rM9hKEStvTaTYrb9wgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:ATTR name="#Attributes" type="integer">18</XPD:ATTR>
<XPD:OBJ name="Attributes[0]" type="UMLAttribute" guid="0zkApTb4SkqV7ZiK0nZcUgAA">
<XPD:ATTR name="Name" type="string">class CmdEntryPoint</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">class CmdEntryPoint</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">public ParamCommand</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[1]" type="UMLAttribute" guid="3gmxBc3Srk2kRg8WU/tTlQAA">
<XPD:ATTR name="Name" type="string">class CmdProfiles</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">class CmdProfiles</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">public ParamCommand</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[2]" type="UMLAttribute" guid="oUPNy0mQxEqGi3AKEoKkewAA">
<XPD:ATTR name="Name" type="string">class CmdArgs</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">class CmdArgs</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">public ParamCommand</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[3]" type="UMLAttribute" guid="NDMjA1bi+UCsp7lqWxu6eQAA">
<XPD:ATTR name="Name" type="string">static CmdEntryPoint msCmdEntryPoint</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">static CmdEntryPoint msCmdEntryPoint</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[4]" type="UMLAttribute" guid="qkENrx7IC0yT3qhZIDyb5gAA">
<XPD:ATTR name="Name" type="string">static CmdProfiles msCmdProfiles</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">static CmdProfiles msCmdProfiles</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[5]" type="UMLAttribute" guid="ABLIxwluYkuAC2h82pQ7XQAA">
<XPD:ATTR name="Name" type="string">static CmdArgs msCmdArgs</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">static CmdArgs msCmdArgs</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[6]" type="UMLAttribute" guid="mDCZ7Mq0kkGeYQcdV5WmBwAA">
<XPD:ATTR name="Name" type="string">CGcontext mCgContext</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">CGcontext mCgContext</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[7]" type="UMLAttribute" guid="YBi+9tKJXkaOFp/r+eGqBAAA">
<XPD:ATTR name="Name" type="string">StringVector mProfiles</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">StringVector mProfiles</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[8]" type="UMLAttribute" guid="QUp92Iwz1UuVImJ8jUcyogAA">
<XPD:ATTR name="Name" type="string">String mEntryPoint</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">String mEntryPoint</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[9]" type="UMLAttribute" guid="ov9oI5ZA0keWvSY4X0XE6wAA">
<XPD:ATTR name="Name" type="string">String mSelectedProfile</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">String mSelectedProfile</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[10]" type="UMLAttribute" guid="kCVzmRzmyEmXSK5DNQ39NQAA">
<XPD:ATTR name="Name" type="string">String mProgramString</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">String mProgramString</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[11]" type="UMLAttribute" guid="k4rMwQ1lx0+w/HAn4pyHKwAA">
<XPD:ATTR name="Name" type="string">CGprofile mSelectedCgProfile</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">CGprofile mSelectedCgProfile</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[12]" type="UMLAttribute" guid="r56+tSr5Jk6ZuDLnW7N31QAA">
<XPD:ATTR name="Name" type="string">char** mCgArguments</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">char** mCgArguments</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[13]" type="UMLAttribute" guid="i2xMD3css0CpNXg2X2dTgwAA">
<XPD:ATTR name="Name" type="string">GpuConstantDefinitionMap mParametersMap</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GpuConstantDefinitionMap mParametersMap</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[14]" type="UMLAttribute" guid="bcrlxqaEG0W6CD1Y8qAxoAAA">
<XPD:ATTR name="Name" type="string">size_t mParametersMapSizeAsBuffer</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">size_t mParametersMapSizeAsBuffer</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[15]" type="UMLAttribute" guid="DGUZn1gM8UaQiJQFA6Ud1wAA">
<XPD:ATTR name="Name" type="string">map&lt;String,int&gt;</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">map&lt;String,int&gt;</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">:type mSamplerRegisterMap</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[16]" type="UMLAttribute" guid="b3N2UkDCG0W+32B+y+VFjAAA">
<XPD:ATTR name="Name" type="string">CGenum mInputOp, mOutputOp</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">CGenum mInputOp, mOutputOp</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[17]" type="UMLAttribute" guid="tOaOcmJcYEyBSAirQ4kVPAAA">
<XPD:ATTR name="Name" type="string">HighLevelGpuProgramPtr mDelegate</XPD:ATTR>
<XPD:ATTR name="Visibility" type="UMLVisibilityKind">vkPrivate</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">HighLevelGpuProgramPtr mDelegate</XPD:ATTR>
<XPD:REF name="Owner">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[11]" type="UMLGeneralization" guid="HyBs3SGoPkOouiXDZ2NpEAAA">
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:REF name="Child">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
<XPD:REF name="Parent">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">uhUC8EkTq0eN7p+Q5PmxkAAA</XPD:REF>
<XPD:REF name="Views[1]">bW+Dz5o1cEmTE6g5YZ45/wAA</XPD:REF>
<XPD:REF name="Views[2]">uDEqjcuZEUC4xk+6Ne10iwAA</XPD:REF>
<XPD:REF name="Views[3]">A1GVz9dgdkONFd9BQoBS1wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[12]" type="UMLGeneralization" guid="7B/9P428eEiXYWexhNvhIwAA">
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:REF name="Child">ittCx8YirkiwSGAYDAkslwAA</XPD:REF>
<XPD:REF name="Parent">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">Wm9ctVVlR0ed4dXKEOvO7gAA</XPD:REF>
<XPD:REF name="Views[1]">4Kjz61ivrESHQum2X56lQAAA</XPD:REF>
<XPD:REF name="Views[2]">DCu0L6kqBEqes3g6jF7NjgAA</XPD:REF>
<XPD:REF name="Views[3]">sSedyJSTMkO2uv0zomPoLgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[13]" type="UMLClass" guid="11fvFnfvyEGLiGz/aohSAwAA">
<XPD:ATTR name="Name" type="string">UnifiedHighLevelGpuProgram</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">UnifiedHighLevelGpuProgram</XPD:ATTR>
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">PFiZOJda4UetY0zsgwFqzQAA</XPD:REF>
<XPD:REF name="Views[1]">fRCG73o3a0+8WfLK/oiy5gAA</XPD:REF>
<XPD:REF name="Views[2]">ZWm+2AzwE0q7nZchzLzDxgAA</XPD:REF>
<XPD:REF name="Views[3]">w9C4AfYc7ku3mXuH3xZIXgAA</XPD:REF>
<XPD:ATTR name="#Generalizations" type="integer">1</XPD:ATTR>
<XPD:REF name="Generalizations[0]">Zwf/Dz67kUy89d+dU+pUZwAA</XPD:REF>
<XPD:ATTR name="#Operations" type="integer">8</XPD:ATTR>
<XPD:OBJ name="Operations[0]" type="UMLOperation" guid="AFW8AJ4nxkqbWTWteKkfHwAA">
<XPD:ATTR name="Name" type="string">void chooseDelegate</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void chooseDelegate</XPD:ATTR>
<XPD:REF name="Owner">11fvFnfvyEGLiGz/aohSAwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Operations[1]" type="UMLOperation" guid="6xU6AaQyq0yIotbus6DRswAA">
<XPD:ATTR name="Name" type="string">void createLowLevelImpl</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void createLowLevelImpl</XPD:ATTR>
<XPD:REF name="Owner">11fvFnfvyEGLiGz/aohSAwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="U5ItfR/wE0yWMWfrh6AL6AAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">6xU6AaQyq0yIotbus6DRswAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[2]" type="UMLOperation" guid="Hg05CHPCK0CwhwQ4cgfLWQAA">
<XPD:ATTR name="Name" type="string">void unloadHighLevelImpl</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void unloadHighLevelImpl</XPD:ATTR>
<XPD:REF name="Owner">11fvFnfvyEGLiGz/aohSAwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="TeioG0DB+U+OelDWxEzJdgAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">Hg05CHPCK0CwhwQ4cgfLWQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[3]" type="UMLOperation" guid="ksS31H43fEWig8df1xDp5QAA">
<XPD:ATTR name="Name" type="string">void buildConstantDefinitions</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void buildConstantDefinitions</XPD:ATTR>
<XPD:REF name="Owner">11fvFnfvyEGLiGz/aohSAwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Operations[4]" type="UMLOperation" guid="muaml/Ob9k2S5Ox1nluj/wAA">
<XPD:ATTR name="Name" type="string">void loadFromSource</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void loadFromSource</XPD:ATTR>
<XPD:REF name="Owner">11fvFnfvyEGLiGz/aohSAwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="JNx6aEOjS0uc870zQPORUwAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">muaml/Ob9k2S5Ox1nluj/wAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[5]" type="UMLOperation" guid="pcSxak9GHkiaKEVbZlKvMgAA">
<XPD:ATTR name="Name" type="string">void addDelegateProgram</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void addDelegateProgram</XPD:ATTR>
<XPD:REF name="Owner">11fvFnfvyEGLiGz/aohSAwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="MHgmpMkfCUiCo/qtRjA3GgAA">
<XPD:ATTR name="Name" type="string">const String&amp; name</XPD:ATTR>
<XPD:REF name="BehavioralFeature">pcSxak9GHkiaKEVbZlKvMgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[6]" type="UMLOperation" guid="Q15UfUCXKESGpJsY28yKjAAA">
<XPD:ATTR name="Name" type="string">GpuProgramParametersSharedPtr createParameters</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GpuProgramParametersSharedPtr createParameters</XPD:ATTR>
<XPD:REF name="Owner">11fvFnfvyEGLiGz/aohSAwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="L6XkjWXy1Ee65ZOWYh39nwAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">Q15UfUCXKESGpJsY28yKjAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[7]" type="UMLOperation" guid="UQlqr3ftqEauDF2VvOJtlAAA">
<XPD:ATTR name="Name" type="string">GpuProgram* _getBindingDelegate</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GpuProgram* _getBindingDelegate</XPD:ATTR>
<XPD:REF name="Owner">11fvFnfvyEGLiGz/aohSAwAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="0uxtrxEuv06zOopYqFadgwAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">UQlqr3ftqEauDF2VvOJtlAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:ATTR name="#Attributes" type="integer">6</XPD:ATTR>
<XPD:OBJ name="Attributes[0]" type="UMLAttribute" guid="HznHb2KHAk+A++OdFsgkxwAA">
<XPD:ATTR name="Name" type="string">class CmdDelegate</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">class CmdDelegate</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">public ParamCommand</XPD:ATTR>
<XPD:REF name="Owner">11fvFnfvyEGLiGz/aohSAwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[1]" type="UMLAttribute" guid="oPn7FHngr0ifQsB4xmBEsgAA">
<XPD:ATTR name="Name" type="string">static void setPriority(String shaderLanguage,int priority)</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">static void setPriority(String shaderLanguage,int priority)</XPD:ATTR>
<XPD:REF name="Owner">11fvFnfvyEGLiGz/aohSAwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[2]" type="UMLAttribute" guid="HpsVMTefcke7FRz41kCEOQAA">
<XPD:ATTR name="Name" type="string">static int  getPriority(String shaderLanguage)</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">static int  getPriority(String shaderLanguage)</XPD:ATTR>
<XPD:REF name="Owner">11fvFnfvyEGLiGz/aohSAwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[3]" type="UMLAttribute" guid="8pOO5NMjm0OYMzRqhXwIowAA">
<XPD:ATTR name="Name" type="string">static CmdDelegate msCmdDelegate</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">static CmdDelegate msCmdDelegate</XPD:ATTR>
<XPD:REF name="Owner">11fvFnfvyEGLiGz/aohSAwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[4]" type="UMLAttribute" guid="hBZejDbT5ke/+9LKuQM6/gAA">
<XPD:ATTR name="Name" type="string">StringVector mDelegateNames</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">StringVector mDelegateNames</XPD:ATTR>
<XPD:REF name="Owner">11fvFnfvyEGLiGz/aohSAwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[5]" type="UMLAttribute" guid="qtlReABUykSV1Zwln5ra8wAA">
<XPD:ATTR name="Name" type="string">HighLevelGpuProgramPtr mChosenDelegate</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">HighLevelGpuProgramPtr mChosenDelegate</XPD:ATTR>
<XPD:REF name="Owner">11fvFnfvyEGLiGz/aohSAwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[14]" type="UMLGeneralization" guid="Zwf/Dz67kUy89d+dU+pUZwAA">
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:REF name="Child">11fvFnfvyEGLiGz/aohSAwAA</XPD:REF>
<XPD:REF name="Parent">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">JIEUEeFrukyhMLjeF/xqiAAA</XPD:REF>
<XPD:REF name="Views[1]">+gz8IOs8aU2I2XFdl6xpEwAA</XPD:REF>
<XPD:REF name="Views[2]">PAc58FWWI02tel8mLjRpjQAA</XPD:REF>
<XPD:REF name="Views[3]">YaY1mkVkoEugVZXPqkBgegAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[15]" type="UMLClass" guid="8PihfIDhGkC/1n/0zszcDgAA">
<XPD:ATTR name="Name" type="string">GpuProgramManager</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GpuProgramManager</XPD:ATTR>
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">uTszJESpxESJN8tWuHC/7QAA</XPD:REF>
<XPD:REF name="Views[1]">doMwjJzWa0OOwpkF01G5fQAA</XPD:REF>
<XPD:REF name="Views[2]">KGO5zPLI7EuIyTmZQv4uCAAA</XPD:REF>
<XPD:REF name="Views[3]">9Rzsu7jgVUG55IcSZWORYgAA</XPD:REF>
<XPD:ATTR name="#Operations" type="integer">26</XPD:ATTR>
<XPD:OBJ name="Operations[0]" type="UMLOperation" guid="rx7w7uUqykGOAfXfyf4nDwAA">
<XPD:ATTR name="Name" type="string">static String addRenderSystemToName</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">static String addRenderSystemToName</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="aFW1nTxte0Or5CJvpRPGjwAA">
<XPD:ATTR name="Name" type="string">const String &amp;  name</XPD:ATTR>
<XPD:REF name="BehavioralFeature">rx7w7uUqykGOAfXfyf4nDwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[1]" type="UMLOperation" guid="f+nZMqWiWUCSa9WUuPrQxAAA">
<XPD:ATTR name="Name" type="string">virtual Resource* createImpl</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual Resource* createImpl</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">7</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="DkQaCDDygkCY1rNxiEld0QAA">
<XPD:ATTR name="Name" type="string">name</XPD:ATTR>
<XPD:REF name="BehavioralFeature">f+nZMqWiWUCSa9WUuPrQxAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="FO49f6DXe0GTK86Ggcd2LgAA">
<XPD:ATTR name="Name" type="string">handle</XPD:ATTR>
<XPD:REF name="BehavioralFeature">f+nZMqWiWUCSa9WUuPrQxAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[2]" type="UMLParameter" guid="ECCHKJMxzUWnRd5YuKpoKgAA">
<XPD:ATTR name="Name" type="string">group</XPD:ATTR>
<XPD:REF name="BehavioralFeature">f+nZMqWiWUCSa9WUuPrQxAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[3]" type="UMLParameter" guid="CCORTA8f+kePMGrh+m/t1AAA">
<XPD:ATTR name="Name" type="string">isManual</XPD:ATTR>
<XPD:REF name="BehavioralFeature">f+nZMqWiWUCSa9WUuPrQxAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[4]" type="UMLParameter" guid="XUb7Vs7+ZUS4bIeuU6aYggAA">
<XPD:ATTR name="Name" type="string">loader</XPD:ATTR>
<XPD:REF name="BehavioralFeature">f+nZMqWiWUCSa9WUuPrQxAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[5]" type="UMLParameter" guid="pzmxWgc/Z0mw3RzpfNTjmQAA">
<XPD:ATTR name="Name" type="string">gptype</XPD:ATTR>
<XPD:REF name="BehavioralFeature">f+nZMqWiWUCSa9WUuPrQxAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[6]" type="UMLParameter" guid="176llOeqT0ut1MnKVt7YJwAA">
<XPD:ATTR name="Name" type="string">syntaxCode</XPD:ATTR>
<XPD:REF name="BehavioralFeature">f+nZMqWiWUCSa9WUuPrQxAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[2]" type="UMLOperation" guid="34v+hf16z0Sxio4oFDAOrQAA">
<XPD:ATTR name="Name" type="string">getByName</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">getByName</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Operations[3]" type="UMLOperation" guid="unwcaUJwkEe2ZH5qESGCyAAA">
<XPD:ATTR name="Name" type="string">virtual GpuProgramPtr load</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual GpuProgramPtr load</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">5</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="zv5Jd5PFuU6em6+zf8UlYgAA">
<XPD:ATTR name="Name" type="string">name</XPD:ATTR>
<XPD:REF name="BehavioralFeature">unwcaUJwkEe2ZH5qESGCyAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="8BZyZTGES0uwq8pyrIqItQAA">
<XPD:ATTR name="Name" type="string">groupName</XPD:ATTR>
<XPD:REF name="BehavioralFeature">unwcaUJwkEe2ZH5qESGCyAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[2]" type="UMLParameter" guid="LUihe/dgtUe71lMWds1+6QAA">
<XPD:ATTR name="Name" type="string">filename</XPD:ATTR>
<XPD:REF name="BehavioralFeature">unwcaUJwkEe2ZH5qESGCyAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[3]" type="UMLParameter" guid="4cuq27Z9kkCeLNTC8ZELBAAA">
<XPD:ATTR name="Name" type="string">gptype</XPD:ATTR>
<XPD:REF name="BehavioralFeature">unwcaUJwkEe2ZH5qESGCyAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[4]" type="UMLParameter" guid="OlB4wQPli0+iJs9LIC1KHAAA">
<XPD:ATTR name="Name" type="string">syntaxCode</XPD:ATTR>
<XPD:REF name="BehavioralFeature">unwcaUJwkEe2ZH5qESGCyAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[4]" type="UMLOperation" guid="ifJT2cH9mEeLHkQw9AvNyAAA">
<XPD:ATTR name="Name" type="string">virtual GpuProgramPtr loadFromString</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual GpuProgramPtr loadFromString</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Operations[5]" type="UMLOperation" guid="RS+TJOeDCUWENZpjCbQ7LQAA">
<XPD:ATTR name="Name" type="string">virtual const SyntaxCodes&amp; getSupportedSyntax</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual const SyntaxCodes&amp; getSupportedSyntax</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="N9z4ZH4PREOXAHWNsTDi/AAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">RS+TJOeDCUWENZpjCbQ7LQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[6]" type="UMLOperation" guid="tBXcL85k+0aOMVQASf2snAAA">
<XPD:ATTR name="Name" type="string">virtual bool isSyntaxSupported</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual bool isSyntaxSupported</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="f2GPW8kCnU2Gj83gVWNaNAAA">
<XPD:ATTR name="Name" type="string">const String&amp; syntaxCode</XPD:ATTR>
<XPD:REF name="BehavioralFeature">tBXcL85k+0aOMVQASf2snAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[7]" type="UMLOperation" guid="K8n6GSYDmUii9Gm53Y8YZwAA">
<XPD:ATTR name="Name" type="string">virtual GpuProgramParametersSharedPtr createParameters</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual GpuProgramParametersSharedPtr createParameters</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="ql+10UpqBkyiQzYlSv6FAwAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">K8n6GSYDmUii9Gm53Y8YZwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[8]" type="UMLOperation" guid="l2bYu5AhgkKtomYC5OJQYwAA">
<XPD:ATTR name="Name" type="string">virtual GpuProgramPtr createProgram</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual GpuProgramPtr createProgram</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">5</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="+M0V5k7g4kWpIhPE/u/Y4QAA">
<XPD:ATTR name="Name" type="string">name</XPD:ATTR>
<XPD:REF name="BehavioralFeature">l2bYu5AhgkKtomYC5OJQYwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="/qdHSczdH06G/Tq/ZnihhwAA">
<XPD:ATTR name="Name" type="string">groupName</XPD:ATTR>
<XPD:REF name="BehavioralFeature">l2bYu5AhgkKtomYC5OJQYwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[2]" type="UMLParameter" guid="+sJ/+3MVnEKjgrXJl1Ge0AAA">
<XPD:ATTR name="Name" type="string">filename</XPD:ATTR>
<XPD:REF name="BehavioralFeature">l2bYu5AhgkKtomYC5OJQYwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[3]" type="UMLParameter" guid="SvymhAjppEqkjV1PbYYC9gAA">
<XPD:ATTR name="Name" type="string">gptype</XPD:ATTR>
<XPD:REF name="BehavioralFeature">l2bYu5AhgkKtomYC5OJQYwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[4]" type="UMLParameter" guid="iotB1DcNGEyWXfiGMVf5VwAA">
<XPD:ATTR name="Name" type="string">syntaxCode</XPD:ATTR>
<XPD:REF name="BehavioralFeature">l2bYu5AhgkKtomYC5OJQYwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[9]" type="UMLOperation" guid="PAOjwAp8fU+dVniifDR9wQAA">
<XPD:ATTR name="Name" type="string">virtual GpuProgramPtr createProgramFromString</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual GpuProgramPtr createProgramFromString</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">5</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="NQWQlfu8aESqaP0043CmmwAA">
<XPD:ATTR name="Name" type="string">name</XPD:ATTR>
<XPD:REF name="BehavioralFeature">PAOjwAp8fU+dVniifDR9wQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="7BOjSk3Y2k6oMKGdmhl0dAAA">
<XPD:ATTR name="Name" type="string">groupName</XPD:ATTR>
<XPD:REF name="BehavioralFeature">PAOjwAp8fU+dVniifDR9wQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[2]" type="UMLParameter" guid="9i2AcuKRY0iddrIpLAf1MwAA">
<XPD:ATTR name="Name" type="string">code</XPD:ATTR>
<XPD:REF name="BehavioralFeature">PAOjwAp8fU+dVniifDR9wQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[3]" type="UMLParameter" guid="MZIYV1ewykmy/fdVeCP4cwAA">
<XPD:ATTR name="Name" type="string">gptype</XPD:ATTR>
<XPD:REF name="BehavioralFeature">PAOjwAp8fU+dVniifDR9wQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[4]" type="UMLParameter" guid="XaiemRBZh02pW1erPxmYwwAA">
<XPD:ATTR name="Name" type="string">syntaxCode</XPD:ATTR>
<XPD:REF name="BehavioralFeature">PAOjwAp8fU+dVniifDR9wQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[10]" type="UMLOperation" guid="TPhhNW6oAU2bn2DziplC8AAA">
<XPD:ATTR name="Name" type="string">virtual ResourcePtr create</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual ResourcePtr create</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">5</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="i2aBs8BfUEOTchfCAF08sAAA">
<XPD:ATTR name="Name" type="string">name group</XPD:ATTR>
<XPD:REF name="BehavioralFeature">TPhhNW6oAU2bn2DziplC8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="EqHD8LB2U0ewiTMCgOE65gAA">
<XPD:ATTR name="Name" type="string">gptype</XPD:ATTR>
<XPD:REF name="BehavioralFeature">TPhhNW6oAU2bn2DziplC8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[2]" type="UMLParameter" guid="8V055JiPT0uV2rTIpYFmHAAA">
<XPD:ATTR name="Name" type="string">syntaxCode</XPD:ATTR>
<XPD:REF name="BehavioralFeature">TPhhNW6oAU2bn2DziplC8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[3]" type="UMLParameter" guid="zwEdXGl9rkuyzrVogU8eXAAA">
<XPD:ATTR name="Name" type="string">false</XPD:ATTR>
<XPD:REF name="BehavioralFeature">TPhhNW6oAU2bn2DziplC8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[4]" type="UMLParameter" guid="ojfQpfM/O0Wackml3oe7swAA">
<XPD:ATTR name="Name" type="string">loader</XPD:ATTR>
<XPD:ATTR name="DefaultValue" type="string">0</XPD:ATTR>
<XPD:REF name="BehavioralFeature">TPhhNW6oAU2bn2DziplC8AAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[11]" type="UMLOperation" guid="st5Kqhp0tkOk/YKB8YkCygAA">
<XPD:ATTR name="Name" type="string">getResourceByName</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">getResourceByName</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">3</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="sIY9epzLoUy7cnOudBeK6AAA">
<XPD:ATTR name="Name" type="string">name</XPD:ATTR>
<XPD:REF name="BehavioralFeature">st5Kqhp0tkOk/YKB8YkCygAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="gvPxVBEaDUGsEk5ljZxCXwAA">
<XPD:ATTR name="Name" type="string">group</XPD:ATTR>
<XPD:REF name="BehavioralFeature">st5Kqhp0tkOk/YKB8YkCygAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[2]" type="UMLParameter" guid="y4SVXrL9c0awPzve/anrcgAA">
<XPD:ATTR name="Name" type="string">bool preferHighLevelPrograms</XPD:ATTR>
<XPD:ATTR name="DefaultValue" type="string">true</XPD:ATTR>
<XPD:REF name="BehavioralFeature">st5Kqhp0tkOk/YKB8YkCygAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[12]" type="UMLOperation" guid="fflaNaUiZEC4DXEnDfWYNAAA">
<XPD:ATTR name="Name" type="string">virtual GpuSharedParametersPtr createSharedParameters</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual GpuSharedParametersPtr createSharedParameters</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="piyDvPser0uPx3o2UpkpwAAA">
<XPD:ATTR name="Name" type="string">const String&amp; name</XPD:ATTR>
<XPD:REF name="BehavioralFeature">fflaNaUiZEC4DXEnDfWYNAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[13]" type="UMLOperation" guid="AsWhiVuqWUKOvhOgEzz83AAA">
<XPD:ATTR name="Name" type="string">virtual GpuSharedParametersPtr getSharedParameters</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual GpuSharedParametersPtr getSharedParameters</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="fCsQk0D8oUeTyCzWLk/ntQAA">
<XPD:ATTR name="Name" type="string">const String&amp; name</XPD:ATTR>
<XPD:REF name="BehavioralFeature">AsWhiVuqWUKOvhOgEzz83AAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[14]" type="UMLOperation" guid="y+n/iqr+Tk+LjG7Neu1mAQAA">
<XPD:ATTR name="Name" type="string">virtual const SharedParametersMap&amp; getAvailableSharedParameters</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual const SharedParametersMap&amp; getAvailableSharedParameters</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Operations[15]" type="UMLOperation" guid="8fJEsIQGk0mHnrTEM86+3QAA">
<XPD:ATTR name="Name" type="string">bool getSaveMicrocodesToCache</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">bool getSaveMicrocodesToCache</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Operations[16]" type="UMLOperation" guid="j0xA1ZIfdUe79bAbuDrV0gAA">
<XPD:ATTR name="Name" type="string">void setSaveMicrocodesToCache</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void setSaveMicrocodesToCache</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="HuY7NlMbE0W5WnBL3jVllAAA">
<XPD:ATTR name="Name" type="string">const bool val</XPD:ATTR>
<XPD:REF name="BehavioralFeature">j0xA1ZIfdUe79bAbuDrV0gAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[17]" type="UMLOperation" guid="O6YRT2/7N0+KFA8Gb4sDZgAA">
<XPD:ATTR name="Name" type="string">bool isCacheDirty</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">bool isCacheDirty</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="bSeH1aM2+kWMJ2cGPl365AAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">O6YRT2/7N0+KFA8Gb4sDZgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[18]" type="UMLOperation" guid="gHxE3Z7jdU6qCTgLj4eYmgAA">
<XPD:ATTR name="Name" type="string">bool canGetCompiledShaderBuffer</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">bool canGetCompiledShaderBuffer</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Operations[19]" type="UMLOperation" guid="k2zs6NWBsEyohu1/Zdd4hwAA">
<XPD:ATTR name="Name" type="string">virtual bool isMicrocodeAvailableInCache</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual bool isMicrocodeAvailableInCache</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="3D471vUtOES6xZakmUqkTgAA">
<XPD:ATTR name="Name" type="string">const String &amp; name</XPD:ATTR>
<XPD:REF name="BehavioralFeature">k2zs6NWBsEyohu1/Zdd4hwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[20]" type="UMLOperation" guid="QPxX5JJbzUeC9JRL/+YixQAA">
<XPD:ATTR name="Name" type="string">virtual const Microcode &amp; getMicrocodeFromCache</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual const Microcode &amp; getMicrocodeFromCache</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="de5f7uMZlEOFrCdCIlcgWQAA">
<XPD:ATTR name="Name" type="string">const String &amp; name</XPD:ATTR>
<XPD:REF name="BehavioralFeature">QPxX5JJbzUeC9JRL/+YixQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[21]" type="UMLOperation" guid="yhKiuGr/H0utIJvKN80kIwAA">
<XPD:ATTR name="Name" type="string">virtual Microcode createMicrocode</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual Microcode createMicrocode</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="EMo5jIq1NEeU/2ikduttYgAA">
<XPD:ATTR name="Name" type="string">const uint32 size</XPD:ATTR>
<XPD:REF name="BehavioralFeature">yhKiuGr/H0utIJvKN80kIwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[22]" type="UMLOperation" guid="IDDiE8R1Lk+mgZmbRC02fQAA">
<XPD:ATTR name="Name" type="string">virtual void addMicrocodeToCache</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual void addMicrocodeToCache</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">2</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="xOeWKmFGWEKuoVGr6p9ynAAA">
<XPD:ATTR name="Name" type="string">const String &amp; name</XPD:ATTR>
<XPD:REF name="BehavioralFeature">IDDiE8R1Lk+mgZmbRC02fQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="arfwM2TsEkmJB2dQsilWXgAA">
<XPD:ATTR name="Name" type="string">const Microcode &amp; microcode</XPD:ATTR>
<XPD:REF name="BehavioralFeature">IDDiE8R1Lk+mgZmbRC02fQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[23]" type="UMLOperation" guid="Te+ySJ+uY0Wv7WWF+c5xCgAA">
<XPD:ATTR name="Name" type="string">virtual void removeMicrocodeFromCache</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual void removeMicrocodeFromCache</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="Db5bqjPAIkW8oVNFb8WChQAA">
<XPD:ATTR name="Name" type="string">const String &amp; name</XPD:ATTR>
<XPD:REF name="BehavioralFeature">Te+ySJ+uY0Wv7WWF+c5xCgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[24]" type="UMLOperation" guid="JQs13rlT/UKBM7aJlJpqBQAA">
<XPD:ATTR name="Name" type="string">virtual void saveMicrocodeCache</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual void saveMicrocodeCache</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="iGJ0IzvCwUe+9YXQr6/1yAAA">
<XPD:ATTR name="Name" type="string">DataStreamPtr stream</XPD:ATTR>
<XPD:REF name="BehavioralFeature">JQs13rlT/UKBM7aJlJpqBQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[25]" type="UMLOperation" guid="AF5Mwl5BPkmSbKA8Fa/FyQAA">
<XPD:ATTR name="Name" type="string">virtual void loadMicrocodeCache</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual void loadMicrocodeCache</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="7dzEHhpVtE2IkDlHzNh/qgAA">
<XPD:ATTR name="Name" type="string">DataStreamPtr stream</XPD:ATTR>
<XPD:REF name="BehavioralFeature">AF5Mwl5BPkmSbKA8Fa/FyQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:ATTR name="#Associations" type="integer">3</XPD:ATTR>
<XPD:REF name="Associations[0]">mLm6qlQKIEe45RRoQzNadgAA</XPD:REF>
<XPD:REF name="Associations[1]">Mnfc4EuzY0ioayXl9Jm5swAA</XPD:REF>
<XPD:REF name="Associations[2]">Q8f580NvKkCe6/vX/wc3aAAA</XPD:REF>
<XPD:ATTR name="#Attributes" type="integer">8</XPD:ATTR>
<XPD:OBJ name="Attributes[0]" type="UMLAttribute" guid="GttK2JQka0yGUsWia9UU2AAA">
<XPD:ATTR name="Name" type="string">typedef set&lt;String&gt;</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">typedef set&lt;String&gt;</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">:type SyntaxCodes</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[1]" type="UMLAttribute" guid="LvGULr6DfUCtZdjXLvcZFgAA">
<XPD:ATTR name="Name" type="string">typedef map&lt;String, GpuSharedParametersPtr&gt;</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">typedef map&lt;String, GpuSharedParametersPtr&gt;</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">:type SharedParametersMap</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[2]" type="UMLAttribute" guid="cudTywvZYEm895cTyo4kdwAA">
<XPD:ATTR name="Name" type="string">typedef MemoryDataStreamPtr Microcode</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">typedef MemoryDataStreamPtr Microcode</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[3]" type="UMLAttribute" guid="U8p+Kswz70adwkDBhkF1LAAA">
<XPD:ATTR name="Name" type="string">typedef map&lt;String, Microcode&gt;</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">typedef map&lt;String, Microcode&gt;</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">:type MicrocodeMap</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[4]" type="UMLAttribute" guid="9N5afQvELEKPxor0oPxTlwAA">
<XPD:ATTR name="Name" type="string">SharedParametersMap mSharedParametersMap</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">SharedParametersMap mSharedParametersMap</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[5]" type="UMLAttribute" guid="Ae83BDLDh0amSQHMFjW5VgAA">
<XPD:ATTR name="Name" type="string">MicrocodeMap mMicrocodeCache</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">MicrocodeMap mMicrocodeCache</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[6]" type="UMLAttribute" guid="lHbYtHnIL0aFkdiIbfrm1gAA">
<XPD:ATTR name="Name" type="string">bool mSaveMicrocodesToCache</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">bool mSaveMicrocodesToCache</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[7]" type="UMLAttribute" guid="1woMbNkpVU+XEPQhL17rZQAA">
<XPD:ATTR name="Name" type="string">bool mCacheDirty</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">bool mCacheDirty</XPD:ATTR>
<XPD:REF name="Owner">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[16]" type="UMLAssociation" guid="78ciKo7ba0qO/0SWv1eN0AAA">
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Connections" type="integer">2</XPD:ATTR>
<XPD:OBJ name="Connections[0]" type="UMLAssociationEnd" guid="wtubKrPE8U6JUwoRC/rTMgAA">
<XPD:REF name="Association">78ciKo7ba0qO/0SWv1eN0AAA</XPD:REF>
<XPD:REF name="Participant">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Connections[1]" type="UMLAssociationEnd" guid="mLm6qlQKIEe45RRoQzNadgAA">
<XPD:REF name="Association">78ciKo7ba0qO/0SWv1eN0AAA</XPD:REF>
<XPD:REF name="Participant">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[17]" type="UMLAssociation" guid="VE10xFBA6US/xJFth7mQZwAA">
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Connections" type="integer">2</XPD:ATTR>
<XPD:OBJ name="Connections[0]" type="UMLAssociationEnd" guid="0i0kwYdYJEui9W/l+ne5gAAA">
<XPD:ATTR name="IsNavigable" type="boolean">False</XPD:ATTR>
<XPD:REF name="Association">VE10xFBA6US/xJFth7mQZwAA</XPD:REF>
<XPD:REF name="Participant">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Connections[1]" type="UMLAssociationEnd" guid="Mnfc4EuzY0ioayXl9Jm5swAA">
<XPD:ATTR name="IsNavigable" type="boolean">False</XPD:ATTR>
<XPD:REF name="Association">VE10xFBA6US/xJFth7mQZwAA</XPD:REF>
<XPD:REF name="Participant">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[18]" type="UMLAssociation" guid="qoe8grb+iUm0bpa58J/d1wAA">
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Connections" type="integer">2</XPD:ATTR>
<XPD:OBJ name="Connections[0]" type="UMLAssociationEnd" guid="LbFXjmStNEim2tE7Q6ifKQAA">
<XPD:ATTR name="IsNavigable" type="boolean">False</XPD:ATTR>
<XPD:REF name="Association">qoe8grb+iUm0bpa58J/d1wAA</XPD:REF>
<XPD:REF name="Participant">Ca3BHRQ93E6lSiyVsEqA8AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Connections[1]" type="UMLAssociationEnd" guid="Q8f580NvKkCe6/vX/wc3aAAA">
<XPD:ATTR name="IsNavigable" type="boolean">False</XPD:ATTR>
<XPD:REF name="Association">qoe8grb+iUm0bpa58J/d1wAA</XPD:REF>
<XPD:REF name="Participant">8PihfIDhGkC/1n/0zszcDgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[19]" type="UMLClass" guid="mrIJ3RqYe0uO7L0F1NNU6wAA">
<XPD:ATTR name="Name" type="string">D3D11HLSLProgram</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">D3D11HLSLProgram</XPD:ATTR>
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">BUxjI6wqbkajs/K+H/P3wwAA</XPD:REF>
<XPD:REF name="Views[1]">Vur8XwNtu0ir8xJBb6hJ6wAA</XPD:REF>
<XPD:REF name="Views[2]">tPBbRQzb9kSFsrNkY6cahQAA</XPD:REF>
<XPD:REF name="Views[3]">O1EHf0UPsUKGcVZUaO82pQAA</XPD:REF>
<XPD:ATTR name="#Generalizations" type="integer">1</XPD:ATTR>
<XPD:REF name="Generalizations[0]">OF9vS5TOyUu/iizvw+AifwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[20]" type="UMLGeneralization" guid="OF9vS5TOyUu/iizvw+AifwAA">
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:REF name="Child">mrIJ3RqYe0uO7L0F1NNU6wAA</XPD:REF>
<XPD:REF name="Parent">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">RIoSD4F6CUu3+7HRVLrb6gAA</XPD:REF>
<XPD:REF name="Views[1]">emv0+s8uCkC/KlGKrrCFmQAA</XPD:REF>
<XPD:REF name="Views[2]">Nw9dMsqL00GZAwEFl7WSYwAA</XPD:REF>
<XPD:REF name="Views[3]">H+kMqtyFj027DzlujBnmwQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[21]" type="UMLClass" guid="dlgSofzse06YoTM8CvX9KAAA">
<XPD:ATTR name="Name" type="string">NullProgram</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">NullProgram</XPD:ATTR>
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">hKTnCjeugEyrNXzUqfgKegAA</XPD:REF>
<XPD:REF name="Views[1]">4xemkMqW9kqFC6agCAMJvAAA</XPD:REF>
<XPD:REF name="Views[2]">8bH4B3OzcUuavr5i9zoPxQAA</XPD:REF>
<XPD:REF name="Views[3]">rPmT30OU9EiSrgcfZ0tpTAAA</XPD:REF>
<XPD:ATTR name="#Generalizations" type="integer">1</XPD:ATTR>
<XPD:REF name="Generalizations[0]">CKdie6QxKUah0QC9CtBABgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[22]" type="UMLGeneralization" guid="CKdie6QxKUah0QC9CtBABgAA">
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:REF name="Child">dlgSofzse06YoTM8CvX9KAAA</XPD:REF>
<XPD:REF name="Parent">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">d+bZchdI2UmssqY9UpGUlQAA</XPD:REF>
<XPD:REF name="Views[1]">j75kcfy4L0ms8nIs4lXV+AAA</XPD:REF>
<XPD:REF name="Views[2]">Dq/eAhNr90uwFwHpL/jFeAAA</XPD:REF>
<XPD:REF name="Views[3]">mlCt0/+FL02CljJVjT8AqgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[23]" type="UMLClass" guid="ra3dHf9bXkW32QuqKXod4gAA">
<XPD:ATTR name="Name" type="string">GLSLGpuProgram</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLSLGpuProgram</XPD:ATTR>
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">vwiVDFz/Q0WOdQItkNmArAAA</XPD:REF>
<XPD:REF name="Views[1]">QplDVrQJCEOtJFzDiqBCUgAA</XPD:REF>
<XPD:REF name="Views[2]">X7kGsJJS3kKsSOqy+D0JsgAA</XPD:REF>
<XPD:REF name="Views[3]">H21yIwfCV0CYK0CeEENNxQAA</XPD:REF>
<XPD:ATTR name="#Generalizations" type="integer">1</XPD:ATTR>
<XPD:REF name="Generalizations[0]">UxkBFQa/LUe8Gh6BwSqpwwAA</XPD:REF>
<XPD:ATTR name="#Attributes" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Attributes[0]" type="UMLAttribute" guid="v2QWBSuIe0OeFfwcGr5UawAA">
<XPD:ATTR name="Name" type="string">GLSLProgram* mGLSLProgram;</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLSLProgram* mGLSLProgram;</XPD:ATTR>
<XPD:REF name="Owner">ra3dHf9bXkW32QuqKXod4gAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[24]" type="UMLGeneralization" guid="UxkBFQa/LUe8Gh6BwSqpwwAA">
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:REF name="Child">ra3dHf9bXkW32QuqKXod4gAA</XPD:REF>
<XPD:REF name="Parent">Ehy2CXKPwkK55nQi7MbYlwAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">QYCACQeyR0WoVCAG8+7GyAAA</XPD:REF>
<XPD:REF name="Views[1]">GCOgkpJSO0KtpItFLYFjXAAA</XPD:REF>
<XPD:REF name="Views[2]">hggXBra7bkGqFGrD4jUe8wAA</XPD:REF>
<XPD:REF name="Views[3]">e2VPVZSmr0WpbAInlx0N4QAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[25]" type="UMLClass" guid="+gt7DffqbUefsBpCv3nacgAA">
<XPD:ATTR name="Name" type="string">GLGpuNvparseProgram</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLGpuNvparseProgram</XPD:ATTR>
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">lzkXjfAOkEemOyBYnDvegwAA</XPD:REF>
<XPD:REF name="Views[1]">5MT9nWv7zEivitAlq9jb2AAA</XPD:REF>
<XPD:REF name="Views[2]">ry7LVIUUm0GhMKbHGzfLDgAA</XPD:REF>
<XPD:REF name="Views[3]">j/zpdaLiKk23SPrhuCGg/wAA</XPD:REF>
<XPD:ATTR name="#Generalizations" type="integer">1</XPD:ATTR>
<XPD:REF name="Generalizations[0]">IH3ohYThFEquKvmRS31EUQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[26]" type="UMLGeneralization" guid="IH3ohYThFEquKvmRS31EUQAA">
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:REF name="Child">+gt7DffqbUefsBpCv3nacgAA</XPD:REF>
<XPD:REF name="Parent">Ehy2CXKPwkK55nQi7MbYlwAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">iPGOzRT64EatMhPblLFImgAA</XPD:REF>
<XPD:REF name="Views[1]">EWbaqvhYFky9uPUC57wy4QAA</XPD:REF>
<XPD:REF name="Views[2]">gv6TTUk6ckuk+1EMtPtNOgAA</XPD:REF>
<XPD:REF name="Views[3]">+w6KCJuKpEKQCpbqyC/EqAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[27]" type="UMLClass" guid="jpJn5plIeU2b48rZHhSKWgAA">
<XPD:ATTR name="Name" type="string">GLSLShaderCommon</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLSLShaderCommon</XPD:ATTR>
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">F+wx089ahUCfqQ9zE+OJPwAA</XPD:REF>
<XPD:REF name="Views[1]">3/IH7t8CE0OIORV6mFtnOQAA</XPD:REF>
<XPD:REF name="Views[2]">1HGtmSquB0yCy/wdm300SwAA</XPD:REF>
<XPD:REF name="Views[3]">ckKsW6FiK06Yp/KCcvEoxwAA</XPD:REF>
<XPD:ATTR name="#Generalizations" type="integer">1</XPD:ATTR>
<XPD:REF name="Generalizations[0]">fXNppTlgnECXzqa+7jrD1AAA</XPD:REF>
<XPD:ATTR name="#Specializations" type="integer">1</XPD:ATTR>
<XPD:REF name="Specializations[0]">azcF3PjFy0mzcBUjEUWXsQAA</XPD:REF>
<XPD:ATTR name="#Operations" type="integer">8</XPD:ATTR>
<XPD:OBJ name="Operations[0]" type="UMLOperation" guid="mE4UY4Ee3kWBUizSb1JepgAA">
<XPD:ATTR name="Name" type="string">virtual bool compile</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual bool compile</XPD:ATTR>
<XPD:REF name="Owner">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="qtYTXOIXOkm8nalyNFKQIgAA">
<XPD:ATTR name="Name" type="string">bool checkErrors</XPD:ATTR>
<XPD:ATTR name="DefaultValue" type="string">false</XPD:ATTR>
<XPD:REF name="BehavioralFeature">mE4UY4Ee3kWBUizSb1JepgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[1]" type="UMLOperation" guid="Rc1GvW3t1k2Pfpwh0iV72wAA">
<XPD:ATTR name="Name" type="string">virtual void attachToProgramObject</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual void attachToProgramObject</XPD:ATTR>
<XPD:REF name="Owner">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="MGEnxadua0K7jBmLUWzdUwAA">
<XPD:ATTR name="Name" type="string">const uint programObject</XPD:ATTR>
<XPD:REF name="BehavioralFeature">Rc1GvW3t1k2Pfpwh0iV72wAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[2]" type="UMLOperation" guid="F76ubIgEKEmfD1N91b+XgwAA">
<XPD:ATTR name="Name" type="string">virtual void detachFromProgramObject</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual void detachFromProgramObject</XPD:ATTR>
<XPD:REF name="Owner">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="NGnZRn0+hkyDmT3vzMr8ggAA">
<XPD:ATTR name="Name" type="string">const uint programObject</XPD:ATTR>
<XPD:REF name="BehavioralFeature">F76ubIgEKEmfD1N91b+XgwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[3]" type="UMLOperation" guid="Wo3n+gwV/UO7w89FYBSRywAA">
<XPD:ATTR name="Name" type="string">String getAttachedShaderNames</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">String getAttachedShaderNames</XPD:ATTR>
<XPD:REF name="Owner">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Operations[4]" type="UMLOperation" guid="pCZWXEeGmEKinr2vvoKq6gAA">
<XPD:ATTR name="Name" type="string">void attachChildShader</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void attachChildShader</XPD:ATTR>
<XPD:REF name="Owner">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="3sKT6NOzREqsq1Rxu5k8ZAAA">
<XPD:ATTR name="Name" type="string">const String&amp; name</XPD:ATTR>
<XPD:REF name="BehavioralFeature">pCZWXEeGmEKinr2vvoKq6gAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[5]" type="UMLOperation" guid="Ndi48jDtAkiofuu3rMv/pgAA">
<XPD:ATTR name="Name" type="string">void loadFromSource</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void loadFromSource</XPD:ATTR>
<XPD:REF name="Owner">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="1UY4Qt9U8EOKdtNVRU6hSAAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">Ndi48jDtAkiofuu3rMv/pgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[6]" type="UMLOperation" guid="ut7up+Wlek2S+jtz6PhM3QAA">
<XPD:ATTR name="Name" type="string">void unloadImpl</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void unloadImpl</XPD:ATTR>
<XPD:REF name="Owner">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="XJscZ10XLECXlmE8ezsH3AAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">ut7up+Wlek2S+jtz6PhM3QAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[7]" type="UMLOperation" guid="fnQleD/7akmdqOTI4mePwwAA">
<XPD:ATTR name="Name" type="string">void populateParameterNames</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void populateParameterNames</XPD:ATTR>
<XPD:REF name="Owner">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="2WcDBP3Dc0mI49zhRVlAmwAA">
<XPD:ATTR name="Name" type="string">GpuProgramParametersSharedPtr params</XPD:ATTR>
<XPD:REF name="BehavioralFeature">fnQleD/7akmdqOTI4mePwwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:ATTR name="#Attributes" type="integer">14</XPD:ATTR>
<XPD:OBJ name="Attributes[0]" type="UMLAttribute" guid="g2Fz5wMWtEuZiWWJQpd5FAAA">
<XPD:ATTR name="Name" type="string">class CmdAttach</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">class CmdAttach</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">public ParamCommand</XPD:ATTR>
<XPD:REF name="Owner">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[1]" type="UMLAttribute" guid="i70MHbAkRkm1kSjcy8CM+gAA">
<XPD:ATTR name="Name" type="string">class CmdColumnMajorMatrices</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">class CmdColumnMajorMatrices</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">public ParamCommand</XPD:ATTR>
<XPD:REF name="Owner">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[2]" type="UMLAttribute" guid="o3lHoxKB+kSHSMWrfVEQlgAA">
<XPD:ATTR name="Name" type="string">int mCompiled</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">int mCompiled</XPD:ATTR>
<XPD:REF name="Owner">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[3]" type="UMLAttribute" guid="IuJToF1vIkWalKcveN9ZIwAA">
<XPD:ATTR name="Name" type="string">RenderOperation</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">RenderOperation</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">:OperationType mInputOperationType</XPD:ATTR>
<XPD:REF name="Owner">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[4]" type="UMLAttribute" guid="51y1TxIcYEG7GeDPzksDBAAA">
<XPD:ATTR name="Name" type="string">RenderOperation</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">RenderOperation</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">:OperationType mOutputOperationType</XPD:ATTR>
<XPD:REF name="Owner">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[5]" type="UMLAttribute" guid="54NhIqXeqE2wKS/GF6nXfQAA">
<XPD:ATTR name="Name" type="string">int mMaxOutputVertices</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">int mMaxOutputVertices</XPD:ATTR>
<XPD:REF name="Owner">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[6]" type="UMLAttribute" guid="HzpvJJqEyE2HsMQ36hz3+wAA">
<XPD:ATTR name="Name" type="string">String mAttachedShaderNames</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">String mAttachedShaderNames</XPD:ATTR>
<XPD:REF name="Owner">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[7]" type="UMLAttribute" guid="wIU0Gz+eRkmFJBBdgPTOXAAA">
<XPD:ATTR name="Name" type="string">typedef vector&lt; GLSLShaderCommon* &gt;</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">typedef vector&lt; GLSLShaderCommon* &gt;</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">:type GLSLProgramContainer</XPD:ATTR>
<XPD:REF name="Owner">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[8]" type="UMLAttribute" guid="bWAJYEFPL0O4xFl7hiqamAAA">
<XPD:ATTR name="Name" type="string">GLSLProgramContainer mAttachedGLSLPrograms</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLSLProgramContainer mAttachedGLSLPrograms</XPD:ATTR>
<XPD:REF name="Owner">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[9]" type="UMLAttribute" guid="l5+Sr+Y6REy+z6gmC2gj4QAA">
<XPD:ATTR name="Name" type="string">bool mColumnMajorMatrices</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">bool mColumnMajorMatrices</XPD:ATTR>
<XPD:REF name="Owner">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[10]" type="UMLAttribute" guid="9GHfCHI7TE2ENvmwXTQLaAAA">
<XPD:ATTR name="Name" type="string">int mLinked</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">int mLinked</XPD:ATTR>
<XPD:REF name="Owner">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[11]" type="UMLAttribute" guid="b95xSTjNS0KlH0xzt7LiQwAA">
<XPD:ATTR name="Name" type="string">uint mShaderID</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">uint mShaderID</XPD:ATTR>
<XPD:REF name="Owner">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[12]" type="UMLAttribute" guid="NbTgHXjboUuxGNKbjXmKKgAA">
<XPD:ATTR name="Name" type="string">GLUniformCache    mUniformCache</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLUniformCache    mUniformCache</XPD:ATTR>
<XPD:REF name="Owner">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[13]" type="UMLAttribute" guid="smYDFHzePEqeuK2Po4l9mAAA">
<XPD:ATTR name="Name" type="string">static uint mShaderCount</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">static uint mShaderCount</XPD:ATTR>
<XPD:REF name="Owner">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[28]" type="UMLGeneralization" guid="fXNppTlgnECXzqa+7jrD1AAA">
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:REF name="Child">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
<XPD:REF name="Parent">qQcG7ZUUXU+qilFWk/228wAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">rMCtH2GFWEKaUdTOegNJ9AAA</XPD:REF>
<XPD:REF name="Views[1]">k5bjW67DXkawGgJoumohSgAA</XPD:REF>
<XPD:REF name="Views[2]">VTKF5HunuUWRgm9keqrh2gAA</XPD:REF>
<XPD:REF name="Views[3]">01YQjcNwekKsAjPDEzZTTgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[29]" type="UMLClass" guid="PC7BxjUWxEq+mLj2Oei5yQAA">
<XPD:ATTR name="Name" type="string">GLSLProgram</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLSLProgram</XPD:ATTR>
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">kUlNrOTlR02CoStGO7YQcgAA</XPD:REF>
<XPD:REF name="Views[1]">ULQK2AruAE2ctOJMzpwP9gAA</XPD:REF>
<XPD:REF name="Views[2]">dVk1PRTbV02DPJ+2Bv1I7QAA</XPD:REF>
<XPD:REF name="Views[3]">tBmsiESBRESmt0v7zI0yAQAA</XPD:REF>
<XPD:ATTR name="#Generalizations" type="integer">1</XPD:ATTR>
<XPD:REF name="Generalizations[0]">azcF3PjFy0mzcBUjEUWXsQAA</XPD:REF>
<XPD:ATTR name="#Operations" type="integer">9</XPD:ATTR>
<XPD:OBJ name="Operations[0]" type="UMLOperation" guid="Z3KsW5Lm6UKGsN64d8MXaAAA">
<XPD:ATTR name="Name" type="string">GLhandleARB getGLHandle</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLhandleARB getGLHandle</XPD:ATTR>
<XPD:REF name="Owner">PC7BxjUWxEq+mLj2Oei5yQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Operations[1]" type="UMLOperation" guid="q+UzvQIm3UG9xKdoD2ONmwAA">
<XPD:ATTR name="Name" type="string">void attachToProgramObject</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void attachToProgramObject</XPD:ATTR>
<XPD:REF name="Owner">PC7BxjUWxEq+mLj2Oei5yQAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="Gusrg02mDkmlMjfrZvih9wAA">
<XPD:ATTR name="Name" type="string">const GLhandleARB programObject</XPD:ATTR>
<XPD:REF name="BehavioralFeature">q+UzvQIm3UG9xKdoD2ONmwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[2]" type="UMLOperation" guid="Yzf5GU0Fd0SJ9e3T3QMxjQAA">
<XPD:ATTR name="Name" type="string">void detachFromProgramObject</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void detachFromProgramObject</XPD:ATTR>
<XPD:REF name="Owner">PC7BxjUWxEq+mLj2Oei5yQAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="vXy/BFLZ+EaiXtiORJ7rAAAA">
<XPD:ATTR name="Name" type="string">const GLhandleARB programObject</XPD:ATTR>
<XPD:REF name="BehavioralFeature">Yzf5GU0Fd0SJ9e3T3QMxjQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[3]" type="UMLOperation" guid="/nxSEb2qzEaTVjkj5d4tQgAA">
<XPD:ATTR name="Name" type="string">const String&amp; getLanguage</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">const String&amp; getLanguage</XPD:ATTR>
<XPD:REF name="Owner">PC7BxjUWxEq+mLj2Oei5yQAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="tTsv339jT0u6amKXy/u0HwAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">/nxSEb2qzEaTVjkj5d4tQgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[4]" type="UMLOperation" guid="4274YV84M0ilogRyJFJgQQAA">
<XPD:ATTR name="Name" type="string">bool compile</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">bool compile</XPD:ATTR>
<XPD:REF name="Owner">PC7BxjUWxEq+mLj2Oei5yQAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="pUy9YN+CMUGq3M7upZgr/wAA">
<XPD:ATTR name="Name" type="string">bool checkErrors</XPD:ATTR>
<XPD:ATTR name="DefaultValue" type="string">true</XPD:ATTR>
<XPD:REF name="BehavioralFeature">4274YV84M0ilogRyJFJgQQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[5]" type="UMLOperation" guid="rquGZHt6Mkq/UXaNNfqWmgAA">
<XPD:ATTR name="Name" type="string">void createLowLevelImpl</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void createLowLevelImpl</XPD:ATTR>
<XPD:REF name="Owner">PC7BxjUWxEq+mLj2Oei5yQAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="kcEPI5pKekWPGa5KDkOSmAAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">rquGZHt6Mkq/UXaNNfqWmgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[6]" type="UMLOperation" guid="KrnQi9+uckWIUrMyQzhydQAA">
<XPD:ATTR name="Name" type="string">void unloadHighLevelImpl</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void unloadHighLevelImpl</XPD:ATTR>
<XPD:REF name="Owner">PC7BxjUWxEq+mLj2Oei5yQAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="+o0tO+q36E2vRQmB7ZUyDAAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">KrnQi9+uckWIUrMyQzhydQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[7]" type="UMLOperation" guid="lmKyedNbUUe6iOHbgzFFKAAA">
<XPD:ATTR name="Name" type="string">void populateParameterNames</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void populateParameterNames</XPD:ATTR>
<XPD:REF name="Owner">PC7BxjUWxEq+mLj2Oei5yQAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="cq2cmVAyC0274U5+mM3VHQAA">
<XPD:ATTR name="Name" type="string">GpuProgramParametersSharedPtr params</XPD:ATTR>
<XPD:REF name="BehavioralFeature">lmKyedNbUUe6iOHbgzFFKAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[8]" type="UMLOperation" guid="Bm3Ru0l06UmUKIxTH/VFBgAA">
<XPD:ATTR name="Name" type="string">void buildConstantDefinitions</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void buildConstantDefinitions</XPD:ATTR>
<XPD:REF name="Owner">PC7BxjUWxEq+mLj2Oei5yQAA</XPD:REF>
</XPD:OBJ>
<XPD:ATTR name="#Attributes" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Attributes[0]" type="UMLAttribute" guid="iys2LlefNUeoPvJT0x0qBgAA">
<XPD:ATTR name="Name" type="string">GLhandleARB mGLHandle</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLhandleARB mGLHandle</XPD:ATTR>
<XPD:REF name="Owner">PC7BxjUWxEq+mLj2Oei5yQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[30]" type="UMLGeneralization" guid="azcF3PjFy0mzcBUjEUWXsQAA">
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:REF name="Child">PC7BxjUWxEq+mLj2Oei5yQAA</XPD:REF>
<XPD:REF name="Parent">jpJn5plIeU2b48rZHhSKWgAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">n33qrug7PkaM5l4ghdTz8QAA</XPD:REF>
<XPD:REF name="Views[1]">CyoF/BLub0W2hjelcaU84wAA</XPD:REF>
<XPD:REF name="Views[2]">NVzsb8/rDk+pCEAXnZngCQAA</XPD:REF>
<XPD:REF name="Views[3]">PEyvj2heu0SfvIfZoGPbDAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[31]" type="UMLClass" guid="ID/+6/kG6k6Rbb7RVGBh4AAA">
<XPD:ATTR name="Name" type="string">GLSLLinkProgramManager</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLSLLinkProgramManager</XPD:ATTR>
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">G5cNkuRdmkaWSO1LRhgsggAA</XPD:REF>
<XPD:REF name="Views[1]">oZ1tNluUj02y+cLtyQdOAgAA</XPD:REF>
<XPD:REF name="Views[2]">3MPH6bOsnkmHgmbkSXhRZAAA</XPD:REF>
<XPD:REF name="Views[3]">0lI3bSk+9UqrqXqQmarTWQAA</XPD:REF>
<XPD:ATTR name="#Generalizations" type="integer">1</XPD:ATTR>
<XPD:REF name="Generalizations[0]">GW/akQXzH0ausASdKUe7dQAA</XPD:REF>
<XPD:ATTR name="#Operations" type="integer">7</XPD:ATTR>
<XPD:OBJ name="Operations[0]" type="UMLOperation" guid="7i84UxCn9EWb27hN3rkmOwAA">
<XPD:ATTR name="Name" type="string">void convertGLUniformtoOgreType</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void convertGLUniformtoOgreType</XPD:ATTR>
<XPD:REF name="Owner">ID/+6/kG6k6Rbb7RVGBh4AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">2</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="Ky77M5R/EkyM8ttWKjKg/wAA">
<XPD:ATTR name="Name" type="string">GLenum gltype</XPD:ATTR>
<XPD:REF name="BehavioralFeature">7i84UxCn9EWb27hN3rkmOwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="3xjTcr4NxkWyfVfx5GZpcAAA">
<XPD:ATTR name="Name" type="string">GpuConstantDefinition&amp; defToUpdate</XPD:ATTR>
<XPD:REF name="BehavioralFeature">7i84UxCn9EWb27hN3rkmOwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[1]" type="UMLOperation" guid="6+Nva1YJEkiMGavhhz3lzAAA">
<XPD:ATTR name="Name" type="string">static bool completeParamSource</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">static bool completeParamSource</XPD:ATTR>
<XPD:REF name="Owner">ID/+6/kG6k6Rbb7RVGBh4AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">5</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="ZHFOzR5mvk2L4yVS2U4CywAA">
<XPD:ATTR name="Name" type="string">const String&amp; paramName</XPD:ATTR>
<XPD:REF name="BehavioralFeature">6+Nva1YJEkiMGavhhz3lzAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="PnjfCqOxy06WC4A/WylGDQAA">
<XPD:ATTR name="Name" type="string">vertexConstantDefs</XPD:ATTR>
<XPD:REF name="BehavioralFeature">6+Nva1YJEkiMGavhhz3lzAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[2]" type="UMLParameter" guid="WOAQxwoRG0qNwasKZIYEWQAA">
<XPD:ATTR name="Name" type="string">geometryConstantDefs</XPD:ATTR>
<XPD:REF name="BehavioralFeature">6+Nva1YJEkiMGavhhz3lzAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[3]" type="UMLParameter" guid="J8vKlQhIiUibtJq6Fig8GAAA">
<XPD:ATTR name="Name" type="string">fragmentConstantDefs</XPD:ATTR>
<XPD:REF name="BehavioralFeature">6+Nva1YJEkiMGavhhz3lzAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[4]" type="UMLParameter" guid="gP9rzq94zUCLOjnixQ3Q1AAA">
<XPD:ATTR name="Name" type="string">refToUpdate</XPD:ATTR>
<XPD:REF name="BehavioralFeature">6+Nva1YJEkiMGavhhz3lzAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[2]" type="UMLOperation" guid="BZ6z8Av2xUWrP4y3T4uteAAA">
<XPD:ATTR name="Name" type="string">GLSLLinkProgram* getActiveLinkProgram</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLSLLinkProgram* getActiveLinkProgram</XPD:ATTR>
<XPD:REF name="Owner">ID/+6/kG6k6Rbb7RVGBh4AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="Irsrtl4CxkGAQtlOxryzEAAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">BZ6z8Av2xUWrP4y3T4uteAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[3]" type="UMLOperation" guid="W1QtnYsymUys/YBVzjsmRgAA">
<XPD:ATTR name="Name" type="string">void setActiveFragmentShader</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void setActiveFragmentShader</XPD:ATTR>
<XPD:REF name="Owner">ID/+6/kG6k6Rbb7RVGBh4AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="q8uEoc1WpkO9Z+ZZhwXCxwAA">
<XPD:ATTR name="Name" type="string">GLSLProgram* fragmentGpuProgram</XPD:ATTR>
<XPD:REF name="BehavioralFeature">W1QtnYsymUys/YBVzjsmRgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[4]" type="UMLOperation" guid="5rrco7ODXECTXcl7A9kvuQAA">
<XPD:ATTR name="Name" type="string">void setActiveGeometryShader</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void setActiveGeometryShader</XPD:ATTR>
<XPD:REF name="Owner">ID/+6/kG6k6Rbb7RVGBh4AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="bbPx7UqdkkG9wjeMu3wewAAA">
<XPD:ATTR name="Name" type="string">GLSLProgram* geometryGpuProgram</XPD:ATTR>
<XPD:REF name="BehavioralFeature">5rrco7ODXECTXcl7A9kvuQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[5]" type="UMLOperation" guid="pegj/Ui/v02VrQJHJ8P0RAAA">
<XPD:ATTR name="Name" type="string">void setActiveVertexShader</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void setActiveVertexShader</XPD:ATTR>
<XPD:REF name="Owner">ID/+6/kG6k6Rbb7RVGBh4AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="2pAHkzINFUOHlQt+eD13ygAA">
<XPD:ATTR name="Name" type="string">GLSLProgram* vertexGpuProgram</XPD:ATTR>
<XPD:REF name="BehavioralFeature">pegj/Ui/v02VrQJHJ8P0RAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[6]" type="UMLOperation" guid="B4IoBHeWF0ivWavh4ipe6AAA">
<XPD:ATTR name="Name" type="string">static void extractUniforms</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">static void extractUniforms</XPD:ATTR>
<XPD:REF name="Owner">ID/+6/kG6k6Rbb7RVGBh4AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">5</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="7tuYuMXiH0SJXYK4WMr+mwAA">
<XPD:ATTR name="Name" type="string">programObject</XPD:ATTR>
<XPD:REF name="BehavioralFeature">B4IoBHeWF0ivWavh4ipe6AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="IFD6q65z+E2EBeBHXE4zGgAA">
<XPD:ATTR name="Name" type="string">vertexConstantDefs</XPD:ATTR>
<XPD:REF name="BehavioralFeature">B4IoBHeWF0ivWavh4ipe6AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[2]" type="UMLParameter" guid="heko7JRGUkG2u/xKJqTqhgAA">
<XPD:ATTR name="Name" type="string">geometryConstantDefs</XPD:ATTR>
<XPD:REF name="BehavioralFeature">B4IoBHeWF0ivWavh4ipe6AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[3]" type="UMLParameter" guid="EG+3cBJ4eU2sQ7G4TP8+nAAA">
<XPD:ATTR name="Name" type="string">fragmentConstantDefs</XPD:ATTR>
<XPD:REF name="BehavioralFeature">B4IoBHeWF0ivWavh4ipe6AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[4]" type="UMLParameter" guid="hQ18G68AQ0u/dP/qzUyIOwAA">
<XPD:ATTR name="Name" type="string">list</XPD:ATTR>
<XPD:REF name="BehavioralFeature">B4IoBHeWF0ivWavh4ipe6AAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:ATTR name="#Attributes" type="integer">4</XPD:ATTR>
<XPD:OBJ name="Attributes[0]" type="UMLAttribute" guid="cX7HmUeI0EWMTFsDuGCE5AAA">
<XPD:ATTR name="Name" type="string">GLSLProgram* mActiveVertexGpuProgram</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLSLProgram* mActiveVertexGpuProgram</XPD:ATTR>
<XPD:REF name="Owner">ID/+6/kG6k6Rbb7RVGBh4AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[1]" type="UMLAttribute" guid="5KkzP5sjHUqCGWSWvwow+QAA">
<XPD:ATTR name="Name" type="string">GLSLProgram* mActiveGeometryGpuProgram</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLSLProgram* mActiveGeometryGpuProgram</XPD:ATTR>
<XPD:REF name="Owner">ID/+6/kG6k6Rbb7RVGBh4AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[2]" type="UMLAttribute" guid="UYCdLvjUxEiSGJgCLGd1XAAA">
<XPD:ATTR name="Name" type="string">GLSLProgram* mActiveFragmentGpuProgram</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLSLProgram* mActiveFragmentGpuProgram</XPD:ATTR>
<XPD:REF name="Owner">ID/+6/kG6k6Rbb7RVGBh4AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[3]" type="UMLAttribute" guid="fWwZdqgKMEG6Vjpar3TzEwAA">
<XPD:ATTR name="Name" type="string">GLSLLinkProgram* mActiveLinkProgram</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLSLLinkProgram* mActiveLinkProgram</XPD:ATTR>
<XPD:REF name="Owner">ID/+6/kG6k6Rbb7RVGBh4AAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[32]" type="UMLClass" guid="XsNiMY1X802GjNJWAK/9twAA">
<XPD:ATTR name="Name" type="string">GLSLProgramManagerCommon</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLSLProgramManagerCommon</XPD:ATTR>
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">+5ba7AGKEEaOOp9OZRxgkwAA</XPD:REF>
<XPD:REF name="Views[1]">KwVUlfQw3kWw8J6HAqkZJgAA</XPD:REF>
<XPD:REF name="Views[2]">FLCaiuVYXku8uvZNrfwU/wAA</XPD:REF>
<XPD:REF name="Views[3]">vpBrupZ51UOWdYwBernx3AAA</XPD:REF>
<XPD:ATTR name="#Specializations" type="integer">1</XPD:ATTR>
<XPD:REF name="Specializations[0]">GW/akQXzH0ausASdKUe7dQAA</XPD:REF>
<XPD:ATTR name="#Operations" type="integer">4</XPD:ATTR>
<XPD:OBJ name="Operations[0]" type="UMLOperation" guid="VO3MclluoEmAm3UcUSyP0gAA">
<XPD:ATTR name="Name" type="string">virtual void convertGLUniformtoOgreType</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual void convertGLUniformtoOgreType</XPD:ATTR>
<XPD:REF name="Owner">XsNiMY1X802GjNJWAK/9twAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">2</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="HbVrzYCVR0KeI0OI+DPaUgAA">
<XPD:ATTR name="Name" type="string">uint32 gltype</XPD:ATTR>
<XPD:REF name="BehavioralFeature">VO3MclluoEmAm3UcUSyP0gAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="BmjV1B9AM0KR+B9WIt/qGAAA">
<XPD:ATTR name="Name" type="string">GpuConstantDefinition&amp; defToUpdate</XPD:ATTR>
<XPD:REF name="BehavioralFeature">VO3MclluoEmAm3UcUSyP0gAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[1]" type="UMLOperation" guid="FVtApD1rhkGBfCVzx3eyxgAA">
<XPD:ATTR name="Name" type="string">void parseGLSLUniform</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void parseGLSLUniform</XPD:ATTR>
<XPD:REF name="Owner">XsNiMY1X802GjNJWAK/9twAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">4</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="S652OgQutES0FFWQa4Y5AAAA">
<XPD:ATTR name="Name" type="string">String line</XPD:ATTR>
<XPD:REF name="BehavioralFeature">FVtApD1rhkGBfCVzx3eyxgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="KhqDUej1tkeMK0o6i9p0DgAA">
<XPD:ATTR name="Name" type="string">GpuNamedConstants&amp; defs</XPD:ATTR>
<XPD:REF name="BehavioralFeature">FVtApD1rhkGBfCVzx3eyxgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[2]" type="UMLParameter" guid="Lmhr5b2LZ0mFRG+Ib80asQAA">
<XPD:ATTR name="Name" type="string">const String&amp; filename</XPD:ATTR>
<XPD:REF name="BehavioralFeature">FVtApD1rhkGBfCVzx3eyxgAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[3]" type="UMLParameter" guid="VH3UHa9FHkK+M3OPNH1/RQAA">
<XPD:ATTR name="Name" type="string">const GpuSharedParametersPtr&amp; sharedParams</XPD:ATTR>
<XPD:REF name="BehavioralFeature">FVtApD1rhkGBfCVzx3eyxgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[2]" type="UMLOperation" guid="UnIyhrB5akWcx0YinKUsdQAA">
<XPD:ATTR name="Name" type="string">void extractUniformsFromGLSL</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void extractUniformsFromGLSL</XPD:ATTR>
<XPD:REF name="Owner">XsNiMY1X802GjNJWAK/9twAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">3</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="PNzzSj8Zw0C8cq3B1+JprwAA">
<XPD:ATTR name="Name" type="string">const String&amp; src</XPD:ATTR>
<XPD:REF name="BehavioralFeature">UnIyhrB5akWcx0YinKUsdQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="wBmqKhawCUC1rdkC69QNYAAA">
<XPD:ATTR name="Name" type="string">GpuNamedConstants&amp; constantDefs</XPD:ATTR>
<XPD:REF name="BehavioralFeature">UnIyhrB5akWcx0YinKUsdQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[2]" type="UMLParameter" guid="s3qUcFiVS027a1iDUs7J+AAA">
<XPD:ATTR name="Name" type="string">const String&amp; filename</XPD:ATTR>
<XPD:REF name="BehavioralFeature">UnIyhrB5akWcx0YinKUsdQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[3]" type="UMLOperation" guid="zmLiIkCIsUSDmmgdx0aPegAA">
<XPD:ATTR name="Name" type="string">void destroyAllByShader</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void destroyAllByShader</XPD:ATTR>
<XPD:REF name="Owner">XsNiMY1X802GjNJWAK/9twAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="NDzBJt+hx0OAYJZP5Xiv0gAA">
<XPD:ATTR name="Name" type="string">GLSLShaderCommon* shader</XPD:ATTR>
<XPD:REF name="BehavioralFeature">zmLiIkCIsUSDmmgdx0aPegAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:ATTR name="#Attributes" type="integer">4</XPD:ATTR>
<XPD:OBJ name="Attributes[0]" type="UMLAttribute" guid="izBQH2/CZEShm/fVIoge0gAA">
<XPD:ATTR name="Name" type="string">typedef map&lt;String, uint32&gt;</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">typedef map&lt;String, uint32&gt;</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">:type StringToEnumMap</XPD:ATTR>
<XPD:REF name="Owner">XsNiMY1X802GjNJWAK/9twAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[1]" type="UMLAttribute" guid="ZL7JqfcylU26/6r3tJ0FugAA">
<XPD:ATTR name="Name" type="string">StringToEnumMap mTypeEnumMap</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">StringToEnumMap mTypeEnumMap</XPD:ATTR>
<XPD:REF name="Owner">XsNiMY1X802GjNJWAK/9twAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[2]" type="UMLAttribute" guid="593eY1mPCEuE5TnkfXQWoAAA">
<XPD:ATTR name="Name" type="string">typedef map&lt;uint32, GLSLProgramCommon*&gt;</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">typedef map&lt;uint32, GLSLProgramCommon*&gt;</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">:type ProgramMap</XPD:ATTR>
<XPD:REF name="Owner">XsNiMY1X802GjNJWAK/9twAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[3]" type="UMLAttribute" guid="nS8dsVLoAEmaVyWk3dElnAAA">
<XPD:ATTR name="Name" type="string">ProgramMap mPrograms</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">ProgramMap mPrograms</XPD:ATTR>
<XPD:REF name="Owner">XsNiMY1X802GjNJWAK/9twAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[33]" type="UMLGeneralization" guid="GW/akQXzH0ausASdKUe7dQAA">
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:REF name="Child">ID/+6/kG6k6Rbb7RVGBh4AAA</XPD:REF>
<XPD:REF name="Parent">XsNiMY1X802GjNJWAK/9twAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">4ydtq/sJ9kW75cSD7udsjQAA</XPD:REF>
<XPD:REF name="Views[1]">4mPJ4+V5uk+mIfMpe/9+TQAA</XPD:REF>
<XPD:REF name="Views[2]">OkeXO/OuEUaOPfJq3vIc6gAA</XPD:REF>
<XPD:REF name="Views[3]">3bMtmWhyhUWJ4WATrKLSXQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[34]" type="UMLClass" guid="EP1o5RNkBUiVK+LZdMJhcAAA">
<XPD:ATTR name="Name" type="string">ATI_FS_GLGpuProgram</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">ATI_FS_GLGpuProgram</XPD:ATTR>
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">BLr6EpAJ6U2NNiF3bGgbxQAA</XPD:REF>
<XPD:REF name="Views[1]">8bG1KWvRz0CUW70J6DIIOQAA</XPD:REF>
<XPD:REF name="Views[2]">xKvGB5RBokCCkcC15KOYTwAA</XPD:REF>
<XPD:REF name="Views[3]">WfathBcW0k2irIJO46Gi0gAA</XPD:REF>
<XPD:ATTR name="#Generalizations" type="integer">1</XPD:ATTR>
<XPD:REF name="Generalizations[0]">h/o8+Z2J1ECQylXbdBBy/gAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[35]" type="UMLGeneralization" guid="h/o8+Z2J1ECQylXbdBBy/gAA">
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:REF name="Child">EP1o5RNkBUiVK+LZdMJhcAAA</XPD:REF>
<XPD:REF name="Parent">Ehy2CXKPwkK55nQi7MbYlwAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">MGiuDs0Dvk+QKjx/i4+yJAAA</XPD:REF>
<XPD:REF name="Views[1]">iKpYm/JarUGmnFwJppEWywAA</XPD:REF>
<XPD:REF name="Views[2]">fM1TozOGZ0yrKHh8UDEhCwAA</XPD:REF>
<XPD:REF name="Views[3]">eognpo6HG062zK+6cq8e+AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[36]" type="UMLClass" guid="/1nTvouyyUa2zsFJvMpO1AAA">
<XPD:ATTR name="Name" type="string">GLSLProgramCommon</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLSLProgramCommon</XPD:ATTR>
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">r5zf3k5TLUiyaPeTjv0oeAAA</XPD:REF>
<XPD:REF name="Views[1]">zvTPb3D470SDer505rCwVwAA</XPD:REF>
<XPD:REF name="Views[2]">y0eK9p+JPUu306JRIVpxHQAA</XPD:REF>
<XPD:REF name="Views[3]">Q0+xvxunQES99Avfv2Ni0AAA</XPD:REF>
<XPD:ATTR name="#Specializations" type="integer">1</XPD:ATTR>
<XPD:REF name="Specializations[0]">GTFyyY1kAkuBUcTiYLW7PgAA</XPD:REF>
<XPD:ATTR name="#Operations" type="integer">14</XPD:ATTR>
<XPD:OBJ name="Operations[0]" type="UMLOperation" guid="SI3Ukdex+0u4JUgFaRhh2wAA">
<XPD:ATTR name="Name" type="string">void extractLayoutQualifiers</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void extractLayoutQualifiers</XPD:ATTR>
<XPD:REF name="Owner">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="VrQU+FkwSU6GnKlH+kE+QQAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">SI3Ukdex+0u4JUgFaRhh2wAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[1]" type="UMLOperation" guid="8YGQzNR2B0uFpt7tsfn/bQAA">
<XPD:ATTR name="Name" type="string">oid setSkeletalAnimationIncluded</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">oid setSkeletalAnimationIncluded</XPD:ATTR>
<XPD:REF name="Owner">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="lb+pU9cnGEOhBeip5EHzeAAA">
<XPD:ATTR name="Name" type="string">bool included</XPD:ATTR>
<XPD:REF name="BehavioralFeature">8YGQzNR2B0uFpt7tsfn/bQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[2]" type="UMLOperation" guid="TCaeBBUTKUKQ2iCG9OvrwwAA">
<XPD:ATTR name="Name" type="string">bool isSkeletalAnimationIncluded</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">bool isSkeletalAnimationIncluded</XPD:ATTR>
<XPD:REF name="Owner">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="R92rvqpXO0mp+L2CrhdxbAAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">TCaeBBUTKUKQ2iCG9OvrwwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[3]" type="UMLOperation" guid="QrI+xG7bKEaxJ4dqQYfYnQAA">
<XPD:ATTR name="Name" type="string">uint getGLProgramHandle</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">uint getGLProgramHandle</XPD:ATTR>
<XPD:REF name="Owner">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="twvOQRIwKESOJ9fSwBE5MgAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">QrI+xG7bKEaxJ4dqQYfYnQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[4]" type="UMLOperation" guid="kSdd9B2oZky15vae1bNJqwAA">
<XPD:ATTR name="Name" type="string">virtual void activate</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual void activate</XPD:ATTR>
<XPD:REF name="Owner">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="xNcOlFk0g0C2MnZlKR1/tQAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">kSdd9B2oZky15vae1bNJqwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[5]" type="UMLOperation" guid="yZBV0BEYrU+LD2Mzu8OJkgAA">
<XPD:ATTR name="Name" type="string">virtual bool isUsingShader</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual bool isUsingShader</XPD:ATTR>
<XPD:REF name="Owner">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="cIZyVzyLY0aIPTHdi3d7VgAA">
<XPD:ATTR name="Name" type="string">GLSLShaderCommon* shader</XPD:ATTR>
<XPD:REF name="BehavioralFeature">yZBV0BEYrU+LD2Mzu8OJkgAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[6]" type="UMLOperation" guid="5jveYvTpx0G2iKNoVSWplAAA">
<XPD:ATTR name="Name" type="string">virtual void updateUniforms</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual void updateUniforms</XPD:ATTR>
<XPD:REF name="Owner">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">3</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="Kq8DgMlPm0Kty3xx7wXQGgAA">
<XPD:ATTR name="Name" type="string">GpuProgramParametersSharedPtr params</XPD:ATTR>
<XPD:REF name="BehavioralFeature">5jveYvTpx0G2iKNoVSWplAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="T/3ZG5WqwE6EgycTUgKrcwAA">
<XPD:ATTR name="Name" type="string">uint16 mask</XPD:ATTR>
<XPD:REF name="BehavioralFeature">5jveYvTpx0G2iKNoVSWplAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[2]" type="UMLParameter" guid="8UwZRYEFxUqm2EIlXd7NdQAA">
<XPD:ATTR name="Name" type="string">GpuProgramType fromProgType</XPD:ATTR>
<XPD:REF name="BehavioralFeature">5jveYvTpx0G2iKNoVSWplAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[7]" type="UMLOperation" guid="qLTu/KVUP0Gw3cVCW39mHQAA">
<XPD:ATTR name="Name" type="string">virtual void updateUniformBlocks</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual void updateUniformBlocks</XPD:ATTR>
<XPD:REF name="Owner">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">3</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="RNPgjXyrQ0SIZb+64pTvMAAA">
<XPD:ATTR name="Name" type="string">GpuProgramParametersSharedPtr params</XPD:ATTR>
<XPD:REF name="BehavioralFeature">qLTu/KVUP0Gw3cVCW39mHQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="RhKvIEO3sU+dzwyIEEST9gAA">
<XPD:ATTR name="Name" type="string">uint16 mask</XPD:ATTR>
<XPD:REF name="BehavioralFeature">qLTu/KVUP0Gw3cVCW39mHQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[2]" type="UMLParameter" guid="6WB8+/7kzUmTMohjq+El7gAA">
<XPD:ATTR name="Name" type="string">GpuProgramType fromProgType</XPD:ATTR>
<XPD:REF name="BehavioralFeature">qLTu/KVUP0Gw3cVCW39mHQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[8]" type="UMLOperation" guid="wBM+fTtHK0GOnt411+dYUQAA">
<XPD:ATTR name="Name" type="string">virtual void updatePassIterationUniforms</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual void updatePassIterationUniforms</XPD:ATTR>
<XPD:REF name="Owner">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="F05irWZadEGlHbDtcQJpuAAA">
<XPD:ATTR name="Name" type="string">GpuProgramParametersSharedPtr params</XPD:ATTR>
<XPD:REF name="BehavioralFeature">wBM+fTtHK0GOnt411+dYUQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[9]" type="UMLOperation" guid="iFca3qDzKUmXbGlpFgc2wwAA">
<XPD:ATTR name="Name" type="string">static int32 getFixedAttributeIndex</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">static int32 getFixedAttributeIndex</XPD:ATTR>
<XPD:REF name="Owner">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">2</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="aUsEeoycekaWs9zmu6aX5QAA">
<XPD:ATTR name="Name" type="string">VertexElementSemantic semantic</XPD:ATTR>
<XPD:REF name="BehavioralFeature">iFca3qDzKUmXbGlpFgc2wwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="XDpz6dhdsEaNMGhyssQzzwAA">
<XPD:ATTR name="Name" type="string">uint index</XPD:ATTR>
<XPD:REF name="BehavioralFeature">iFca3qDzKUmXbGlpFgc2wwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[10]" type="UMLOperation" guid="EQTtEY088E+RIECXxgfidQAA">
<XPD:ATTR name="Name" type="string">static void useTightAttributeLayout</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">static void useTightAttributeLayout</XPD:ATTR>
<XPD:REF name="Owner">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Operations[11]" type="UMLOperation" guid="hAH1V/qbiEyw739AUZ/vrwAA">
<XPD:ATTR name="Name" type="string">virtual void compileAndLink</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">virtual void compileAndLink</XPD:ATTR>
<XPD:REF name="Owner">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="e4gzPxXybU2ICwzA6IliJQAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">hAH1V/qbiEyw739AUZ/vrwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[12]" type="UMLOperation" guid="3TMTiHo6oESX/GtnQ0WY3wAA">
<XPD:ATTR name="Name" type="string">static VertexElementSemantic getAttributeSemanticEnum</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">static VertexElementSemantic getAttributeSemanticEnum</XPD:ATTR>
<XPD:REF name="Owner">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="unTKl4FC10i31QhBlNSD9gAA">
<XPD:ATTR name="Name" type="string">const String&amp; type</XPD:ATTR>
<XPD:REF name="BehavioralFeature">3TMTiHo6oESX/GtnQ0WY3wAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[13]" type="UMLOperation" guid="O+ijdQ9lHU6bNllkk1i0XAAA">
<XPD:ATTR name="Name" type="string">static const char * getAttributeSemanticString</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">static const char * getAttributeSemanticString</XPD:ATTR>
<XPD:REF name="Owner">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="0qNc0zHDuUGZp/bZSdFJNgAA">
<XPD:ATTR name="Name" type="string">VertexElementSemantic semantic</XPD:ATTR>
<XPD:REF name="BehavioralFeature">O+ijdQ9lHU6bNllkk1i0XAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:ATTR name="#Associations" type="integer">2</XPD:ATTR>
<XPD:REF name="Associations[0]">12mTE9x9B0W48xNOH4O6ZQAA</XPD:REF>
<XPD:REF name="Associations[1]">P/mR4golxE+MMWTyDSbcpwAA</XPD:REF>
<XPD:ATTR name="#Attributes" type="integer">12</XPD:ATTR>
<XPD:OBJ name="Attributes[0]" type="UMLAttribute" guid="V6mymaXLWESw+gN8DtrJnwAA">
<XPD:ATTR name="Name" type="string">GLUniformReferenceList mGLUniformReferences;</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLUniformReferenceList mGLUniformReferences;</XPD:ATTR>
<XPD:REF name="Owner">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[1]" type="UMLAttribute" guid="DWw1yHVefkWl6YwU1pYbDgAA">
<XPD:ATTR name="Name" type="string">GLUniformBufferList mGLUniformBufferReferences;</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLUniformBufferList mGLUniformBufferReferences;</XPD:ATTR>
<XPD:REF name="Owner">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[2]" type="UMLAttribute" guid="n5NFmLUk0kaCreCBMMHiqwAA">
<XPD:ATTR name="Name" type="string">GLSLShaderCommon* mVertexShader;</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLSLShaderCommon* mVertexShader;</XPD:ATTR>
<XPD:REF name="Owner">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[3]" type="UMLAttribute" guid="4jpCrxS370eo4stHKmJ4TgAA">
<XPD:ATTR name="Name" type="string">bool mUniformRefsBuilt;</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">bool mUniformRefsBuilt;</XPD:ATTR>
<XPD:REF name="Owner">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[4]" type="UMLAttribute" guid="MaY437m35kiTkqg7/kcHigAA">
<XPD:ATTR name="Name" type="string">uint mGLProgramHandle;</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">uint mGLProgramHandle;</XPD:ATTR>
<XPD:REF name="Owner">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[5]" type="UMLAttribute" guid="kOLfKpb21Eu3jCpWgQdtyAAA">
<XPD:ATTR name="Name" type="string">int mLinked;</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">int mLinked;</XPD:ATTR>
<XPD:REF name="Owner">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[6]" type="UMLAttribute" guid="ExWrjkaa3EuEO94kEEpyYQAA">
<XPD:ATTR name="Name" type="string">bool mTriedToLinkAndFailed;</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">bool mTriedToLinkAndFailed;</XPD:ATTR>
<XPD:REF name="Owner">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[7]" type="UMLAttribute" guid="c3kp2XFvgUeTHyQ14kZwxgAA">
<XPD:ATTR name="Name" type="string">bool mSkeletalAnimation;</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">bool mSkeletalAnimation;</XPD:ATTR>
<XPD:REF name="Owner">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[8]" type="UMLAttribute" guid="R8DlUKABX0ir4P9hgJtrbAAA">
<XPD:ATTR name="Name" type="string">int mCustomAttributesIndexes</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">int mCustomAttributesIndexes</XPD:ATTR>
<XPD:REF name="Owner">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[9]" type="UMLAttribute" guid="NejXtyu2k0urPWbcwjt36QAA">
<XPD:ATTR name="Name" type="string">static CustomAttribute msCustomAttributes</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">static CustomAttribute msCustomAttributes</XPD:ATTR>
<XPD:REF name="Owner">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[10]" type="UMLAttribute" guid="tbi2zAVdmkSvcqzHxwd4pgAA">
<XPD:ATTR name="Name" type="string">typedef vector&lt;GLUniformReference&gt;</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">typedef vector&lt;GLUniformReference&gt;</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">:type GLUniformReferenceList;</XPD:ATTR>
<XPD:REF name="Owner">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[11]" type="UMLAttribute" guid="uVcwxqVcWUWl9cakldVhewAA">
<XPD:ATTR name="Name" type="string">typedef vector&lt;HardwareUniformBufferSharedPtr&gt;</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">typedef vector&lt;HardwareUniformBufferSharedPtr&gt;</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">:type GLUniformBufferList;</XPD:ATTR>
<XPD:REF name="Owner">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[37]" type="UMLClass" guid="CdxQfbx8hkeoUSJ+PAwvlwAA">
<XPD:ATTR name="Name" type="string">CustomAttribute</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">CustomAttribute</XPD:ATTR>
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">VpCm8r80JUqm1np5emC5bQAA</XPD:REF>
<XPD:REF name="Views[1]">AkU/0kWHrkCmrjK3P8Kb5AAA</XPD:REF>
<XPD:REF name="Views[2]">X9L25beJRUWzk533neE0uQAA</XPD:REF>
<XPD:REF name="Views[3]">8JB9r64mbkmHPquAi2B37QAA</XPD:REF>
<XPD:ATTR name="#Associations" type="integer">2</XPD:ATTR>
<XPD:REF name="Associations[0]">oj5H0bg+40Sj71kjXg+SGQAA</XPD:REF>
<XPD:REF name="Associations[1]">xOR0GezFS06VNfX9zsPOLAAA</XPD:REF>
<XPD:ATTR name="#Attributes" type="integer">3</XPD:ATTR>
<XPD:OBJ name="Attributes[0]" type="UMLAttribute" guid="s4KIgvWu50qBAoPssnKslwAA">
<XPD:ATTR name="Name" type="string">const char* name;</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">const char* name;</XPD:ATTR>
<XPD:REF name="Owner">CdxQfbx8hkeoUSJ+PAwvlwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[1]" type="UMLAttribute" guid="620Q5QXB5k2oamHiBmTcEgAA">
<XPD:ATTR name="Name" type="string">int32 attrib;</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">int32 attrib;</XPD:ATTR>
<XPD:REF name="Owner">CdxQfbx8hkeoUSJ+PAwvlwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[2]" type="UMLAttribute" guid="uKYsepFth0unOO0IgqprPAAA">
<XPD:ATTR name="Name" type="string">VertexElementSemantic semantic;</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">VertexElementSemantic semantic;</XPD:ATTR>
<XPD:REF name="Owner">CdxQfbx8hkeoUSJ+PAwvlwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[38]" type="UMLEnumeration" guid="D8PJWyhJp0Se1jG74OxfIAAA">
<XPD:ATTR name="Name" type="string">VertexElementSemantic</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">VertexElementSemantic</XPD:ATTR>
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">3</XPD:ATTR>
<XPD:REF name="Views[0]">JRS+1uvxg06FbJgZQCcXkQAA</XPD:REF>
<XPD:REF name="Views[1]">WstRkVbIVEyiAhOzO5M9jgAA</XPD:REF>
<XPD:REF name="Views[2]">e4A6fhjMhEO46woeGzCmGAAA</XPD:REF>
<XPD:ATTR name="#Associations" type="integer">1</XPD:ATTR>
<XPD:REF name="Associations[0]">76y1bJvFyEax61NXNc4zFwAA</XPD:REF>
<XPD:ATTR name="#Literals" type="integer">10</XPD:ATTR>
<XPD:OBJ name="Literals[0]" type="UMLEnumerationLiteral" guid="/tZ51tBI3UulWXuoKDyJFwAA">
<XPD:ATTR name="Name" type="string">VES_POSITION</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">VES_POSITION</XPD:ATTR>
<XPD:REF name="Enumeration">D8PJWyhJp0Se1jG74OxfIAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Literals[1]" type="UMLEnumerationLiteral" guid="/aBrV+Zi+Uihe4sTyGPNngAA">
<XPD:ATTR name="Name" type="string">VES_BLEND_WEIGHTS</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">VES_BLEND_WEIGHTS</XPD:ATTR>
<XPD:REF name="Enumeration">D8PJWyhJp0Se1jG74OxfIAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Literals[2]" type="UMLEnumerationLiteral" guid="aSlbqjc0WkO712EkquzEOwAA">
<XPD:ATTR name="Name" type="string">VES_BLEND_INDICES</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">VES_BLEND_INDICES</XPD:ATTR>
<XPD:REF name="Enumeration">D8PJWyhJp0Se1jG74OxfIAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Literals[3]" type="UMLEnumerationLiteral" guid="EAEBdixvb0iLKN6beoBpmQAA">
<XPD:ATTR name="Name" type="string">VES_NORMAL</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">VES_NORMAL</XPD:ATTR>
<XPD:REF name="Enumeration">D8PJWyhJp0Se1jG74OxfIAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Literals[4]" type="UMLEnumerationLiteral" guid="wTipl5w7rUaCvfNYTzQIHAAA">
<XPD:ATTR name="Name" type="string">VES_DIFFUSE</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">VES_DIFFUSE</XPD:ATTR>
<XPD:REF name="Enumeration">D8PJWyhJp0Se1jG74OxfIAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Literals[5]" type="UMLEnumerationLiteral" guid="8ifVDhRs7U2LP8+ZhLfCwQAA">
<XPD:ATTR name="Name" type="string">VES_SPECULAR</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">VES_SPECULAR</XPD:ATTR>
<XPD:REF name="Enumeration">D8PJWyhJp0Se1jG74OxfIAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Literals[6]" type="UMLEnumerationLiteral" guid="sKO4sJiJEEap630iSrgGvAAA">
<XPD:ATTR name="Name" type="string">VES_TEXTURE_COORDINATES</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">VES_TEXTURE_COORDINATES</XPD:ATTR>
<XPD:REF name="Enumeration">D8PJWyhJp0Se1jG74OxfIAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Literals[7]" type="UMLEnumerationLiteral" guid="GEMi+/jzlk+/7Hu1V2xzfwAA">
<XPD:ATTR name="Name" type="string">VES_BINORMAL</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">VES_BINORMAL</XPD:ATTR>
<XPD:REF name="Enumeration">D8PJWyhJp0Se1jG74OxfIAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Literals[8]" type="UMLEnumerationLiteral" guid="62y2o564zkujZGtVjp/pFwAA">
<XPD:ATTR name="Name" type="string">VES_TANGENT</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">VES_TANGENT</XPD:ATTR>
<XPD:REF name="Enumeration">D8PJWyhJp0Se1jG74OxfIAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Literals[9]" type="UMLEnumerationLiteral" guid="dZIxtui/Z02RAtUO8ACnJQAA">
<XPD:ATTR name="Name" type="string">VES_COUNT</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">VES_COUNT</XPD:ATTR>
<XPD:REF name="Enumeration">D8PJWyhJp0Se1jG74OxfIAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[39]" type="UMLAssociation" guid="mk5H0kekcEClpqnc8nfwWQAA">
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">u2/WaoxNV0Kjb8JBKstRvwAA</XPD:REF>
<XPD:REF name="Views[1]">EGhF4DfzTU2p+VD3YnsGAwAA</XPD:REF>
<XPD:REF name="Views[2]">rfZRbANVdkGPXo4D0Cw6kgAA</XPD:REF>
<XPD:REF name="Views[3]">jx+lcp9/IE+9xSTkVYC5JAAA</XPD:REF>
<XPD:ATTR name="#Connections" type="integer">2</XPD:ATTR>
<XPD:OBJ name="Connections[0]" type="UMLAssociationEnd" guid="oj5H0bg+40Sj71kjXg+SGQAA">
<XPD:ATTR name="IsNavigable" type="boolean">False</XPD:ATTR>
<XPD:REF name="Association">mk5H0kekcEClpqnc8nfwWQAA</XPD:REF>
<XPD:REF name="Participant">CdxQfbx8hkeoUSJ+PAwvlwAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">JzCPdO9qv0KLbuKCHQ5O8wAA</XPD:REF>
<XPD:REF name="Views[1]">JgZA+OiNRkmVjwGCH1rYrgAA</XPD:REF>
<XPD:REF name="Views[2]">KZrAcVkHc06wYqwZbJvUYwAA</XPD:REF>
<XPD:REF name="Views[3]">E8g53Ca0wU2kKvkUY3MbvQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Connections[1]" type="UMLAssociationEnd" guid="76y1bJvFyEax61NXNc4zFwAA">
<XPD:REF name="Association">mk5H0kekcEClpqnc8nfwWQAA</XPD:REF>
<XPD:REF name="Participant">D8PJWyhJp0Se1jG74OxfIAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">nhA8slubKkulwEH635rvPQAA</XPD:REF>
<XPD:REF name="Views[1]">FkPzv8jBd0qtgQ1JEtKXogAA</XPD:REF>
<XPD:REF name="Views[2]">zUr32xXax06O7mknjT0VCQAA</XPD:REF>
<XPD:REF name="Views[3]">x9+E92fj/kCLbWhHf2dlTQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[40]" type="UMLAssociation" guid="nR36i1xnyk20Bnn9AzeIKQAA">
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">Fu4cNv/L502yhIbLMX/0TwAA</XPD:REF>
<XPD:REF name="Views[1]">2510ke0vK0S0+Ew7a6sE6AAA</XPD:REF>
<XPD:REF name="Views[2]">o0BZQQC1W0KTV52NJghLTgAA</XPD:REF>
<XPD:REF name="Views[3]">23eZ2b+8B0aUhlVo4HkCLAAA</XPD:REF>
<XPD:ATTR name="#Connections" type="integer">2</XPD:ATTR>
<XPD:OBJ name="Connections[0]" type="UMLAssociationEnd" guid="12mTE9x9B0W48xNOH4O6ZQAA">
<XPD:ATTR name="IsNavigable" type="boolean">False</XPD:ATTR>
<XPD:REF name="Association">nR36i1xnyk20Bnn9AzeIKQAA</XPD:REF>
<XPD:REF name="Participant">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">01Iw/WmwW0WmX97vL7ZTKAAA</XPD:REF>
<XPD:REF name="Views[1]">hd4rfhzADUKNeXWTOxGBTAAA</XPD:REF>
<XPD:REF name="Views[2]">CrypR6LKfUyQDplCLTxbxgAA</XPD:REF>
<XPD:REF name="Views[3]">HaFOTk6lDkuNZbT4j9QZTQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Connections[1]" type="UMLAssociationEnd" guid="xOR0GezFS06VNfX9zsPOLAAA">
<XPD:REF name="Association">nR36i1xnyk20Bnn9AzeIKQAA</XPD:REF>
<XPD:REF name="Participant">CdxQfbx8hkeoUSJ+PAwvlwAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">DD5/hkMhmEKESaVYsB7zqwAA</XPD:REF>
<XPD:REF name="Views[1]">IrJVfJo/p0S+d2tT+2lLBQAA</XPD:REF>
<XPD:REF name="Views[2]">myGsNre4KkO20dc6+vxvTgAA</XPD:REF>
<XPD:REF name="Views[3]">t02/DJRWakO74IX9przGAQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[41]" type="UMLClass" guid="XpqyRLzK50y91lNjpszliQAA">
<XPD:ATTR name="Name" type="string">GLUniformReference</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLUniformReference</XPD:ATTR>
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">ni010HCEUECBSJJNEi5CVwAA</XPD:REF>
<XPD:REF name="Views[1]">2xPyzpF+3E6UO1alRF6a0AAA</XPD:REF>
<XPD:REF name="Views[2]">WWkWCGUv/USoPAKCmtfIgAAA</XPD:REF>
<XPD:REF name="Views[3]">brq7HO5aIU2AcPtScFgXfwAA</XPD:REF>
<XPD:ATTR name="#Associations" type="integer">1</XPD:ATTR>
<XPD:REF name="Associations[0]">vSLYq6deEUuN7X1uOyqzowAA</XPD:REF>
<XPD:ATTR name="#Attributes" type="integer">3</XPD:ATTR>
<XPD:OBJ name="Attributes[0]" type="UMLAttribute" guid="cwsn0d3poUmyUN1V+NKnBgAA">
<XPD:ATTR name="Name" type="string">int mLocation;</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">int mLocation;</XPD:ATTR>
<XPD:REF name="Owner">XpqyRLzK50y91lNjpszliQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[1]" type="UMLAttribute" guid="Oe+4um2J8EuQbnAVla1LvQAA">
<XPD:ATTR name="Name" type="string">GpuProgramType mSourceProgType</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GpuProgramType mSourceProgType</XPD:ATTR>
<XPD:REF name="Owner">XpqyRLzK50y91lNjpszliQAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[2]" type="UMLAttribute" guid="U57f9xDQukS954Rc8xMdpgAA">
<XPD:ATTR name="Name" type="string">const GpuConstantDefinition* mConstantDef</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">const GpuConstantDefinition* mConstantDef</XPD:ATTR>
<XPD:REF name="Owner">XpqyRLzK50y91lNjpszliQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[42]" type="UMLAssociation" guid="R14TmsmkUUiFBJJbi9e5aAAA">
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">WYOi7YGxDUOvg4Gt5wlrUwAA</XPD:REF>
<XPD:REF name="Views[1]">2uAH1mYpqUeHaCwwAybYxAAA</XPD:REF>
<XPD:REF name="Views[2]">6lyhBOH/R0KQAoTTHkOECgAA</XPD:REF>
<XPD:REF name="Views[3]">Csr5ctF29k6yYh9yXhhagQAA</XPD:REF>
<XPD:ATTR name="#Connections" type="integer">2</XPD:ATTR>
<XPD:OBJ name="Connections[0]" type="UMLAssociationEnd" guid="P/mR4golxE+MMWTyDSbcpwAA">
<XPD:ATTR name="IsNavigable" type="boolean">False</XPD:ATTR>
<XPD:REF name="Association">R14TmsmkUUiFBJJbi9e5aAAA</XPD:REF>
<XPD:REF name="Participant">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">5v5dVGMewUmunRWFvmt0BQAA</XPD:REF>
<XPD:REF name="Views[1]">uaqHeQt5YEu+w3shtY0PSgAA</XPD:REF>
<XPD:REF name="Views[2]">kMFL+TTt/Ey5N2VUdTukDwAA</XPD:REF>
<XPD:REF name="Views[3]">rRuslOvtKE2fCzJ7iAFCmAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Connections[1]" type="UMLAssociationEnd" guid="vSLYq6deEUuN7X1uOyqzowAA">
<XPD:REF name="Association">R14TmsmkUUiFBJJbi9e5aAAA</XPD:REF>
<XPD:REF name="Participant">XpqyRLzK50y91lNjpszliQAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">2bV0K9IELkyg539ZNaqkRQAA</XPD:REF>
<XPD:REF name="Views[1]">dKdWPYa0BUGtsXaLwbQPXAAA</XPD:REF>
<XPD:REF name="Views[2]">K4jjCvSdYEGsCUrH6tIt5wAA</XPD:REF>
<XPD:REF name="Views[3]">uAhPcVMi6E6+3qdux7NZpAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[43]" type="UMLClass" guid="Zw0QZHYJxUK/vmfi3Ax5/wAA">
<XPD:ATTR name="Name" type="string">GLSLLinkProgram</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLSLLinkProgram</XPD:ATTR>
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">JYKZc2CowEqxBnm4h+LDCgAA</XPD:REF>
<XPD:REF name="Views[1]">F/nAUSNIdUKBGl0YH3dOeAAA</XPD:REF>
<XPD:REF name="Views[2]">SPPxWpSP10GOy9t6z0hwiAAA</XPD:REF>
<XPD:REF name="Views[3]">fZSMt0YAn0CDoDwUamyvdAAA</XPD:REF>
<XPD:ATTR name="#Generalizations" type="integer">1</XPD:ATTR>
<XPD:REF name="Generalizations[0]">GTFyyY1kAkuBUcTiYLW7PgAA</XPD:REF>
<XPD:ATTR name="#Operations" type="integer">12</XPD:ATTR>
<XPD:OBJ name="Operations[0]" type="UMLOperation" guid="PMI7zjdSHk2FNT4TEeRFOQAA">
<XPD:ATTR name="Name" type="string">void buildGLUniformReferences</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void buildGLUniformReferences</XPD:ATTR>
<XPD:REF name="Owner">Zw0QZHYJxUK/vmfi3Ax5/wAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="wdhV8uNIhkOJP39RWIyu5AAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">PMI7zjdSHk2FNT4TEeRFOQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[1]" type="UMLOperation" guid="5pguoHwZDEeiWVmQKskHyAAA">
<XPD:ATTR name="Name" type="string">void extractAttributes</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void extractAttributes</XPD:ATTR>
<XPD:REF name="Owner">Zw0QZHYJxUK/vmfi3Ax5/wAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="+Q2W1l5ngkeBntGW/vL1twAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">5pguoHwZDEeiWVmQKskHyAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[2]" type="UMLOperation" guid="bQ9uWq38Tka6wG4yLs+T6AAA">
<XPD:ATTR name="Name" type="string">String getCombinedName</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">String getCombinedName</XPD:ATTR>
<XPD:REF name="Owner">Zw0QZHYJxUK/vmfi3Ax5/wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Operations[3]" type="UMLOperation" guid="T9Rcrcsa10Wuo3fgLAfjJgAA">
<XPD:ATTR name="Name" type="string">void compileAndLink</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void compileAndLink</XPD:ATTR>
<XPD:REF name="Owner">Zw0QZHYJxUK/vmfi3Ax5/wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Operations[4]" type="UMLOperation" guid="XhzSZejAoE+XZOc4sW8N/wAA">
<XPD:ATTR name="Name" type="string">void getMicrocodeFromCache</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void getMicrocodeFromCache</XPD:ATTR>
<XPD:REF name="Owner">Zw0QZHYJxUK/vmfi3Ax5/wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Operations[5]" type="UMLOperation" guid="ir7SnJKis025MiRrYAD7IQAA">
<XPD:ATTR name="Name" type="string">void activate</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void activate</XPD:ATTR>
<XPD:REF name="Owner">Zw0QZHYJxUK/vmfi3Ax5/wAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="8FtALsL1VUmclQXrENTbfAAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">ir7SnJKis025MiRrYAD7IQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[6]" type="UMLOperation" guid="9xfqfHXMo0ugjxfl83qBPAAA">
<XPD:ATTR name="Name" type="string">bool isAttributeValid</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">bool isAttributeValid</XPD:ATTR>
<XPD:REF name="Owner">Zw0QZHYJxUK/vmfi3Ax5/wAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">2</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="DJZJBaVbQ0e+IYnffCthRgAA">
<XPD:ATTR name="Name" type="string">VertexElementSemantic semantic</XPD:ATTR>
<XPD:REF name="BehavioralFeature">9xfqfHXMo0ugjxfl83qBPAAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="C22e2ixl0EujBnvGNOKzZAAA">
<XPD:ATTR name="Name" type="string">uint index</XPD:ATTR>
<XPD:REF name="BehavioralFeature">9xfqfHXMo0ugjxfl83qBPAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[7]" type="UMLOperation" guid="Gprj9b7fYEeewadhgoR0fwAA">
<XPD:ATTR name="Name" type="string">void updateUniforms</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void updateUniforms</XPD:ATTR>
<XPD:REF name="Owner">Zw0QZHYJxUK/vmfi3Ax5/wAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">3</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="LWvMhe/P20eqVZo2surG3QAA">
<XPD:ATTR name="Name" type="string">GpuProgramParametersSharedPtr params</XPD:ATTR>
<XPD:REF name="BehavioralFeature">Gprj9b7fYEeewadhgoR0fwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="rdbJcjp530yXKJCW45/knwAA">
<XPD:ATTR name="Name" type="string">uint16 mask</XPD:ATTR>
<XPD:REF name="BehavioralFeature">Gprj9b7fYEeewadhgoR0fwAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[2]" type="UMLParameter" guid="UPg8sknFukuSjIl98f477AAA">
<XPD:ATTR name="Name" type="string">GpuProgramType fromProgType</XPD:ATTR>
<XPD:REF name="BehavioralFeature">Gprj9b7fYEeewadhgoR0fwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[8]" type="UMLOperation" guid="mHv26A/s9Ui6YDxUXKTk/QAA">
<XPD:ATTR name="Name" type="string">void updateUniformBlocks</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void updateUniformBlocks</XPD:ATTR>
<XPD:REF name="Owner">Zw0QZHYJxUK/vmfi3Ax5/wAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">3</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="xnCSY+xHR0W4k1xal+1SiAAA">
<XPD:ATTR name="Name" type="string">GpuProgramParametersSharedPtr params</XPD:ATTR>
<XPD:REF name="BehavioralFeature">mHv26A/s9Ui6YDxUXKTk/QAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[1]" type="UMLParameter" guid="iKMn2fLV9E2masTpPMnlqgAA">
<XPD:ATTR name="Name" type="string">uint16 mask</XPD:ATTR>
<XPD:REF name="BehavioralFeature">mHv26A/s9Ui6YDxUXKTk/QAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Parameters[2]" type="UMLParameter" guid="0xNqUO4Jw0mqoMUYkdSVugAA">
<XPD:ATTR name="Name" type="string">GpuProgramType fromProgType</XPD:ATTR>
<XPD:REF name="BehavioralFeature">mHv26A/s9Ui6YDxUXKTk/QAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[9]" type="UMLOperation" guid="wbytG234hE+2vKy2GBJbtQAA">
<XPD:ATTR name="Name" type="string">void updatePassIterationUniforms</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">void updatePassIterationUniforms</XPD:ATTR>
<XPD:REF name="Owner">Zw0QZHYJxUK/vmfi3Ax5/wAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="PCu7dc93Ck6m+4S9cawMawAA">
<XPD:ATTR name="Name" type="string">GpuProgramParametersSharedPtr params</XPD:ATTR>
<XPD:REF name="BehavioralFeature">wbytG234hE+2vKy2GBJbtQAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[10]" type="UMLOperation" guid="vCYT0ckZokaZXNz+mm353AAA">
<XPD:ATTR name="Name" type="string">GLhandleARB getGLHandle</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLhandleARB getGLHandle</XPD:ATTR>
<XPD:REF name="Owner">Zw0QZHYJxUK/vmfi3Ax5/wAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="SseOJLVcRkGJ1aAHeEzPQAAA">
<XPD:ATTR name="Name" type="string">void</XPD:ATTR>
<XPD:REF name="BehavioralFeature">vCYT0ckZokaZXNz+mm353AAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="Operations[11]" type="UMLOperation" guid="NlRQvMdrfEmHfQ6cScV4kwAA">
<XPD:ATTR name="Name" type="string">bool isUsingShader</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">bool isUsingShader</XPD:ATTR>
<XPD:REF name="Owner">Zw0QZHYJxUK/vmfi3Ax5/wAA</XPD:REF>
<XPD:ATTR name="#Parameters" type="integer">1</XPD:ATTR>
<XPD:OBJ name="Parameters[0]" type="UMLParameter" guid="vTPL96Rcv0ChVXO8amfSKgAA">
<XPD:ATTR name="Name" type="string">GLSLShaderCommon* shader</XPD:ATTR>
<XPD:REF name="BehavioralFeature">NlRQvMdrfEmHfQ6cScV4kwAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:ATTR name="#Attributes" type="integer">5</XPD:ATTR>
<XPD:OBJ name="Attributes[0]" type="UMLAttribute" guid="Ssd9JXGfU0SPvc+jyUuLGQAA">
<XPD:ATTR name="Name" type="string">GLSLProgram* mGeometryProgram;</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLSLProgram* mGeometryProgram;</XPD:ATTR>
<XPD:REF name="Owner">Zw0QZHYJxUK/vmfi3Ax5/wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[1]" type="UMLAttribute" guid="7JL05yDC7Ue+JH75TgkYJgAA">
<XPD:ATTR name="Name" type="string">GLSLProgram* mFragmentProgram;</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLSLProgram* mFragmentProgram;</XPD:ATTR>
<XPD:REF name="Owner">Zw0QZHYJxUK/vmfi3Ax5/wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[2]" type="UMLAttribute" guid="q8KEaR935UyIfZKTeehJBgAA">
<XPD:ATTR name="Name" type="string">GLUniformCache *mUniformCache;</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">GLUniformCache *mUniformCache;</XPD:ATTR>
<XPD:REF name="Owner">Zw0QZHYJxUK/vmfi3Ax5/wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[3]" type="UMLAttribute" guid="l9rhRmQKUUqHaqqmMRNBtgAA">
<XPD:ATTR name="Name" type="string">typedef set&lt;GLuint&gt;</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">typedef set&lt;GLuint&gt;</XPD:ATTR>
<XPD:ATTR name="TypeExpression" type="string">:type AttributeSet</XPD:ATTR>
<XPD:REF name="Owner">Zw0QZHYJxUK/vmfi3Ax5/wAA</XPD:REF>
</XPD:OBJ>
<XPD:OBJ name="Attributes[4]" type="UMLAttribute" guid="nbO5jBFWLU6VmTA2Z2JbpgAA">
<XPD:ATTR name="Name" type="string">AttributeSet mValidAttributes</XPD:ATTR>
<XPD:ATTR name="InnerName" type="string">AttributeSet mValidAttributes</XPD:ATTR>
<XPD:REF name="Owner">Zw0QZHYJxUK/vmfi3Ax5/wAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
<XPD:OBJ name="OwnedElements[44]" type="UMLGeneralization" guid="GTFyyY1kAkuBUcTiYLW7PgAA">
<XPD:REF name="Namespace">QqMZs/qW7UODi/UtOzuvSAAA</XPD:REF>
<XPD:REF name="Child">Zw0QZHYJxUK/vmfi3Ax5/wAA</XPD:REF>
<XPD:REF name="Parent">/1nTvouyyUa2zsFJvMpO1AAA</XPD:REF>
<XPD:ATTR name="#Views" type="integer">4</XPD:ATTR>
<XPD:REF name="Views[0]">tb6pFy1KXEiNwJVYmjlv1gAA</XPD:REF>
<XPD:REF name="Views[1]">wpYExNSxSUuJBRyopvLE/QAA</XPD:REF>
<XPD:REF name="Views[2]">BYOfOL1zwkeKMSd47N0k2QAA</XPD:REF>
<XPD:REF name="Views[3]">P0NM+dPmc02mc6eNuGmccAAA</XPD:REF>
</XPD:OBJ>
</XPD:OBJ>
</XPD:OBJ>
</XPD:BODY>
</XPD:PROJECT>
