private void DrawRootPane(BasePane pane) { Color color = Color.Black; if (SelectedPanes.Contains(pane)) { color = Color.Red; } CustomRectangle rect = pane.CreateRectangle(); //Draw a quad which is the backcolor but lighter GL.Begin(PrimitiveType.Quads); GL.Color3(BackgroundColor.Lighten(10)); GL.Vertex2(rect.LeftPoint, rect.TopPoint); GL.Vertex2(rect.RightPoint, rect.TopPoint); GL.Vertex2(rect.RightPoint, rect.BottomPoint); GL.Vertex2(rect.LeftPoint, rect.BottomPoint); GL.End(); //Draw outline of root pane GL.Begin(PrimitiveType.LineLoop); GL.PolygonOffset(0.5f, 2); GL.LineWidth(33); GL.Color3(color); GL.Vertex2(rect.LeftPoint, rect.TopPoint); GL.Vertex2(rect.RightPoint, rect.TopPoint); GL.Vertex2(rect.RightPoint, rect.BottomPoint); GL.Vertex2(rect.LeftPoint, rect.BottomPoint); GL.End(); }
public void DrawRectangle(CustomRectangle rect, Vector2[] texCoords, Color[] colors, bool useLines = true, byte alpha = 255) { for (int i = 0; i < colors.Length; i++) { uint setalpha = (uint)((colors[i].A * alpha) / 255); colors[i] = Color.FromArgb((int)setalpha, colors[i]); } if (useLines) { GL.Begin(PrimitiveType.LineLoop); GL.Color4(colors[0]); GL.Vertex2(rect.LeftPoint, rect.BottomPoint); GL.Vertex2(rect.RightPoint, rect.BottomPoint); GL.Vertex2(rect.RightPoint, rect.TopPoint); GL.Vertex2(rect.LeftPoint, rect.TopPoint); GL.End(); } else { GL.Begin(PrimitiveType.Quads); GL.Color4(colors[0]); GL.TexCoord2(texCoords[0]); GL.Vertex2(rect.LeftPoint, rect.BottomPoint); GL.Color4(colors[1]); GL.TexCoord2(texCoords[1]); GL.Vertex2(rect.RightPoint, rect.BottomPoint); GL.Color4(colors[2]); GL.TexCoord2(texCoords[2]); GL.Vertex2(rect.RightPoint, rect.TopPoint); GL.Color4(colors[3]); GL.TexCoord2(texCoords[3]); GL.Vertex2(rect.LeftPoint, rect.TopPoint); GL.End(); //Draw outline GL.Begin(PrimitiveType.LineLoop); GL.LineWidth(3); GL.Color4(colors[0]); GL.Vertex2(rect.LeftPoint, rect.BottomPoint); GL.Vertex2(rect.RightPoint, rect.BottomPoint); GL.Vertex2(rect.RightPoint, rect.TopPoint); GL.Vertex2(rect.LeftPoint, rect.TopPoint); GL.End(); } }
private void UpdateRectangle() { rectangle = CreateRectangle(); }