void InitializeDynamicStates(MgPipelineDynamicStateCreateInfo dynamicState) { DynamicStates = 0U; if (dynamicState != null && dynamicState.DynamicStates != null) { foreach (var state in dynamicState.DynamicStates) { switch (state) { case MgDynamicState.BLEND_CONSTANTS: DynamicStates |= AmtGraphicsPipelineDynamicStateFlagBits.BLEND_CONSTANTS; break; case MgDynamicState.VIEWPORT: DynamicStates |= AmtGraphicsPipelineDynamicStateFlagBits.VIEWPORT; break; case MgDynamicState.SCISSOR: DynamicStates |= AmtGraphicsPipelineDynamicStateFlagBits.SCISSOR; break; case MgDynamicState.STENCIL_REFERENCE: DynamicStates |= AmtGraphicsPipelineDynamicStateFlagBits.STENCIL_REFERENCE; break; case MgDynamicState.STENCIL_WRITE_MASK: DynamicStates |= AmtGraphicsPipelineDynamicStateFlagBits.STENCIL_WRITE_MASK; break; case MgDynamicState.STENCIL_COMPARE_MASK: DynamicStates |= AmtGraphicsPipelineDynamicStateFlagBits.STENCIL_COMPARE_MASK; break; // NOT NEEDED case MgDynamicState.LINE_WIDTH: DynamicStates |= AmtGraphicsPipelineDynamicStateFlagBits.LINE_WIDTH; break; case MgDynamicState.DEPTH_BIAS: DynamicStates |= AmtGraphicsPipelineDynamicStateFlagBits.DEPTH_BIAS; break; // NOT NEEDED case MgDynamicState.DEPTH_BOUNDS: DynamicStates |= AmtGraphicsPipelineDynamicStateFlagBits.DEPTH_BOUNDS; break; } } } }
void PopulateDynamicStates(MgPipelineDynamicStateCreateInfo dynamicStates) { GLGraphicsPipelineDynamicStateFlagBits flags = 0; if (dynamicStates != null) { foreach (var state in dynamicStates.DynamicStates) { switch (state) { case MgDynamicState.VIEWPORT: flags |= GLGraphicsPipelineDynamicStateFlagBits.VIEWPORT; break; case MgDynamicState.SCISSOR: flags |= GLGraphicsPipelineDynamicStateFlagBits.SCISSOR; break; case MgDynamicState.BLEND_CONSTANTS: flags |= GLGraphicsPipelineDynamicStateFlagBits.BLEND_CONSTANTS; break; case MgDynamicState.STENCIL_COMPARE_MASK: flags |= GLGraphicsPipelineDynamicStateFlagBits.STENCIL_COMPARE_MASK; break; case MgDynamicState.STENCIL_REFERENCE: flags |= GLGraphicsPipelineDynamicStateFlagBits.STENCIL_REFERENCE; break; case MgDynamicState.STENCIL_WRITE_MASK: flags |= GLGraphicsPipelineDynamicStateFlagBits.STENCIL_WRITE_MASK; break; case MgDynamicState.LINE_WIDTH: flags |= GLGraphicsPipelineDynamicStateFlagBits.LINE_WIDTH; break; case MgDynamicState.DEPTH_BIAS: flags |= GLGraphicsPipelineDynamicStateFlagBits.DEPTH_BIAS; break; case MgDynamicState.DEPTH_BOUNDS: flags |= GLGraphicsPipelineDynamicStateFlagBits.DEPTH_BOUNDS; break; } } DynamicsStates = flags; } }