Completely changed the structure and switched to Eclipse Plugin.
[Mograsim.git] / net.mograsim.logic.ui / src / net / mograsim / logic / ui / LogicUIRenderer.java
index 5182a24..7858a70 100644 (file)
@@ -22,8 +22,16 @@ public class LogicUIRenderer
 
        public void render(GeneralGC gc, Rectangle visibleRegion)
        {
+               gc.setAntialias(SWT.ON);
+               gc.setClipping(visibleRegion);
                gc.setLineWidth(.5);
-               model.getWires().forEach(w -> w.render(gc));
+               model.getWires().forEach(w ->
+               {
+                       Rectangle bounds = w.getBounds();
+                       double lw = gc.getLineWidth();
+                       if (visibleRegion.intersects(bounds.x - lw, bounds.y - lw, bounds.width + lw + lw, bounds.height + lw + lw))
+                               w.render(gc);
+               });
                model.getComponents().forEach(c -> renderComponent(gc, c, visibleRegion));
        }
 
@@ -37,7 +45,7 @@ public class LogicUIRenderer
                        if (DRAW_PINS)
                        {
                                gc.setBackground(gc.getDevice().getSystemColor(SWT.COLOR_DARK_CYAN));
-                               for (Pin p : component.getPins())
+                               for (Pin p : component.getPins().values())
                                {
                                        Point pos = p.getPos();
                                        gc.fillOval(pos.x - 1, pos.y - 1, 2, 2);