Maybe this helps somebody....
If you build a App on BlitzMAX for MAc OsX BigSur and you are not listed as a registered Developer (99,oo$) your app will not start on the user's computer.
But there is a trick:
After downloading your app the user will find it in his DOWNLOAD folder.
Now hold down CRTL-Key and click on the app.
A dialog will appear.
Now hold down again the CRTL-Key and click at OPEN
Another dialog will appear
Now click at OPEN
This will open the app and change it's state from "unknown" to "secure".
This means that from now on the app can be started normal as any other app on the mac.
I only have 2 users with new MACs who report problems in starting one of my apps. One is a female teacher without much computer skills, one is a 85 year old man. I build an update of the app for them and it runs perfect on my new MAC.
I asked both to test this new version.
But now the female teacher still reports, that the app gives an error report. Something like (translated) "Upps ...this file not longer exists...". I'm a little helpless because my version runs perfect. Now I would like to hear a second opinion from somebody with more skills.
Can somebody of the community please make a short test with the app? You only have to download the app and follow the procedure in post #1. Then the app starts. Answer the licence question with "Cancel" and then wait 2-3 seconds until you can click on "Continue". That's all. Does the app crash now? Deeper tests are not necessary for the moment.
It needs to be a MAC from 2018 and later. Here is the download file (5MB):
http://www.midimaster.de/download/AurisOsxBigSur.zip
Why does the machine has to be from 2018 and later?
It has to be a "64bit-only"-MAC. because only users of this models report problems. Of course you can also test it on older version if you like.
Now a user with a 2020 MAC reports, that my way descriped in post #1 does not work on his computer.
My workaround was:
download the app
open in finder:"downloads"
hold CTRL then click the app once
hold CTRL again, then click open
Now on my MAC (2018) appears a menu where I have three options. One of them is "Open". When I select this the app is accepted forever.
The user reports that on his MAC (2020) in this last step he only has two options: "Cancel" and "Move-To-Bin".
Can somebody with a MAC younger than 2019 please verifiy and confirm this behavior? I cannot believe it!
#UPDATE#
Now I found a hack for enabling all software from all sources:
1. You open the app TERMINAL in your MAC
2. Then you enter:
sudo spctl --master-disable
3. Then you press ENTER
4. Then you enter your password (characters will not be repeated in the console)
5. Then you press ENTER
Now will have three entries in the security settings of your MAC
QuoteAlow apps downloaded from:
- App Store
- App Store and identified developers
- Anywhere
From now on you can switch between these three options depending on the software you want to install
Wow, that's pretty excessive to ask users to do that :o - Its like saying "Here is my app but you'll have to disable its security so anything can run"
It's pretty simple to open your none signed app :
Hold down the option key > right mouse click on the app > select Open from the context menu and then select Open again the popup window. The app will then be marked as OK to open on your Mac.
Do NOT advise your customers to unknowingly disable their Mac's security.
QuoteHold down the option key > right mouse click on the app > select Open from the context menu and then select Open again the popup window. The app will then be marked as OK to open on your Mac.
Tested on MAc 2020?
Quote
Do NOT advise your customers to unknowingly disable their Mac's security.
Quite right.
Quote
Tested on MAc 2020?
Something to be suggested, if it works or not is irrelevant because disabling your customer's security is a bad idea and could get you in trouble if the user gets hacked.
Pay and make an official build.
As above - Very loud - NOOOOOOOOO
Quote from: Midimaster on July 04, 2021, 09:07:58
Tested on MAc 2020?
Tested on : Mac mini 2012 / Mac mini 2018/2020 ( intel ) and Mac mini 2020 ( M1 ) - It doesn't matter the model but the OS version since Apple increased the system security.
Doing the "Hold down the option key > right mouse click on the app > select Open from the context menu and then select Open again in the popup window." is the correct method a user has so should they want to open that app they can at their own risk. Sometimes you may need to use the "xattr -cr /path/to/application.app" command if an app reports it's damaged but you know it isn't.
Regardless, never ever ask a user to disable system security and put THEIR system at risk. Instead provide an instructions text file detailing what they can do to run YOUR app and why they need to do that and then it's THEIR choice if they want to go ahead.
At the Hotline I first suggested exact what Qube writes:
Quote...Doing the "Hold down the option key > right mouse click on the app > select Open from the context menu and then select Open again in the popup window." is the correct method a user has...
But the users reported, that this does not work. So I did some resarch on Apple's support pages. And there is a new approach:
download the app
1. open in finder:"downloads"
2. hold CTRL then click the app once
3. hold
CTRL again, then click open
It looks like instead of OPTION KEY now Apple now uses CTRL KEY for this:
Apple Support:
https://support.apple.com/en-us/HT202491
Quote... If you're prompted to open the app in Finder and you're sure you want to open it despite the warning, you can control-click the app, choose Open from the menu, and then click Open in the dialog that appears. Enter your admin name and password to open the app.
This worked on my 2018 MAC MINI, but I needed an additional setting in the security settings: Change...
"allow downloads from app store" ...to...
"allow downloads from appstore and identiefied developers"With this approach I had a new phone call with the user. We tried 1 hour together, but had no change to start the app on his computer.
Then I found the new support text with the "sudo..." hack , which enables to add a third feature "open from Anywhere" to the security menu. This DOES NOT mean remove all the security features but enables users to switch for a short moment to this option then start the app once, then close the feature immediately again back to "allow downloads from app store". This third option was standard on all mac Osx until 2014 and it is still Part of the OsX, but not visible.
QUBE's Test on MAC 2020For me it sounds strange that QUBE was able to start my app...
http://www.midimaster.de/download/AurisOsxBigSur.zip
... with the old approach on a MAC 2020. So thank you for reporting me this. I will continue investigating, why this does not work on our MACs. Are there different MAC's?
Did somebody else try to start my app on a new MAC. help is still welcome!!!
It is the control key and not the option key. Hold Control > Right mouse click > Select Open
No it's the 'Command' Key and right click open. But the app does not function correctly, the background window flashes multi-coloured garbage, there's a menu that takes user information and doesn't seem to progress and a small menu that doesn't function either...But I was able to run it easily without turning off security globally.
I have a 2017 MacBook Pro.
Quote from: Steve Elliott on July 05, 2021, 11:01:51
.. But the app does not function correctly, the background window flashes multi-coloured garbage, there's a menu that takes user information and doesn't seem to progress and a small menu that doesn't function either...But I was able to run it easily without turning off security globally. I have a 2017 MacBook Pro....
Thank you for this detailed report. I did convert the old code to BlitzMax NG and then transfered it to a MAC MINI 2018 with OsX BigSur (11.4) with an XCode 12.5.1. I did no changes at security* and created no security exceptions for AURIS on this MAC. Here I compiled it with BlitzMax NG and it runs perfect on my machine.
*)What do you exactly mean with "...turning off security globally..."?
Do you have any ideas, what could be the reason for the bugs?
Quote...there's a menu that takes user information and doesn't seem to progress....
this should enable to enter the licence key, but it should have a "Cancel"-button to continue without key.
Quote
*)What do you exactly mean with "...turning off security globally..."?
You seemed to be suggesting a hack to get your app to run, followed by Qube, Adam and myself telling you not to suggest this to users. Just press the command key, right click on the warning and press open is all that is required.
Quote
Do you have any ideas, what could be the reason for the bugs?
Quote
I did convert the old code to BlitzMax NG.
Maybe that? Perhaps the NG guys could point out possible differences you are not aware of.
Quote from: Steve Elliott on July 05, 2021, 11:01:51
No it's the 'Command' Key and right click open. But the app does not function correctly, the background window flashes multi-coloured garbage, there's a menu that takes user information and doesn't seem to progress and a small menu that doesn't function either...But I was able to run it easily without turning off security globally.
I have a 2017 MacBook Pro.
It's definitely the 'control' key here. Just tested again for sanity. Control Key > Right mouse click > Click Open >> Popup window, erm popups up > Click Open. \o/
lol come on Apple, some consistency. Command Key on MacBook Pro with Big Sur. Nothing else works.
control key + mouse click opens app menu - then click "open"
this may explain the installation problems the user had...
I told him only to use the CTRL-Key. Maybe he should try it again with CMD-Key ...
As I have not a single problem with my app I can not simulate his problems.
Did you all try this with my AURIS-App Version 1.10 from the download?
I would like to know what happended afterwards.
Did you reach the licence dialog?
Have you been able to CANCEL the dialog.
Did you now reach the DEMO-Version -Dialog?
Have you been able to click on CONTINUE?
Did you also see garbage colors instead of a blue canvas in the background (like Steve reported)?
Did anybody get the message (Something like translated) "Upps ...this file not longer exists..."?
Ok after a few tests, CTRL does not work for me...BUT for the other two keys you must *hold down* either the Option or Command key, letting go of the key and the menu changes. You can then simply select Open to allow the program to run.
Quote
Did you all try this with my AURIS-App Version 1.10 from the download?
Yes.
Quote
Have you been able to CANCEL the dialog.
Yes.
Quote
Did anybody get the message (Something like translated) "Upps ...this file not longer exists..."?
No.
Quote
Did you also see garbage colors instead of a blue canvas in the background (like Steve reported)?
Midimaster I wonder if the graphics cards are the problem? Mine is an Intel Iris Plus Graphics 640 1536 MB.
Did you reach the licence dialog?
yes
Have you been able to CANCEL the dialog.
no
Did you now reach the DEMO-Version -Dialog?
yes
Have you been able to click on CONTINUE?
yes
Did you also see garbage colors instead of a blue canvas in the background (like Steve reported)?
no
Did anybody get the message (Something like translated) "Upps ...this file not longer exists..."?
no - but upps is the link html page
there are a lot of niggles with the UI and Mac apps:
1. very wierd ui colors for licence dialog
2. completely non standard menu items
- file should be second
- options should be help
- duplication of menu items with different name (exit/quit) etc
Here are 4 screenshots how the start on a mac should look like:
1.licence window:
(https://www.syntaxbomb.com/blitzmax-blitzmax-ng/installing-a-blitzmax-app-on-user-mac/?action=dlattach;attach=4692)
2.demo-dialog window:
(https://www.syntaxbomb.com/blitzmax-blitzmax-ng/installing-a-blitzmax-app-on-user-mac/?action=dlattach;attach=4694)
3.running without selected anything:
(https://www.syntaxbomb.com/blitzmax-blitzmax-ng/installing-a-blitzmax-app-on-user-mac/?action=dlattach;attach=4696)
4.selected Theme-Intervals-Dictation:
(https://www.syntaxbomb.com/blitzmax-blitzmax-ng/installing-a-blitzmax-app-on-user-mac/?action=dlattach;attach=4698)
Mac Menu ProblemsQuote from: iWasAdam on July 06, 2021, 06:51:28
...there are a lot of niggles with the UI and Mac apps:
1. very wierd ui colors for licence dialog
2. completely non standard menu items
- file should be second
- options should be help
- duplication of menu items with different name (exit/quit) etc...
I see, what you mean... But the first three menus are not mine. I only created "File", "Theme" and "Options"
This must be something system default at the mac. Do you know, where I can manipulate it?
By the way.... starting MaxIDE: it looks the same way.
It looks like these are limitations by BlitzMax MAC
Midimaster are you clearing the screen each frame? If not then that might explain the garbage.
Quote from: Steve Elliott on July 05, 2021, 21:01:21
Did you also see garbage colors instead of a blue canvas in the background (like Steve reported)?
Midimaster I wonder if the graphics cards are the problem? Mine is an Intel Iris Plus Graphics 640 1536 MB.
Steve, I found a code part that could be perhaps responsible for the flicker. In my own "music education-SDK" there was a old function that produce flickers if somebody tries to use the app on a not conform OS. The code to find out the OS was:
Function DiesesOs%()
?MacOs
Return 0
?Win32
Return (GetVersion() & $f)*10 + ((GetVersion() Shr 8) & $f)
?
End Function
This should return 0 in case of OsX or a number in case of WINDOWS. But now I see that if none of the both systems if "valid" this function can return NULL. This maybe could cause errors in other code parts of the code (like the flicker)
By the way... This would mean that the compiler directive
?MacOs
would not work correct on BlitzMax NG.
I replaced the function with ...
Function DiesesOs%()
Return 0
End Function
...because I dont not need this functionality in AURIS
Could you please be so kind and download the new version 1.11 to your computer again?
Version 1.11: http://www.midimaster.de/download/AurisOsxBigSur.zip
The test whether the flicker is still there.
Thanks a lot.
Quote from: Midimaster on July 06, 2021, 09:26:32
Function DiesesOs%()
?MacOs
Return 0
?Win32
Return (GetVersion() & $f)*10 + ((GetVersion() Shr 8) & $f)
?
End Function
This should return 0 in case of OsX or a number in case of WINDOWS. But now I see that if none of the both systems if "valid" this function can return NULL. This maybe could cause errors in other code parts of the code (like the flicker)
No ... It does not return "Null" ... it returns "0" as the returned value is an integer - and integer of "nothing" is in BlitzMax "0".
so for Mac and "undefined OS" it returns "0".
bye
Ron
Still flicker and garbage in the new version. But like I said, are you clearing the canvas each frame? If not that could cause flicker.
One thing to really think about with macos and blitzng is this:
almost all of what makes a mac a mac, YOU will have to sort out in your app yourself. blitzNG 'may' do a bit here and a bit there. but in general YOU will have to find out where it is doing things differently and write your own patches to make it 'correct'
E.G.
the menu thing
thanks to you both. I will again check twice whether I have any FLIP problems.
The code is quit easy and called by Events:
While WaitEvent()
'Print "!"
Select EventID()
Case EVENT_TIMERTICK
TimerTickt() ' calls also casualy Malen()
Case EVENT_GADGETPAINT
Malen
...
end select
Function Malen()
Local Fenster:TGraphics=CanvasGraphics(mdi.Canvas)
SetGraphics Fenster
SetAlpha 1
SetColor 255,255,255
SetScale 1,1
SetClsColor 44,55,88
Cls
SetColor 64,75,108
DrawRect HellBalkenX,0,300,1200
Local dm%=DemoWindow.Taster()
Select SpielMode
Case KEIN_SPIEL
PapierText= LocalizeString("{{Phrase4}}")
Case FINDE_INTERVALL
Spiel_FindeIntervall
Case FINDE_AKKORD
Spiel_FindeAkkord
Case FINDE_MELODIE
Spiel_FindeMelodie
Default
End Select
If AlleButtonSichtbar=AN
ButtonTyp.DrawAllButtons()
EndIf
If InstrumentSichtbar=AN
Smilys()
If dm=0 CheckSmily()
KlavierTyp.Draw
MonoChord.Draw
EndIf
TextPaperGame
DrawPunkte
If NotenSichtbar=AN
Noten.Draw
If dm=0 Noten.ChangeOneAtMaus
EndIf
DemoWindow.DemoRotierer()
Flip 0
If AktivesFenster()=LektionenAssistent.Window
Fenster:TGraphics=CanvasGraphics(LektionenAssistent.Canvas)
SetGraphics Fenster
SetAlpha 1
SetColor 255,255,255
SetScale 1,1
SetClsColor 255,245,235
Cls
AssiText.Draw
ShowAssistent
Flip 0
EndIf
End Function
It starts with a CLS and ends with a FLIP. Between this all emelents are drawn. The last element is the rotating word "DEMO" if it is a demo version.
Only if additional the
LektionenAssistent.Window is activ there is a second Canvas-Action. But this is off when starting the app.
So you see, it looks very harmless and tidy.
My biggest problem is still that it runs on my mac perfect. This makes it difficult to find the reason. Only with collges like you I can move forward.
Thanks again to the awesome community here.
Mac Menu Quote from: iWasAdam on July 06, 2021, 10:56:56
... but in general YOU will have to find out where it is doing things differently and write your own patches to make it 'correct'
E.G.
the menu thing
Does somebody with BlitzMax NG know how to get into these 3 mac-pre-defined menu entries? At the moment I coded only my 3 menus and there are added as column no. 4, 5 and 6 in the mac menu.
Global Menus:Tgadget[70]
Const MENU_FILE%=1 , MENU_SPIEL%=2 , MENU_OPTI%=5
Const MENU_EXIT%=15 ,MENU_OPEN%=10, MENU_CREATE%=11
Const MENU_GRUPPE_INTERVALL%=20,MENU_INTERVALL%=21, MENU_WIS_INTERVALL%=22
Const MENU_GRUPPE_AKKORD%=30, MENU_AKKORD%=31,MENU_WIS_AKKORD%=32
Const MENU_MELODIE%=40
Const MENU_INTERNET%=50 ,MENU_ABOUT%=51, MENU_HELP%=52 , MENU_UPDATE%=53, MENU_PARA%=54,MENU_LIZENZ%=55
Const MENU_LANG%=60
Function FormLoad()
Local flags%=WINDOW_DEFAULT|WINDOW_CLIENTCOORDS
Window= CreateWindow("AURIS" , 100 , 100 , WindowBreite , WindowHoehe , Null , Flags%)
Canvas=CreateCanvas(0 , 0 , GadgetWidth(Desktop()), GadgetHeight(Desktop()) , Window)
SetGadgetLayout Canvas , 1,1,1,1
Menus[MENU_FILE] = CreateMenu("{{File}} ",0,WindowMenu(Window))
Menus[MENU_OPEN] = CreateMenu ("{{Open}} " , MENU_OPEN , Menus[MENU_FILE],0,0)
Menus[MENU_CREATE] = CreateMenu ("{{Create exercise}} " , MENU_CREATE , Menus[MENU_FILE],0,0)
CreateMenu "" , 0 , Menus[MENU_FILE] ,0,0
Menus[MENU_EXIT] = CreateMenu ("{{Exit}}" , MENU_EXIT , Menus[MENU_FILE] ,0,0 )
Menus[MENU_SPIEL] = CreateMenu("{{Theme}} ",0,WindowMenu(Window))
Menus[MENU_GRUPPE_INTERVALL]= CreateMenu( "{{Intervalls}}" , MENU_INTERVALL , Menus[MENU_SPIEL] ,0,0 )
Menus[MENU_INTERVALL]= CreateMenu( "{{Listening}}" , MENU_INTERVALL , Menus[MENU_GRUPPE_INTERVALL] ,0,0 )
Menus[MENU_WIS_INTERVALL]= CreateMenu( "{{Dictation}}" , MENU_WIS_INTERVALL , Menus[MENU_GRUPPE_INTERVALL] ,0,0 )
Menus[MENU_GRUPPE_AKKORD]= CreateMenu( "{{Chords}}" , MENU_AKKORD , Menus[MENU_SPIEL] ,0,0 )
Menus[MENU_AKKORD]= CreateMenu( "{{Listening}}" , MENU_AKKORD , Menus[MENU_GRUPPE_AKKORD] ,0,0 )
Menus[MENU_WIS_AKKORD]= CreateMenu( "{{Dictation}}" , MENU_WIS_AKKORD , Menus[MENU_GRUPPE_AKKORD] ,0,0 )
Menus[MENU_MELODIE]= CreateMenu( "{{Melody}}" , MENU_MELODIE , Menus[MENU_SPIEL] ,0,0 )
Menus[MENU_OPTI] = CreateMenu("{{Options}} ",0,WindowMenu(Window))
Menus[MENU_ABOUT]= CreateMenu( "{{Info about}} Auris" , MENU_ABOUT , Menus[MENU_OPTI] ,0,0 )
Menus[MENU_PARA]= CreateMenu( "{{Parameter}}" , MENU_PARA , Menus[MENU_OPTI] ,0,0 )
Menus[MENU_INTERNET]= CreateMenu( "Homepage Midimaster" , MENU_INTERNET , Menus[MENU_OPTI] ,0,0 )
Menus[MENU_HELP]= CreateMenu( "{{Help}}" , MENU_HELP , Menus[MENU_OPTI] ,0,0 )
Menus[MENU_LIZENZ]= CreateMenu( "{{Licence}}" , MENU_LIZENZ , Menus[MENU_OPTI] ,0,0 )
SwitchSomeMenus ([10,11], [0])
SwitchSprache IniClass.Value("", "Allgemein", "Sprache")
UpdateWindowMenu window
End Function
If AktivesFenster()=LektionenAssistent.Window
Fenster:TGraphics=CanvasGraphics(LektionenAssistent.Canvas)
SetGraphics Fenster
"Fenster:TGraphics=" is not needed. "Fenster =" will do too (but makes no difference at the end :)
So ... what is "SetGraphics" doing ?
SetGraphics() is defined in "brl.mod/graphics.mod"
Function SetGraphics( g:TGraphics )
If Not g
If _driver And _graphics _driver.SetGraphics Null
_graphics=Null
_gWidth=0
_gHeight=0
_gDepth=0
_gHertz=0
_gFlags=0
_gx=0
_gy=0
Return
EndIf
Local d:TGraphicsDriver=g.Driver()
If d<>_driver
If _driver And _graphics _driver.SetGraphics Null
_graphicsModes=Null
_driver=d
EndIf
g.GetSettings _gWidth,_gHeight,_gDepth,_gHertz,_gFlags,_gx,_gy
d.SetGraphics g
_graphics=g
End Function
- if no "g" was passed, a reset would be done
- if "g" was passed but using a different driver (eg you switch from OGL to DX on Windows) the old object would be cleaned up
- in all cases some settings would be read (GetSettings...) and
- in all cases the driver's "SetGraphics" would be called
(driver).SetGraphics is most probably from brl.mod/glmax2d.mod/glmax2d.bmx (as you talk about Mac OS and DX is not available there :) ):
Method SetGraphics( g:TGraphics ) Override
If Not g
TMax2DGraphics.ClearCurrent
GLGraphicsDriver().SetGraphics Null
Return
EndIf
Local t:TMax2DGraphics=TMax2DGraphics(g)
Assert t And TGLGraphics( t._graphics )
GLGraphicsDriver().SetGraphics t._graphics
ResetGLContext t
t.MakeCurrent
End Method
As you see, it will call these three lines each time you call "SetGraphics Fenster":
GLGraphicsDriver().SetGraphics t._graphics
ResetGLContext t
t.MakeCurrent
OK ... and if this leads to flicker or issues (eg the project matrix blows up or whatever...) then maybe we could simply skip that?
If AktivesFenster()=LektionenAssistent.Window
'only set new graphics if needed
if Fenster <> CanvasGraphics(LektionenAssistent.Canvas)
Fenster=CanvasGraphics(LektionenAssistent.Canvas)
SetGraphics Fenster
endif
A pity in your case it wont be "skipable" as you always set the canvas back to "mdi.canvas" at the begin of Malen(). So take this code just as a simple "showcase" on how to avoid doing stuff if not needed.
So something to say about the begin of Malen()
Function Malen()
Local Fenster:TGraphics=CanvasGraphics(mdi.Canvas)
SetGraphics Fenster
The issue here is that you cannot check if the current graphics object is "mdi.canvas" ("Fenster") already.
For this you would need to backup the current graphics object each time you "SetGraphics" a new one.
global currentGraphics:TGraphics
SetGraphics theOneToSet
currentGraphics = theOneToSet
(Or call a custom function "MySetGraphics()" which automates that for you).
Using the currentGraphics set means you could skip setting the mdi.canvas on each call to Malen() - as long as other canvases weren't "activated" (SetGraphics).
I am NOT knowing if this helps or not - but it minimizes "switches" between the canvases and potential issues inside the functions called on canvas changes.
PS: Next to brl.glmax2d you could always try if the sdl.mod-stuff works better.
bye
Ron
Quote from: Steve Elliott on July 06, 2021, 08:53:42
Midimaster are you clearing the screen each frame? If not then that might explain the garbage.
Steve, may I ask you for help again?
I reduced the code at the Malen() function to a basic minimum. I added Derron sugesstion of not calling always the SetGraphics(), I removed to rotating DEMO word temporary. I set the Timer-Tick to 60Hz, I remove the double calling of Malen(). Now it is only called once by TimerTickt().
Function Malen()
Global Fenster:TGraphics
If Fenster=NULL
Fenster=CanvasGraphics(mdi.Canvas)
SetGraphics Fenster
Endif
SetAlpha 1
SetColor 255,255,255
SetScale 1,1
SetClsColor 44,55,88
Cls
SetColor 64,75,108
DrawRect HellBalkenX,0,300,1200
.....
TextPaperGame
DrawPunkte
If NotenSichtbar=AN
Noten.Draw
If dm=0 Noten.ChangeOneAtMaus
EndIf
' DemoWindow.DemoRotierer()
Flip 0
Return
.......
All I want to know is again: do you still see the color garbage when starting the app? As a second test you could select "THEME INTERVALL - LISTENING" from the menu and report whether you see this:
(https://www.syntaxbomb.com/blitzmax-blitzmax-ng/installing-a-blitzmax-app-on-user-mac/?action=dlattach;attach=4698)
(Dont worry, when you cannot do anything in this testversion: Mouseactions are ignored)
Then close the app
This time I used a new link.
Version 1.12:
www.midimaster.de/downloads/AurisTest.app.zip
Of course everybody else with a MAC can also help testing the app.
Sure, no problem.
I still get the garbage, but it's not flashing like mad now - just a quick flickering.
Great. Now *everything* on my Mac screen is flickering. BlitzMaxNG seems unstable!
so the "flashing" was possibly based on the glcontext-thing (SetGraphics call).
Now this is reduced and not done so often - "quick flickering".
If now "everything" is flickering then maybe the OpenGL support in Steves Mac OS is ... not as it should (or no longer "100% compatible").
Maybe we should try to replicate the issue in a custom little maxgui-app (doing stuff on two canvases, switching around).
Having a "open source" test app allows mac users to compile the test stuff on their own devices.
Maybe one could then test if sdl.mod (and the opengl stuff in there) does a better job.
bye
Ron
My mac was working perfectly fine before BlitzMaxNG screwed it up! >:(
Upps.... sad to hear this... I would not think this is possible.
I do nothing special with the Mac. Are you too using BlitzMax NG?
I do not use any modules related to graphics, etc... Only the standard BlitzMax approach.
I do not select any driver, etc..
My MAC MINI has a different graphic card than you have: Intel UHD Grpahics 630 1536MB
Startup-Sequence:
SuperStrict
Import koriolis.zipstream
Import BaH.RtMidi
Import MaxGUI.Drivers
' my own code sources:
Include "AurisFunktionen.bmx"
Include "AurisKonstanten.bmx"
Include "AurisAudio.bmx"
Include "AurisIntervall.bmx"
Include "AurisAkkorde.bmx"
Include "AurisMDI.bmx"
Include "AurisLaden.bmx"
Include "AurisAssi.bmx"
Include "AurisMelodie.bmx"
Include "AurisPara.bmx"
Include "Tastatur.bmx"
' codes sources over all my projects:
Include "../Gemeinsam\Lizenz.bmx"
Include "../Gemeinsam\LizenzenDemo.bmx"
Include "../Gemeinsam\Klassen.bmx"
AppTitle="Auris"
Incbin "DATEN.ZIP"
SetzePfade
DatenPfad="ZIP::Incbin::DATEN.ZIP//"
KopiereAppDateien
Lizenz.VersionsString="1.10"
If DatenPfad.Contains("::")
IniClass.Schreiben "","Allgemein", "LastStart", CurrentDate() + " " + CurrentTime()
EndIf
' language:
Global Language:TMaxGUILanguage[9] , AktSprache%=1
SprachLoader 0,"english"
SprachLoader 1,"deutsch"
SprachLoader 2,"czech"
SprachLoader 3,"new"
SetLocalizationMode(LOCALIZATION_ON|LOCALIZATION_OVERRIDE)
SetLocalizationLanguage Language[AktSprache]
DatenLaden
MDI.FormLoad ' loads Main- Window (here only menu and one canvas)
InfoFenster.FormLoad
Lizenz.Formload
If Lizenz.Ok()>0
ShowGadget Lizenz.Window
DisableGadget MDI.Window
EndIf
KopiereStdDateien
LektionenBrowser.FormLoad
LektionenAssistent.FormLoad
DemoWindow.StartUp()
ChangeWindowTitle()
ErstelleAntwortButtons()
Noten.CreateIt 450,280,330,200
KlavierTyp.Create
MonoChord.Create
AktInstrument=IniClass.Value("","Allgemein", "Instrument")
CreateTimer 60
SpielMode=KEIN_SPIEL 'FINDE_INTERVALL
Sichtbar 0,0,0,0,0
SeedRnd MilliSecs()
AllesBeiResizeWindow
While WaitEvent()
Select EventID()
Case EVENT_KEYDOWN
.....
Quote from: Derron on July 08, 2021, 10:51:07
so the "flashing" was possibly based on the glcontext-thing (SetGraphics call).
no I think what Steve reports is a faster flickering. So the problem still remains. As I raised the Timer-Frequency from 20 to 60 this seems to be the reason for the new flickering speed.
It still looks like BlitzMax NG has a FLIP problem on this graphic card. For me it sounds like there is a second FLIP or VSYNC wich shows the content of an undefined buffer.
Very strange is now, that the problem remains after closing the app. I cannot see any reason for such a behavior. As I do not want to damage Steve's computer, I have to stopp the testing now.
Steve? Have you been ale to stop the flickering after a restart of the computer?
@Derron: What is this SDL-stuff?
another question could a
Flip 1 instead of a
Flip 0 help?
Quote
Steve? Have you been ale to stop the flickering after a restart of the computer?
No, but I'm working on updating Big Sur to see if that clears up the problem.
[Edit]
Yes the OS Update cleared the flickering problem.
sdl.mod ... you would need to use the framework command then, because else it loads stuff like "brl.SystemDefault", while sdl.mod provides its own "sdl.System". it also provides its own graphics modules SDL.glmax2d, SDL.gl2max2d ...
the SDL version uses different approaches to creating new windows etc - so stuff like multi-screen-setups do not lead to eg "apps being centered across multiple screens".
Nonetheless it would be good to see a barebone code sample which creates the windows similar to yours, painting via events, switching canvases.
This then needs to be checked on Steve's computer - and if others could replicate the issue, then the better (and then ... we could look for a fix).
Regarding "flickers" which is still happening even if your app is closed: it is not your fault. No worries. You wont be able to damage his computer this way. It is the fault of the OS - and whatever the (real) gpu drivers + the OS services are doing there (sparse OpenGL support...?). You are not requesting exclusive full screen stuff, so you wont even change anything like a desktop resolution or so. (remember that in earlier times a fullscreen resolution change + crashed app often lead to the resolution being stuck changed).
bye
Ron
Good to read that Steve could stopp the flickering problems by updating his OsX.
Now it looks like my AURIS app starts as expected also on users computers. Steve could you again test the regular version 1.11 from here:
http://www.midimaster.de/download/AurisOsxBigSur.zip
After closing both licence and demo window you should click on THEME- INTERVALL- LISTENING in the menu. That's all.
@DERRON:
Do you already know how to buid this MAC-conform menu? IWasAdam pointet me to the 6 column menu, but I only created 3 entries. It looks like MAC adds 4 menus by default: APPLE - APP NAME - VIEW - WINDOW
So it comes to this seqence in my AURIS app:
APPLE - AURIS- VIEW - WINDOW - FILE - THEME - OPTIONS
I think in a pure Mac app (reference: finder) the seqence should look like this:
APPLE - AURIS - FILE - THEME - VIEW - WINDOW - HELP
Nope I do not "already know how". I only have a Mac Mini to compile my game for Mac. Not using it for anything else yet (and also do not plan to do so).
bye
Ron
Well I stopped the flickering to the OS (even after your program was exited) by updating the OS version, but I don't want to risk breaking it again so won't be re-testing, sorry.
here's what it looks like on bigsur with dark mode...
(https://vjointeractive.files.wordpress.com/2021/07/screenshot-2021-07-09-at-10.08.37.png)
You can see the UI is all light greys....
Quote from: iWasAdam on July 09, 2021, 10:12:40
here's what it looks like on bigsur with dark mode...
You can see the UI is all light greys....
Thank you for the screenshot. I will improve this after I'm sure to have solutions for all heavy problems. These have first priority at the moment:
- Install problems
- Flickering
- Menu entries
- Open zipped OGG-Sounds
- Strange HTTPS-error message when leaving the app
Much more I would be interested in a look into the main screen: MENU - THEME - INTERVALL- LISTENING
- any flickering?
- do you hear sound when clicking on the yellow buttons?
Quote from: Derron on July 09, 2021, 08:24:26
... I only have a Mac Mini to compile my game for Mac. Not using it for anything else yet ...
Ah, this sounds like you do not need a menu and do not use the MaxGui-Module in your games. Ok. I will try to find out something and report. Also this new MAC MINI will be there only for compiling.
(The old one I use for 24track recordings with my PRESONUS 24.4.2: https://www.youtube.com/watch?v=SyAJinDH-6Y )
and it only does this on Big Sur ??
when i install my specdrum 2 app i dont get that issue
i created my install with packages
lee
ignore me lol
i shot straight to the end and not read any other comment and thought it was because you couldnt install any app with big sur from blitzmax :)
sorry jumped the fence before getting on the horse lol
lee
Ignore me too!
Fancy a cup off EARL GREY?
https://youtu.be/eELH0ivexKA
and just another
https://youtu.be/0iRTB-FTMdk
Dernire un
https://youtu.be/80hMEKlLVgQ
Baggey