Blur fix solution.
-
@Christoph-Hart i found solution for fix a path aprox coordinates if we use a
g.gaussianBlur
andg.boxBlur
if we apply a mask. this mask, attached toSettings.getZoomLevel()
this means, that you need multiply object coodrinates (all: x, y, w, h) to this value:Settings.getZoomLevel()
for get ideal mask for blur, but in Editor blur coordinates anyway will be aprox.Message for other members, who watching this post:
If you, like me, want to make a modern interface, and you can't wait fix, then this solution is for you! In the end, you need to understand that there are a lot of problems behind the scenes, and there are things that take priority over this.
Screenshot:
Script with fix:
// Init. namespace Init { // Initialize UI. var W = 800; var H = 545; Content.makeFrontInterface(W, H); // Add panel. const pnlPanel = Content.addPanel("pnlPanel", 0, 0); pnlPanel.set("width", 100 + 10); pnlPanel.set("height", 50 + 10); pnlPanel.set("x", W / 2 - pnlPanel.get("width") / 2); pnlPanel.set("y", H / 2 - pnlPanel.get("height") / 2); Console.print(Settings.getZoomLevel()); } // Draw namespace Draw { Init.pnlPanel.setPaintRoutine(function(g) { // Declare assistant vars. var a = this.getLocalBounds(5); var CSize = 10; var ShadowPath = Content.createPath(); ShadowPath.addRoundedRectangle(a, CSize); // Draw blur. g.beginLayer(true); g.gaussianBlur(5); g.endLayer(); // Apply blur mask. g.beginLayer(true); g.applyMask(ShadowPath, [a[0] * Settings.getZoomLevel(), a[1] * Settings.getZoomLevel(), a[2] * Settings.getZoomLevel(), a[3] * Settings.getZoomLevel()], false); // Multiply all coordinates to zoom level. g.endLayer(); // Draw gb. g.setColour(Colours.withAlpha(0xFFFFFF, 0.10)); g.fillRoundedRectangle(a, CSize / 1.2); }); }
Snippet:
HiseSnippet 1225.3ocsV08SiaDDeMfQjndU8j5e.q3Iy0TSLG4BUsmZfDnDUfKhbeTcnSm1XuwdEa10xdMPtJdnO125ep8g9d6rqcHNkDnJpWDhj46e6LyNy1KQ5SSSkIHqpudbLEY8E18GKTQsiHLApaGj0WZeJIUQSv4rNXbLIMkFfrrV8mzLrprFx74O+wCHbhvmNkEB8VIymdBaDSMkauV+LiyOhDPeMaTIs2sUWeonsjKy.7rpccTLw+RRH8LhVsUrQGSRiPVOylFLrYceORvN0oMaBDuvqwP5fc2k50bXyAC9NxN6tGYOOj05GFvTxj9JhhlhrV6.Yv39QxqE4A3srT1.NUS3g5CQNm8QRdf9Hp4hZGw3A8ljnRQfW5MMssZdZ6qsOkEvti+zz2WYDfmZQ4Dn0JyBuUmAddkgW8RvaNPxpDjVKGRO0tueBKVMUhFO11oI9y.hbsPq7WqYu813tBlxsp.x3oP1mZnq9qUqTHhQ3rOQwuoqa0JWQRvuC+R7d0q+84TGCTM1sAP0VJTTgxcD4R5QI.QWfNYH3Qm2UCe7VfJFeteP.NlHnbvePwOUgiE7dZFfql3DRPfgkylSDtYMbc3OsalvxMkpb17ZVfJBj5UuN9af+eeMhnrvHEnRiEowMfv2g2FuC9auCMtgS89VZY22rwfYGOWyJB4c1YROoRN0MNgITN8oJESDlp098R4nSnWAG1sLpda0pPZpSB45REECITTLEqxnnGz1oNWlAti5LLS3qXRgS3VUq.ZCwUmx6P84jDJFZ.XoJhPggRWJj+MkPBj2UQLCVNQ5S3GHyDAoNMznwnQ695NfWBotIb5GQBjW2inhJUz7SnPSsloiwzoJoqmmq8JM3bpOffPN0gTK2wFcK.JbJwC3YIZrE5NfFxDmPFSSbTIY4JF5FRxfyAQb.nWAHCcohfbEK4s8ii4iMtCOhjd4C4ShVUXp2kNSAcM7EjKp+A7yvKnZUCStv6QjuyiH+4Of7OTCOjvSALhgSyoYbESefHbN1WJSBXB8LDrRh+DXDlqsxcgYCStMbPtBPiS9TWm7uRculoh1mGGQbpeyQlOvsMW3xRQFZHL.egkPnM2y0znWAWsxsvOtcRqHVJNSpnuR3rkt+E5tw+aQCGNWY51pDImqOFyQrdSRxCYniHaz.ZRMnYmCE5IJBSKmcDr8hGAWdCgedWdIEkB8swWESEKZuAp3pA7q2zsCQQzysK3A5ESSTLMDr5PuB1ZlOEuhcGZ5kJYLr.rsbTrTn8f05JizmTLiu6HXMIhAyy2v17aOzMkWCOtLgYJ1TF+dq74S2wYieqEZwgxLqwDpp1SF8TJX+QVqoAqmn0jfstnH52Er0+gI.596tfslxfLNQM6pT8CNJD.E2Y1ho2uHRYpwkePx+a6W+uBwmZ2io7ilOFWYNXDZA9bfwhWk7D6CGNDteNEfqYezu744IHn70NgmRTILnev9rrQ8ggI9TH5BnIQe4xZE80fb55ZZcFnOLfxP72vmBgdZZqBgdSDhFQ7SjezO+Js9cOaX3.XRXdiXE3wp.M1CYtlWNOOBdF1G88m0U2yvcVVCe9xZ3tKqgMVVCewxZXyk0v8dbC0uRd+LkbT90FD5zdGZlQZYcnf.cfltUz+.wZHi4.