Garry's Mod Wiki

Revision Difference

render.EnableClipping#512935

<function name="EnableClipping" parent="render" type="libraryfunc">⤶ <description>⤶ Sets the status of the clip renderer, returning previous state.⤶ ⤶ <warning>To prevent unintended rendering behavior of other mods/the game, you must reset the clipping state to its previous value.</warning>⤶ ⤶ <bug issue="3105">Reloading the map does not reset the previous value of this function.</bug>⤶ </description>⤶ <realm>Client</realm>⤶ <args>⤶ <arg name="state" type="boolean">New clipping state.</arg>⤶ </args>⤶ <rets>⤶ <ret name="" type="boolean">Previous clipping state.</ret>⤶ </rets>⤶ </function>⤶ ⤶ <example>⤶ <description>Properly using the function.</description>⤶ <code>⤶ -- Inside some rendering hook⤶ ⤶ local oldclip = render.EnableClipping( true )⤶ ⤶ -- Your code here⤶ ⤶ render.EnableClipping( oldclip )⤶ </code>⤶ ⤶ </example>⤶ ⤶ ⤶ <example>⤶ <description>Clips the lower half of your custom entity</description>⤶ <code>⤶ function ENT:Draw()⤶ local normal = self:GetUp() -- Everything "behind" this normal will be clipped⤶ local position = normal:Dot( self:GetPos() ) -- self:GetPos() is the origin of the clipping plane⤶ ⤶ local oldEC = render.EnableClipping( true )⤶ render.PushCustomClipPlane( normal, position )⤶ ⤶ self:DrawModel()⤶ ⤶ render.PopCustomClipPlane()⤶ render.EnableClipping( oldEC )⤶ end⤶ </code>⤶ ⤶ </example>