clutter since El Capitan is installed

Just to inform you:

We see a 32bit application, compiled with Xojo 2015r2.2 on a Retina MacBook Pro (mid 2012) which now shows black clutter when dragging and resizing a canvas over a vibrancy (transparent) area of the application.

There’s no support for vibrancy in the Xojo framework. You might want to look at how you accomplished this to figure out where the problem is.

I just notice that it worked flawlessly in Yosemite and now in El Capitan it shows this black clutter.
My only idea now is that I would have to sacrifice the vibrancy and see if this really would eliminate the clutter.

The clutter seems to appear more in the left pane area, where I drag a canvas over a transparent Einhugur TreeView, in order to show a dotted line.

The blue area of the main editing area has a partial transparent background and it seems that the clutter appears less there. It does not appear over controls in that area.

In the Window.Open handler, I enable vibrancy like this:

[code] // Add vibrancy
If app.OSXVersion >= 10 Then

#If TargetCocoa
  Dim win As NSWindowMBS = Self.NSWindowMBS
  // vibrancy
  Dim view1 As New NSVisualEffectViewMBS(0, 0, Self.Width, Self.Height)
  view1.autoresizesSubviews = True
  If App.OSXDarkmode Then
    view1.material = view1.NSVisualEffectMaterialDark
  End If
  view1.autoresizingMask = view1.NSViewWidthSizable + view1.NSViewHeightSizable
  win.contentView.addSubview(view1, -1, Nil)

End If // app.OSXVersion >= 10


EDIT: When I run the exact same application inside of a VMWare install, on OSX El Capitan (but 10.11 Beta 15A279b), then it shows NO clutter at all. It shows all the time when executed directly on my MacBook Pro, with the release version of El Cap.

I verified: If I avoid making use of vibrancy in OSX 10.11, then the clutter issue (see screenshot above) disappears.
This is a pity, I somehow started to like this view, which worked in Yosemite…

Very silly question as I haven’t a clue about vibrancy: you enable it for the WINDOW, but does that enable it for the controls? Especially considering that Xojo does not support vibrancy?

No, it does not.
Vibrancy is not the same like transparency, in that it adds some kind of distortion effect, similar to some glass used in bathroom windows. Some controls, like the Einhugur treeview, can be set to transparent background and like that make use of a vibrancy window background.

I’m seeing some weirdness in vibrancy too on El Capitan. Yosemite always looked fine. I’m using MacOSLib’s SetVisualEffectView.

This clutter thing looks like a lack of repaint. Maybe you should try a self.invalidate in Moved and see if the cumulative clutter goes away. Since apparently there should be repaint during the moving process, you may have to implement a “moving” detection in a timer to do that more often.

we’re totally satisfied with your answer

How fast is the running hardware ?
(i7 vs i3)

Apple has changed a lot of the graphics routines under the hood in El Capitan. Depending on your machine CoreGraphics might now use the Metal framework. How old is your Mac? Have you tried the app on different machines, preferably an older one that will not use Metal?
I wouldn’t be surprised if you encountered an El Capitan bug and your app in general is all fine. I have noticed a strange behavior under 10.11 too: In a project having a long string array declaration, the cursor has now a 2 characters offset. I need to place it more to the left in order to hit the right spot – characters typed show up two spaces to the right. This is only in El Capitan and only for one line, in Xojo 2015r2.4 where this line was ok under 10.10. El Capitan is very fresh. Would be the rule rather than the exception to find some glitches in it.

[quote=217805:@Emile Schwarz]How fast is the running hardware ?
(i7 vs i3)[/quote]
It was the best rMBP I could get in 2012: 2.7 GHz Intel Core i7 with 16 GB 1600 MHz DDR3 memory, NVIDIA GeForce GT 650M 1024 MB

Two things you can try.
#1 is to enable Core Animation Layers on the window, some of the vibrancy effects don’t work without it.
#2 Is to set the NSAppearance of the Window.

As Greg points out however that vibrancy doesn’t really play well with Xojo; even if you do set these, you can run into other issues related to Core Animation Layer and vibrancy. Xojo’s OpenGLView (which is being replaced with Metal) is broken with Core Animation Layers.

Once Xojo have completed their move to 64-Bit, I’m hoping they’ll spend some time working on improving Xojo for Core Animation Layers, as it appears that Apple is forcing the interface in this direction.

FYI: I had to replace the text labels on this window with Canvases as all the text had purple edges!

Assuming that’s a sarcastic response… When the revelation about how to introduce Vibrancy into Xojo apps was talked about last year, a few comments emerged from Xojo engineers that clearly said that it was a hack and that the underlying structure of a Xojo view was not entirely compatible with the technique. I remember because we considered using it for Feedback. As the first responder to @Oliver Osswald, I wanted it to be clear to all users reading the thread (new and old) that it was not something that comes with our product.

It sounds likes Apple is moving to make this a central part of the Mac UI look… before long apps that don’t use it will likely look dated…

Does Xojo plan to add support for it, as that is not something that we can do right ourselves, even with declares?

  • Karen

Arguably, before long apps that use it will look outdated. We probably have 2 years to get it working before it is replaced by something else. :slight_smile:

[quote=217780:@Oliver Osswald]I just notice that it worked flawlessly in Yosemite and now in El Capitan it shows this black clutter.
My only idea now is that I would have to sacrifice the vibrancy and see if this really would eliminate the clutter.[/quote]

My offhand guess is that your NSVisualEffectView isn’t an actual superview of the controls you want to appear vibrant and is instead just a sibling view.

I suspect you could get around this by setting the NSTextField’s textColor to NSColor’s labelColor.

Styles come and go. Some people love them, some others hate them. Sure, vibrancy will eventually fade out, then one day someone will find it cute and bring it back.

On the Windows side, the same kind of thing (Glass effect) appeared with Vista window bars, stayed with 7, then disappeared with 8, and is back in 10 for the Start menu but not the windows.

I use vibrancy (light and dark) in several apps and I must be lucky because I have no GUI glitches at all.

That said, I have issues using CIFilterLanczosScaleTransformMBS (scale Core filter).
This introduces strange artefacts when running El Capitan. Works fine in Yosemite.

I tried the same filter in Xcode and it works fine so it must be related to the MBS filter or Xojo.