private void Rectangle3D(Rectangle3DCommand command, FlatBufferBuilder builder, List <Offset <RenderMessage> > messages) { //FlatBuffer doesn't like nesting "create" commands within each other so declare them early instead (vectors are immune for some reason) var color = command.Color.ToFlatBuffer(builder); RenderMessage.StartRenderMessage(builder); RenderMessage.AddRenderType(builder, command.Centered ? RenderType.DrawCenteredRect3D : RenderType.DrawRect3D); RenderMessage.AddColor(builder, color); RenderMessage.AddStart(builder, command.Position.ToFlatBuffer(builder)); RenderMessage.AddScaleX(builder, command.Width); RenderMessage.AddScaleY(builder, command.Height); RenderMessage.AddIsFilled(builder, command.Filled); messages.Add(RenderMessage.EndRenderMessage(builder)); }
private void DrawRect3D(Color color, Vector3 position, int width, int height, bool filled, bool centered) { var colorOffset = color.ToOffsetColor(Builder); RenderMessage.StartRenderMessage(Builder); RenderMessage.AddRenderType(Builder, centered ? RenderType.DrawCenteredRect3D : RenderType.DrawRect3D); RenderMessage.AddColor(Builder, colorOffset); RenderMessage.AddStart(Builder, position.ToOffsetVector(Builder)); RenderMessage.AddScaleX(Builder, width); RenderMessage.AddScaleY(Builder, height); RenderMessage.AddIsFilled(Builder, filled); var finalOffset = RenderMessage.EndRenderMessage(Builder); _renderMessageOffsets.Add(finalOffset); }
/// <summary> /// Draws a 2D rectangle in screen space. /// </summary> /// <param name="color">The color of the rectangle.</param> /// <param name="upperLeft">The upper left corner of the rectangle.</param> /// <param name="width">The width in pixels.</param> /// <param name="height">The height in pixels</param> /// <param name="filled">Flag indicating whether the rectangle should be filled in</param> public void DrawRectangle2D(Color color, Vector2 upperLeft, int width, int height, bool filled) { var colorOffset = color.ToOffsetColor(Builder); RenderMessage.StartRenderMessage(Builder); RenderMessage.AddRenderType(Builder, RenderType.DrawRect2D); RenderMessage.AddColor(Builder, colorOffset); RenderMessage.AddStart(Builder, upperLeft.ToOffsetVector(Builder)); RenderMessage.AddScaleX(Builder, width); RenderMessage.AddScaleY(Builder, height); RenderMessage.AddIsFilled(Builder, filled); var finalOffset = RenderMessage.EndRenderMessage(Builder); _renderMessageOffsets.Add(finalOffset); }