/// <summary> /// Sets view clear flags for multiple render targets. /// </summary> /// <param name="id">The index of the view.</param> /// <param name="targets">The target surfaces that should be cleared.</param> /// <param name="depth">The value to fill the depth buffer.</param> /// <param name="stencil">The value to fill the stencil buffer.</param> /// <param name="rt0">The color palette index for render target 0.</param> /// <param name="rt1">The color palette index for render target 1.</param> /// <param name="rt2">The color palette index for render target 2.</param> /// <param name="rt3">The color palette index for render target 3.</param> /// <param name="rt4">The color palette index for render target 4.</param> /// <param name="rt5">The color palette index for render target 5.</param> /// <param name="rt6">The color palette index for render target 6.</param> /// <param name="rt7">The color palette index for render target 7.</param> public static void SetViewClear( byte id, ClearTargets targets, float depth, byte stencil, byte rt0 = byte.MaxValue, byte rt1 = byte.MaxValue, byte rt2 = byte.MaxValue, byte rt3 = byte.MaxValue, byte rt4 = byte.MaxValue, byte rt5 = byte.MaxValue, byte rt6 = byte.MaxValue, byte rt7 = byte.MaxValue ) { NativeMethods.bgfx_set_view_clear_mrt( id, targets, depth, stencil, rt0, rt1, rt2, rt3, rt4, rt5, rt6, rt7 ); }
public static extern void bgfx_set_view_clear_mrt(ushort id, ClearTargets flags, float depth, byte stencil, byte rt0, byte rt1, byte rt2, byte rt3, byte rt4, byte rt5, byte rt6, byte rt7);
public static extern void bgfx_set_view_clear(ushort id, ClearTargets flags, int rgba, float depth, byte stencil);
public static extern void bgfx_set_view_clear_mrt(byte id, ClearTargets flags, float depth, byte stencil, byte rt0, byte rt1, byte rt2, byte rt3, byte rt4, byte rt5, byte rt6, byte rt7);
public static extern void bgfx_set_view_clear(byte id, ClearTargets flags, int rgba, float depth, byte stencil);
/// <summary> /// Sets view clear flags. /// </summary> /// <param name="id">The index of the view.</param> /// <param name="targets">The target surfaces that should be cleared.</param> /// <param name="colorRgba">The clear color.</param> /// <param name="depth">The value to fill the depth buffer.</param> /// <param name="stencil">The value to fill the stencil buffer.</param> public static void SetViewClear(byte id, ClearTargets targets, int colorRgba, float depth = 1.0f, byte stencil = 0) { NativeMethods.bgfx_set_view_clear(id, targets, colorRgba, depth, stencil); }
public void Clear(int viewport, ClearTargets clearTargets, Color color, float depth = 1.0f, byte stencil = 0) { Bgfx.SetViewClear((byte)viewport, clearTargets, (int)color.GetRGBA(), depth, stencil); Bgfx.Touch((byte)viewport); }
public void SetViewport(Viewport viewport, Matrix4F viewMatrix, Matrix4F projectionMatrix, FrameBufferTypes clearBuffers, ColorValue clearBackgroundColor, float clearDepthValue = 1, byte clearStencilValue = 0) { currentViewport = viewport; currentViewNumber++; //init bgfx view Bgfx.ResetView(CurrentViewNumber); bool skip = false; var renderWindow = currentViewport.parent as RenderWindow; if (renderWindow != null && renderWindow.ThisIsApplicationWindow) { skip = true; } if (!skip) { Bgfx.SetViewFrameBuffer(CurrentViewNumber, currentViewport.parent.FrameBuffer); } Bgfx.SetViewMode(CurrentViewNumber, ViewMode.Sequential); Bgfx.SetViewRect(CurrentViewNumber, 0, 0, CurrentViewport.SizeInPixels.X, CurrentViewport.SizeInPixels.Y); unsafe { Bgfx.SetViewTransform(CurrentViewNumber, (float *)&viewMatrix, (float *)&projectionMatrix); } ////!!!! //if( clearBuffers == 0 ) //{ // var target = viewport.Parent as RenderTexture; // if( target != null ) // { // if( !target.Creator._renderTargetCleared ) // { // clearBuffers = FrameBufferTypes.Color; // //clearBuffers = FrameBufferTypes.All; // } // } //} //clear if (clearBuffers != 0) { ClearTargets targets = 0; if ((clearBuffers & FrameBufferTypes.Color) != 0) { targets |= ClearTargets.Color; } if ((clearBuffers & FrameBufferTypes.Depth) != 0) { targets |= ClearTargets.Depth; } if ((clearBuffers & FrameBufferTypes.Stencil) != 0) { targets |= ClearTargets.Stencil; } Bgfx.SetViewClear(CurrentViewNumber, targets, ToRGBA(clearBackgroundColor), clearDepthValue, clearStencilValue); Bgfx.Touch(CurrentViewNumber); } ////!!!! //if( clearBuffers != 0 )//if( clearBuffers == FrameBufferTypes.All ) //{ // var target = viewport.Parent as RenderTexture; // if( target != null ) // target.Creator._renderTargetCleared = true; //} //u_viewportSettings unsafe { var data = new ViewportSettingsUniform(); data.size = viewport.SizeInPixels.ToVector2F(); data.sizeInv = new Vector2F(1, 1) / data.size; int vec4Count = sizeof(ViewportSettingsUniform) / sizeof(Vector4F); if (vec4Count != 1) { Log.Fatal("Component_RenderingPipeline: Render: vec4Count != 1."); } SetUniform("u_viewportSettings", ParameterType.Vector4, vec4Count, &data); } }
/// <summary> /// Sets view clear flags for multiple render targets. /// </summary> /// <param name="id">The index of the view.</param> /// <param name="targets">The target surfaces that should be cleared.</param> /// <param name="depth">The value to fill the depth buffer.</param> /// <param name="stencil">The value to fill the stencil buffer.</param> /// <param name="rt0">The color palette index for render target 0.</param> /// <param name="rt1">The color palette index for render target 1.</param> /// <param name="rt2">The color palette index for render target 2.</param> /// <param name="rt3">The color palette index for render target 3.</param> /// <param name="rt4">The color palette index for render target 4.</param> /// <param name="rt5">The color palette index for render target 5.</param> /// <param name="rt6">The color palette index for render target 6.</param> /// <param name="rt7">The color palette index for render target 7.</param> public static void SetViewClear( byte id, ClearTargets targets, float depth, byte stencil, byte rt0 = byte.MaxValue, byte rt1 = byte.MaxValue, byte rt2 = byte.MaxValue, byte rt3 = byte.MaxValue, byte rt4 = byte.MaxValue, byte rt5 = byte.MaxValue, byte rt6 = byte.MaxValue, byte rt7 = byte.MaxValue ) { NativeMethods.bgfx_set_view_clear_mrt( id, targets, depth, stencil, rt0, rt1, rt2, rt3, rt4, rt5, rt6, rt7 ); }
/// <summary> /// Sets view clear flags. /// </summary> /// <param name="id">The index of the view.</param> /// <param name="targets">The target surfaces that should be cleared.</param> /// <param name="colorRgba">The clear color.</param> /// <param name="depth">The value to fill the depth buffer.</param> /// <param name="stencil">The value to fill the stencil buffer.</param> public static void SetViewClear(byte id, ClearTargets targets, int colorRgba, float depth = 1.0f, byte stencil = 0) { NativeMethods.bgfx_set_view_clear(id, targets, colorRgba, depth, stencil); }