Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mac Window #10

Closed
Memorix101 opened this issue Aug 27, 2016 · 1 comment
Closed

Mac Window #10

Memorix101 opened this issue Aug 27, 2016 · 1 comment

Comments

@Memorix101
Copy link

Memorix101 commented Aug 27, 2016

Hey,

I already mentioned it in dev chat.
I'm currently writing a proper Mac app for osu!
I found out that Xamarin.Mac has no WindowsForm implementation and using MonoMac isn't
recommended (also it needs to be installed by the user and doesn't ship with the app package).

I would suggest writing a WindowsForm for Mac (Cocoa UI).
Also maybe we can resolve the graphical glitches this way on Mac too.

Mac supported .Net assemblies
https://developer.xamarin.com/guides/cross-platform/advanced/available-assemblies/

screen shot 2016-08-28 at 00 39 32

screen shot 2016-08-28 at 00 43 06

screen shot 2016-08-28 at 00 43 26

@Memorix101
Copy link
Author

Moving to osu-framework

peppy pushed a commit that referenced this issue Jun 3, 2021
Fixes based on reviewer pull request feedback
bdach pushed a commit that referenced this issue May 29, 2022
```
TearDown : osu.Framework.Testing.Drawables.Steps.AssertButton+TracedException : Channel 1 ready
--TearDown
   at osu.Framework.Threading.ScheduledDelegate.RunTaskInternal()
   at osu.Framework.Threading.Scheduler.Update()
   at osu.Framework.Graphics.Drawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
   at osu.Framework.Platform.GameHost.UpdateFrame()
   at osu.Framework.Threading.GameThread.processFrame()
   at osu.Framework.Threading.GameThread.RunSingleFrame()
   at osu.Framework.Threading.GameThread.<createThread>g__runWork|66_0()
   at System.Threading.Thread.StartHelper.Callback(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)

-----

One or more child tests had errors
  Exception doesn't have a stacktrace

[runtime] 2022-05-29 19:29:09 [verbose]: 💨 Class: TestSceneChatOverlayV2
[runtime] 2022-05-29 19:29:09 [verbose]: 🔶 Test:  TestSlowLoadingChannel
[runtime] 2022-05-29 19:29:09 [verbose]: Chat is now polling every 60000 ms
[runtime] 2022-05-29 19:29:09 [verbose]: 🔸 Step #1 Setup request handler
[runtime] 2022-05-29 19:29:09 [verbose]: 🔸 Step #2 Add test channels
[runtime] 2022-05-29 19:29:09 [verbose]: 🔸 Step #3 Show overlay (slow-loading)
[runtime] 2022-05-29 19:29:09 [verbose]: 🔸 Step #4 Join channel 1
[runtime] 2022-05-29 19:29:09 [verbose]: 🔸 Step #5 Select channel 1
[runtime] 2022-05-29 19:29:09 [verbose]: 🔸 Step #6 Channel 1 loading
[runtime] 2022-05-29 19:29:09 [verbose]: 🔸 Step #7 Join channel 2
[runtime] 2022-05-29 19:29:09 [verbose]: 🔸 Step #8 Select channel 2
[runtime] 2022-05-29 19:29:09 [verbose]: 🔸 Step #9 Channel 2 loading
[runtime] 2022-05-29 19:29:09 [verbose]: 🔸 Step #10 Finish channel 1 load
[runtime] 2022-05-29 19:29:09 [verbose]: 🔸 Step #11 Channel 1 ready
[runtime] 2022-05-29 19:29:09 [verbose]: 💥 Failed
[runtime] 2022-05-29 19:29:09 [verbose]: ⏳ Currently loading components (2)
[runtime] 2022-05-29 19:29:09 [verbose]: TestSceneChatOverlayV2+SlowLoadingDrawableChannel
[runtime] 2022-05-29 19:29:09 [verbose]: - thread: ThreadedTaskScheduler (LoadComponentsAsync (standard))
[runtime] 2022-05-29 19:29:09 [verbose]: - state:  Loading
[runtime] 2022-05-29 19:29:09 [verbose]: TestSceneChatOverlayV2+SlowLoadingDrawableChannel
[runtime] 2022-05-29 19:29:09 [verbose]: - thread: ThreadedTaskScheduler (LoadComponentsAsync (standard))
[runtime] 2022-05-29 19:29:09 [verbose]: - state:  Ready
[runtime] 2022-05-29 19:29:09 [verbose]: 🧵 Task schedulers
[runtime] 2022-05-29 19:29:09 [verbose]: LoadComponentsAsync (standard) concurrency:4 running:1 pending:0
[runtime] 2022-05-29 19:29:09 [verbose]: LoadComponentsAsync (long load) concurrency:4 running:0 pending:0
[runtime] 2022-05-29 19:29:09 [verbose]: 🎱 Thread pool
[runtime] 2022-05-29 19:29:09 [verbose]: worker:          min 32     max 32,767 available 32,765
[runtime] 2022-05-29 19:29:09 [verbose]: completion:      min 32     max 1,000  available 1,000

```
smoogipoo pushed a commit that referenced this issue Jun 28, 2022
Tracking down a flaky test
(https://teamcity.ppy.sh/buildConfiguration/Osu_Build/553?hideProblemsFromDependencies=false&expandBuildTestsSection=true&hideTestsFromDependencies=false):

```csharp
TearDown : System.TimeoutException : "PM Channel 1 displayed" timed out
--TearDown
   at osu.Framework.Testing.Drawables.Steps.UntilStepButton.<>c__DisplayClass11_0.<.ctor>b__0()
   at osu.Framework.Testing.Drawables.Steps.StepButton.PerformStep(Boolean userTriggered)
   at osu.Framework.Testing.TestScene.runNextStep(Action onCompletion, Action`1 onError, Func`2 stopCondition)
--- End of stack trace from previous location ---
   at osu.Framework.Testing.TestSceneTestRunner.TestRunner.RunTestBlocking(TestScene test)
   at osu.Game.Tests.Visual.OsuTestScene.OsuTestSceneTestRunner.RunTestBlocking(TestScene test) in /opt/buildagent/work/ecd860037212ac52/osu.Game/Tests/Visual/OsuTestScene.cs:line 503
   at osu.Framework.Testing.TestScene.RunTestsFromNUnit()
------- Stdout: -------
[runtime] 2022-06-27 23:18:55 [verbose]: 💨 Class: TestSceneChatOverlay
[runtime] 2022-06-27 23:18:55 [verbose]: 🔶 Test:  TestKeyboardNextChannel
[runtime] 2022-06-27 23:18:55 [verbose]: Chat is now polling every 60000 ms
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #1 Setup request handler
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #2 Add test channels
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #3 Show overlay with channels
[runtime] 2022-06-27 23:18:55 [verbose]: Unhandled Request Type: osu.Game.Online.API.Requests.CreateChannelRequest
[network] 2022-06-27 23:18:55 [verbose]: Failing request osu.Game.Online.API.Requests.CreateChannelRequest (System.InvalidOperationException: DummyAPIAccess cannot process this request.)
[runtime] 2022-06-27 23:18:55 [verbose]: Unhandled Request Type: osu.Game.Online.API.Requests.CreateChannelRequest
[network] 2022-06-27 23:18:55 [verbose]: Failing request osu.Game.Online.API.Requests.CreateChannelRequest (System.InvalidOperationException: DummyAPIAccess cannot process this request.)
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #4 Select channel 1
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #5 Channel 1 is visible
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #6 Press document next keys
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #7 Channel 2 is visible
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #8 Press document next keys
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #9 PM Channel 1 displayed
[network] 2022-06-27 23:18:55 [verbose]: Request to https://a.ppy.sh/587 failed with System.Net.WebException: NotFound.
[network] 2022-06-27 23:18:55 [verbose]: Request to https://a.ppy.sh/503 failed with System.Net.WebException: NotFound.
[runtime] 2022-06-27 23:19:05 [verbose]: 💥 Failed (on attempt 5,550)
[runtime] 2022-06-27 23:19:05 [verbose]: ⏳ Currently loading components (0)
[runtime] 2022-06-27 23:19:05 [verbose]: 🧵 Task schedulers
[runtime] 2022-06-27 23:19:05 [verbose]: LoadComponentsAsync (standard) concurrency:4 running:0 pending:0
[runtime] 2022-06-27 23:19:05 [verbose]: LoadComponentsAsync (long load) concurrency:4 running:0 pending:0
[runtime] 2022-06-27 23:19:05 [verbose]: 🎱 Thread pool
[runtime] 2022-06-27 23:19:05 [verbose]: worker:          min 1      max 32,767 available 32,766
[runtime] 2022-06-27 23:19:05 [verbose]: completion:      min 1      max 1,000  available 1,000
[runtime] 2022-06-27 23:19:05 [debug]: Focus on "ChatTextBox" no longer valid as a result of unfocusIfNoLongerValid.
[runtime] 2022-06-27 23:19:05 [debug]: Focus changed from ChatTextBox to nothing.
```

This kind of logging should be helpful:

```csharp
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #5 Channel 1 is visible
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #6 Press document next keys
[runtime] 2022-06-28 04:59:57 [verbose]: Current channel changed to #channel-2
[runtime] 2022-06-28 04:59:57 [debug]: Pressed (DocumentNext) handled by TestSceneChatOverlay+TestChatOverlay.
[runtime] 2022-06-28 04:59:57 [debug]: KeyDownEvent(PageDown, False) handled by ManualInputManager+LocalPlatformActionContainer.
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #7 Channel 2 is visible
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #8 Press document next keys
[runtime] 2022-06-28 04:59:57 [verbose]: Current channel changed to test user 685
[runtime] 2022-06-28 04:59:57 [debug]: Pressed (DocumentNext) handled by TestSceneChatOverlay+TestChatOverlay.
[runtime] 2022-06-28 04:59:57 [debug]: KeyDownEvent(PageDown, False) handled by ManualInputManager+LocalPlatformActionContainer.
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #9 PM Channel 1 displayed
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #10 Press document next keys
[runtime] 2022-06-28 04:59:57 [verbose]: Current channel changed to test user 218
```
bdach pushed a commit that referenced this issue Jun 29, 2022
Was failing occasionally due to the beatmap present operation causing
the test's ruleset change to undo.

```csharp
TearDown : System.TimeoutException : "wait for placeholder visible" timed out
--TearDown
   at osu.Framework.Testing.Drawables.Steps.UntilStepButton.<>c__DisplayClass11_0.<.ctor>b__0()
   at osu.Framework.Testing.Drawables.Steps.StepButton.PerformStep(Boolean userTriggered)
   at osu.Framework.Testing.TestScene.runNextStep(Action onCompletion, Action`1 onError, Func`2 stopCondition)
--- End of stack trace from previous location ---
   at osu.Framework.Testing.TestSceneTestRunner.TestRunner.RunTestBlocking(TestScene test)
   at osu.Game.Tests.Visual.OsuTestScene.OsuTestSceneTestRunner.RunTestBlocking(TestScene test) in /opt/buildagent/work/ecd860037212ac52/osu.Game/Tests/Visual/OsuTestScene.cs:line 503
   at osu.Framework.Testing.TestScene.RunTestsFromNUnit()
------- Stdout: -------
[runtime] 2022-06-29 10:36:45 [verbose]: 💨 Class: TestScenePlaySongSelect
[runtime] 2022-06-29 10:36:45 [verbose]: 🔶 Test:  TestPlaceholderConvertSetting
[runtime] 2022-06-29 10:36:45 [verbose]: 🔸 Step #1 exit all screens
[runtime] 2022-06-29 10:36:45 [verbose]: 🔸 Step #2 reset defaults
[runtime] 2022-06-29 10:36:45 [verbose]: 🔸 Step #3 delete all beatmaps
[runtime] 2022-06-29 10:36:45 [verbose]: 🔸 Step #4 change ruleset to 2
[runtime] 2022-06-29 10:36:45 [verbose]: 🔸 Step #5 import test map for ruleset 0
[database] 2022-06-29 10:36:45 [verbose]: [efc1a] Beginning import from unknown...
[database] 2022-06-29 10:36:45 [verbose]: [efc1a] Import successfully completed!
[runtime] 2022-06-29 10:36:45 [verbose]: 🔸 Step #6 wait for imported to arrive in carousel
[runtime] 2022-06-29 10:36:45 [verbose]: 🔸 Step #7 change convert setting
[runtime] 2022-06-29 10:36:45 [verbose]: 🔸 Step #8 create song select
[runtime] 2022-06-29 10:36:45 [verbose]: ScreenTestScene screen changed → TestScenePlaySongSelect+TestSongSelect
[runtime] 2022-06-29 10:36:45 [verbose]: 📺 ScreenTestScene(OsuScreenStack)#338(depth:1) loading TestScenePlaySongSelect+TestSongSelect#263
[runtime] 2022-06-29 10:36:45 [verbose]: decoupled ruleset transferred ("" -> "osu!catch")
[runtime] 2022-06-29 10:36:45 [verbose]: 🔸 Step #9 wait for present
[runtime] 2022-06-29 10:36:45 [verbose]: 📺 ScreenTestScene(OsuScreenStack)#338(depth:1) entered TestScenePlaySongSelect+TestSongSelect#263
[runtime] 2022-06-29 10:36:45 [verbose]: 📺 BackgroundScreenStack#328(depth:1) loading BackgroundScreenBeatmap#338
[runtime] 2022-06-29 10:36:45 [verbose]: 📺 BackgroundScreenStack#328(depth:1) entered BackgroundScreenBeatmap#338
[runtime] 2022-06-29 10:36:45 [verbose]: Song select updating selection with beatmap:null ruleset:fruits
[runtime] 2022-06-29 10:36:45 [verbose]: Song select changing beatmap from "please load a beatmap! - no beatmaps available!" to "null"
[runtime] 2022-06-29 10:36:45 [verbose]: Song select working beatmap updated to Some Artist 0 - Some Song (set id 6224) ece7b702-895c-4f15-892f-05e4ff5e9a24 (Some Guy 3) [Normal 6224000 (length 0:50, bpm 106.7)]
[runtime] 2022-06-29 10:36:45 [verbose]: Song select updating selection with beatmap:null ruleset:osu
[runtime] 2022-06-29 10:36:45 [verbose]: decoupled ruleset transferred ("osu!catch" -> "osu!")
[runtime] 2022-06-29 10:36:45 [verbose]: Song select updating selection with beatmap:74232aa2-2a1f-4920-b643-e85976838251 ruleset:osu
[runtime] 2022-06-29 10:36:45 [verbose]: Song select decided to ensurePlayingSelected
[runtime] 2022-06-29 10:36:45 [verbose]: Game-wide working beatmap updated to Some Artist 0 - Some Song (set id 6224) ece7b702-895c-4f15-892f-05e4ff5e9a24 (Some Guy 3) [Normal 6224000 (length 0:50, bpm 106.7)]
[runtime] 2022-06-29 10:36:45 [debug]: Focus changed from nothing to SeekLimitedSearchTextBox.
[network] 2022-06-29 10:36:45 [verbose]: Failing request osu.Game.Online.API.Requests.GetBeatmapRequest (System.InvalidOperationException: DummyAPIAccess cannot process this request.)
[runtime] 2022-06-29 10:36:45 [verbose]: ✔️ 16 repetitions
[runtime] 2022-06-29 10:36:45 [verbose]: 🔸 Step #10 wait for carousel loaded
[runtime] 2022-06-29 10:36:45 [verbose]: 🔸 Step #11 wait for placeholder visible
[runtime] 2022-06-29 10:36:55 [verbose]: 💥 Failed (on attempt 1,459)
[runtime] 2022-06-29 10:36:55 [verbose]: ⏳ Currently loading components (0)
[runtime] 2022-06-29 10:36:55 [verbose]: 🧵 Task schedulers
[runtime] 2022-06-29 10:36:55 [verbose]: LoadComponentsAsync (standard) concurrency:4 running:0 pending:0
[runtime] 2022-06-29 10:36:55 [verbose]: LoadComponentsAsync (long load) concurrency:4 running:0 pending:0
[runtime] 2022-06-29 10:36:55 [verbose]: 🎱 Thread pool
[runtime] 2022-06-29 10:36:55 [verbose]: worker:          min 1      max 32,767 available 32,766
[runtime] 2022-06-29 10:36:55 [verbose]: completion:      min 1      max 1,000  available 1,000
[runtime] 2022-06-29 10:36:55 [debug]: Focus on "SeekLimitedSearchTextBox" no longer valid as a result of unfocusIfNoLongerValid.
[runtime] 2022-06-29 10:36:55 [debug]: Focus changed from SeekLimitedSearchTextBox to nothing.
```
ILW8 added a commit to ILW8/osu that referenced this issue Apr 13, 2024
add common resolutions to windowed resolution picker
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant