Skip to content

Commit 3ba5585

Browse files
authored
Ver4.0.9001 (#2188)
* Projects ver4.0.9001 * Packages ver4.0.9001 * Templates ver4.0.9001 * Changelog ver4.0.9001 * Migrate ver4.0.9001
1 parent 69523a0 commit 3ba5585

File tree

64 files changed

+640
-396
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+640
-396
lines changed

BuildNuget.bat

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ dotnet pack src\Xna.Framework.Content.Pipeline.Audio\Xna.Framework.Content.Pipel
1515
dotnet pack src\Xna.Framework.Content.Pipeline.Graphics\Xna.Framework.Content.Pipeline.Graphics.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release
1616
dotnet pack src\Xna.Framework.Content.Pipeline.Media\Xna.Framework.Content.Pipeline.Media.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release
1717

18-
"C:\Program Files (x86)\NuGet3\nuget.exe" pack NuGetPackages/Content.Pipeline.Builder.nuspec -OutputDirectory NuGetPackages\Output\ -BasePath . -Version 3.14.9001 -Properties Configuration=Release
19-
"C:\Program Files (x86)\NuGet3\nuget.exe" pack NuGetPackages/Content.Pipeline.Builder.Windows.nuspec -OutputDirectory NuGetPackages\Output\ -BasePath . -Version 3.14.9001 -Properties Configuration=Release
18+
"C:\Program Files (x86)\NuGet3\nuget.exe" pack NuGetPackages/Content.Pipeline.Builder.nuspec -OutputDirectory NuGetPackages\Output\ -BasePath . -Version 4.0.9001 -Properties Configuration=Release
19+
"C:\Program Files (x86)\NuGet3\nuget.exe" pack NuGetPackages/Content.Pipeline.Builder.Windows.nuspec -OutputDirectory NuGetPackages\Output\ -BasePath . -Version 4.0.9001 -Properties Configuration=Release
2020

21-
"C:\Program Files (x86)\NuGet3\nuget.exe" pack NuGetPackages/MonoGame.Framework.WindowsUniversal.nuspec -OutputDirectory NuGetPackages\Output\ -BasePath . -Version 3.14.9001.0 -Properties Configuration=Release
21+
"C:\Program Files (x86)\NuGet3\nuget.exe" pack NuGetPackages/MonoGame.Framework.WindowsUniversal.nuspec -OutputDirectory NuGetPackages\Output\ -BasePath . -Version 4.0.9001 -Properties Configuration=Release
2222

2323
dotnet pack Platforms\Kni.Platform.Android.GL.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release
2424
dotnet pack Platforms\Kni.Platform.Oculus.GL.csproj --output NuGetPackages\Output\ /t:Build /p:Configuration=Release

CHANGELOG.md

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,74 @@
11
# Changelog
22

3+
## 4.0.9001 Release - January 14, 2025
4+
5+
### Fixed
6+
- fixed SensorBase.Dispose() #1925
7+
- fixed sensor Dispose/finalize #1929
8+
- fix TestContentManager usage #1955
9+
- fix PipelineEditor OpenFile #1964
10+
- fix SDL IndexBuffer ShouldSetAndGetStructData #1974
11+
- fix SDL VertexBuffer ShouldSetAndGetStructData #1974, #2000
12+
- rebuild Assets when compression method changed #1980
13+
- fix DesktopGL native runtimes #1992
14+
- fix IFrame event capture #1993
15+
- fix DesktopGL MediaPlayer.Position #2006
16+
- fix PipelineEditor OnReferencesModified #2026
17+
- fix BoundingFrustrum Intersects & Contains #2052, #2073, #2074
18+
- fix CheckGLError(...) #2055
19+
- [SDL2] pin buffer to avoid access to invalid memory #2058
20+
- [OpenGL] fix Discard rendertargets #2062
21+
- [OpenGL] fix multisample surface types #2063
22+
- fix Complex out parameters #2125
23+
- fix GL TextureFilter.Linear #2165
24+
- fix GetInfoLog() #2166
25+
- fix DrawRangeElementsBaseVertex #2187, #2181
26+
27+
### Performance
28+
- optimize DX VertexBuffer Get/Set Data #1967
29+
- optimize SDL IndexBuffer GetData #1974
30+
- optimize SDL VertexBuffer GetData #1974, #2000
31+
- perf ConvertFloat32ToInt16() #2008, #2009, #2028
32+
- perf DesktopGL Texture GetData(...) #2011
33+
- perf use Environment.CurrentManagedThreadId #2013
34+
- perf use generic ContentTypeReaderT, avoid boxing for value types #2029
35+
- optimize GamePadDPad #2114
36+
37+
### Changed
38+
- remove MaxSensorCount limit #1928
39+
- rename Sensors namespace #1942
40+
Microsoft.Devices.Sensors -> Microsoft.Xna.Framework.Devices.Sensors
41+
- The library MonoGame.Framework is split into Xna.Framework.Devices, and Xna.Framework.Storage #1947, #1988.
42+
- ContentLoadException message include assetName #1963
43+
- throw 'Operation not called on main thread' for VertexShader/PixelShader #2014
44+
- throw 'Operation not called on main thread' for GetBackBufferData(...) #2020
45+
- [PipelineEditor] resize dialogs #2066, #2067
46+
- Rename Platform assembly #2136, #2146, #2147
47+
- rename Platform packages #2137, #2150, #2156
48+
49+
### Added
50+
- Vibrator class #1941, #2089
51+
- implement UAP Accelerometer #1948
52+
- XNB compression extension #1961, #2039
53+
- Brotli XNB compression #1962, #1966, #2033, #2040, #2041
54+
- /packageReference option in .mgcb to consume importers & processors from nuget #2027, #2068, #2069, #2070, #2075
55+
- added Plane.Intersects(Ray) #2044, #2046
56+
- added XR library, and unify LibOVR.
57+
- implement XR for BlazorGL platform #2090
58+
- [WebGL] implement half-float surface formats #2042
59+
- [WebGL] implement multisampling in rendertargets #2088
60+
- System.Numerics explicit conversion #2110
61+
- Matrix.CreateRotationZ(Complex) #2120
62+
- Pose3 and Pose2 structs #2121
63+
- windowsDX11 net4.8 #2142, #2152
64+
- tools net4.8 #2151
65+
- Oculus native backend #2174
66+
- [Blazor] implement MediaPlayer.PlayPosition and VideoPlayer.PlayPosition #2184
67+
68+
### Removed
69+
- drop net6.0 from WindowsDX & BlazorGL #2086
70+
- xamarin .nuspec #2154
71+
- Xamarin iOS project #2155
372

473
## 3.14.9001 Release - September 23, 2024
574

Documentation/articles/migrate_381.md

Lines changed: 33 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,35 +11,46 @@ Edit your .csproj file of the main project and replace:
1111

1212
to:
1313

14-
```xml
15-
<PackageReference Include="nkast.Xna.Framework" Version="3.14.9001" />
16-
<PackageReference Include="nkast.Xna.Framework.Content" Version="3.14.9001" />
17-
<PackageReference Include="nkast.Xna.Framework.Graphics" Version="3.14.9001" />
18-
<PackageReference Include="nkast.Xna.Framework.Audio" Version="3.14.9001" />
19-
<PackageReference Include="nkast.Xna.Framework.Media" Version="3.14.9001" />
20-
<PackageReference Include="nkast.Xna.Framework.Input" Version="3.14.9001" />
21-
<PackageReference Include="nkast.Xna.Framework.Game" Version="3.14.9001" />
22-
<PackageReference Include="MonoGame.Framework.{Platform}.9000" Version="3.14.9001" />
23-
```
24-
25-
where {Platform} is Windows, DesktopGL, Android, etc.
14+
```xml
15+
<PackageReference Include="nkast.Xna.Framework" Version="4.0.9001" />
16+
<PackageReference Include="nkast.Xna.Framework.Content" Version="4.0.9001" />
17+
<PackageReference Include="nkast.Xna.Framework.Devices" Version="4.0.9001" />
18+
<PackageReference Include="nkast.Xna.Framework.Graphics" Version="4.0.9001" />
19+
<PackageReference Include="nkast.Xna.Framework.Audio" Version="4.0.9001" />
20+
<PackageReference Include="nkast.Xna.Framework.Media" Version="4.0.9001" />
21+
<PackageReference Include="nkast.Xna.Framework.Input" Version="4.0.9001" />
22+
<PackageReference Include="nkast.Xna.Framework.Game" Version="4.0.9001" />
23+
<PackageReference Include="nkast.Xna.Framework.Storage" Version="4.0.9001" />
24+
<PackageReference Include="nkast.Xna.Framework.XR" Version="4.0.9001" />
25+
<PackageReference Include="nkast.Kni.Platform.{Platform}" Version="4.0.9001" />
26+
```
27+
28+
where {Platform} maps as follows.
29+
- Android - > Android.GL
30+
- DesktopGL - > SDL2.GL
31+
- iOS -> iOS.GL
32+
- WindowsUniversal -> UAP.DX11
33+
- WindowsDX - > WinForms.DX11
2634

2735
For libraries, edit your .csproj file and replace:
2836

29-
```xml
37+
```xml
3038
<PackageReference Include="MonoGame.Framework.DesktopGL" Version="3.8.1.303" PrivateAssets="All" />
3139
```
3240

3341
to:
3442

35-
```xml
36-
<PackageReference Include="nkast.Xna.Framework" Version="3.14.9001" />
37-
<PackageReference Include="nkast.Xna.Framework.Content" Version="3.14.9001" />
38-
<PackageReference Include="nkast.Xna.Framework.Graphics" Version="3.14.9001" />
39-
<PackageReference Include="nkast.Xna.Framework.Audio" Version="3.14.9001" />
40-
<PackageReference Include="nkast.Xna.Framework.Media" Version="3.14.9001" />
41-
<PackageReference Include="nkast.Xna.Framework.Input" Version="3.14.9001" />
42-
<PackageReference Include="nkast.Xna.Framework.Game" Version="3.14.9001" />
43+
```xml
44+
<PackageReference Include="nkast.Xna.Framework" Version="4.0.9001" />
45+
<PackageReference Include="nkast.Xna.Framework.Content" Version="4.0.9001" />
46+
<PackageReference Include="nkast.Xna.Framework.Devices" Version="4.0.9001" />
47+
<PackageReference Include="nkast.Xna.Framework.Graphics" Version="4.0.9001" />
48+
<PackageReference Include="nkast.Xna.Framework.Audio" Version="4.0.9001" />
49+
<PackageReference Include="nkast.Xna.Framework.Media" Version="4.0.9001" />
50+
<PackageReference Include="nkast.Xna.Framework.Input" Version="4.0.9001" />
51+
<PackageReference Include="nkast.Xna.Framework.Game" Version="4.0.9001" />
52+
<PackageReference Include="nkast.Xna.Framework.Storage" Version="4.0.9001" />
53+
<PackageReference Include="nkast.Xna.Framework.XR" Version="4.0.9001" />
4354
```
4455

4556
### Migrating Framework (Android)
@@ -78,7 +89,7 @@ Then replace:
7889
With:
7990

8091
```xml
81-
<PackageReference Include="nkast.Xna.Framework.Content.Pipeline.Builder" Version="3.14.9001" />
92+
<PackageReference Include="nkast.Xna.Framework.Content.Pipeline.Builder" Version="4.0.9001" />
8293
```
8394

8495
Then rename 'MonoGameContentReference':
Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,164 @@
1+
# Migrating from 3.14 to 4.0
2+
3+
4+
## Migrating Framework
5+
6+
Edit your .csproj file and replace:
7+
8+
```xml
9+
<PackageReference Include="nkast.Xna.Framework" Version="3.14.9001" />
10+
<PackageReference Include="nkast.Xna.Framework.Content" Version="3.14.9001" />
11+
<PackageReference Include="nkast.Xna.Framework.Graphics" Version="3.14.9001" />
12+
<PackageReference Include="nkast.Xna.Framework.Audio" Version="3.14.9001" />
13+
<PackageReference Include="nkast.Xna.Framework.Media" Version="3.14.9001" />
14+
<PackageReference Include="nkast.Xna.Framework.Input" Version="3.14.9001" />
15+
<PackageReference Include="nkast.Xna.Framework.Game" Version="3.14.9001" />
16+
<PackageReference Include="MonoGame.Framework.{Platform}.9000" Version="3.14.9001" />
17+
```
18+
19+
to:
20+
21+
```xml
22+
<PackageReference Include="nkast.Xna.Framework" Version="4.0.9001" />
23+
<PackageReference Include="nkast.Xna.Framework.Content" Version="4.0.9001" />
24+
<PackageReference Include="nkast.Xna.Framework.Devices" Version="4.0.9001" />
25+
<PackageReference Include="nkast.Xna.Framework.Graphics" Version="4.0.9001" />
26+
<PackageReference Include="nkast.Xna.Framework.Audio" Version="4.0.9001" />
27+
<PackageReference Include="nkast.Xna.Framework.Media" Version="4.0.9001" />
28+
<PackageReference Include="nkast.Xna.Framework.Input" Version="4.0.9001" />
29+
<PackageReference Include="nkast.Xna.Framework.Game" Version="4.0.9001" />
30+
<PackageReference Include="nkast.Xna.Framework.Storage" Version="4.0.9001" />
31+
<PackageReference Include="nkast.Xna.Framework.XR" Version="4.0.9001" />
32+
<PackageReference Include="nkast.Kni.Platform.{Platform}" Version="4.0.9001" />
33+
```
34+
35+
where {Platform} maps as follows.
36+
- Android - > Android.GL
37+
- BlazorGL - > Blazor.GL
38+
- Cardboard - > Cardboard.GL
39+
- DesktopGL - > SDL2.GL
40+
- iOS -> iOS.GL
41+
- WindowsUniversal -> UAP.DX11
42+
- WindowsDX - > WinForms.DX11
43+
44+
For libraries, edit your .csproj file and replace:
45+
46+
```xml
47+
<PackageReference Include="nkast.Xna.Framework" Version="3.14.9001" />
48+
<PackageReference Include="nkast.Xna.Framework.Content" Version="3.14.9001" />
49+
<PackageReference Include="nkast.Xna.Framework.Graphics" Version="3.14.9001" />
50+
<PackageReference Include="nkast.Xna.Framework.Audio" Version="3.14.9001" />
51+
<PackageReference Include="nkast.Xna.Framework.Media" Version="3.14.9001" />
52+
<PackageReference Include="nkast.Xna.Framework.Input" Version="3.14.9001" />
53+
<PackageReference Include="nkast.Xna.Framework.Game" Version="3.14.9001" />
54+
```
55+
56+
to:
57+
58+
```xml
59+
<PackageReference Include="nkast.Xna.Framework" Version="4.0.9001" />
60+
<PackageReference Include="nkast.Xna.Framework.Content" Version="4.0.9001" />
61+
<PackageReference Include="nkast.Xna.Framework.Devices" Version="4.0.9001" />
62+
<PackageReference Include="nkast.Xna.Framework.Graphics" Version="4.0.9001" />
63+
<PackageReference Include="nkast.Xna.Framework.Audio" Version="4.0.9001" />
64+
<PackageReference Include="nkast.Xna.Framework.Media" Version="4.0.9001" />
65+
<PackageReference Include="nkast.Xna.Framework.Input" Version="4.0.9001" />
66+
<PackageReference Include="nkast.Xna.Framework.Game" Version="4.0.9001" />
67+
<PackageReference Include="nkast.Xna.Framework.Storage" Version="4.0.9001" />
68+
<PackageReference Include="nkast.Xna.Framework.XR" Version="4.0.9001" />
69+
```
70+
71+
## Migrating Content Builder
72+
73+
Edit your .csproj file and replace:
74+
75+
```xml
76+
<ItemGroup>
77+
<PackageReference Include="nkast.Xna.Framework.Content.Pipeline.Builder" Version="3.14.9001" />
78+
</ItemGroup>
79+
```
80+
81+
to:
82+
83+
```xml
84+
<ItemGroup>
85+
<PackageReference Include="nkast.Xna.Framework.Content.Pipeline.Builder" Version="4.0.9001" />
86+
</ItemGroup>
87+
```
88+
89+
if your importers require Windows libraries (WinForms,WPF), use the 'nkast.Xna.Framework.Content.Pipeline.Builder.Windows' package.
90+
91+
92+
### Migrating BlazorGL projects
93+
94+
Edit index.html file and replace:
95+
96+
```
97+
<script src="_content/nkast.Wasm.Dom/js/JSObject.8.0.2.js"></script>
98+
<script src="_content/nkast.Wasm.Dom/js/Window.8.0.2.js"></script>
99+
<script src="_content/nkast.Wasm.Dom/js/Document.8.0.2.js"></script>
100+
<script src="_content/nkast.Wasm.Dom/js/Media.8.0.2.js"></script>
101+
<script src="_content/nkast.Wasm.XHR/js/XHR.8.0.2.js"></script>
102+
<script src="_content/nkast.Wasm.Canvas/js/Canvas.8.0.2.js"></script>
103+
<script src="_content/nkast.Wasm.Canvas/js/CanvasGLContext.8.0.2.js"></script>
104+
<script src="_content/nkast.Wasm.Audio/js/Audio.8.0.2.js"></script>
105+
```
106+
107+
with:
108+
109+
```
110+
<script src="_content/nkast.Wasm.Dom/js/JSObject.8.0.5.js"></script>
111+
<script src="_content/nkast.Wasm.Dom/js/Window.8.0.5.js"></script>
112+
<script src="_content/nkast.Wasm.Dom/js/Document.8.0.5.js"></script>
113+
<script src="_content/nkast.Wasm.Dom/js/Navigator.8.0.5.js"></script>
114+
<script src="_content/nkast.Wasm.Dom/js/Gamepad.8.0.5.js"></script>
115+
<script src="_content/nkast.Wasm.Dom/js/Media.8.0.5.js"></script>
116+
<script src="_content/nkast.Wasm.XHR/js/XHR.8.0.5.js"></script>
117+
<script src="_content/nkast.Wasm.Canvas/js/Canvas.8.0.5.js"></script>
118+
<script src="_content/nkast.Wasm.Canvas/js/CanvasGLContext.8.0.5.js"></script>
119+
<script src="_content/nkast.Wasm.Audio/js/Audio.8.0.5.js"></script>
120+
<script src="_content/nkast.Wasm.XR/js/XR.8.0.5.js"></script>
121+
```
122+
123+
after this line:
124+
125+
```
126+
import { BrotliDecode } from './js/decode.min.js';
127+
```
128+
129+
add
130+
131+
```
132+
import { BrotliDecode } from './js/decode.min.js';
133+
window.BrotliDecode = BrotliDecode;
134+
```
135+
136+
137+
### Migrating OculusVR projects
138+
139+
Edit your .csproj file and replace:
140+
141+
```xml
142+
<PackageReference Include="nkast.Xna.Framework.Oculus.OvrDX11" Version="3.14.9001" />
143+
```
144+
145+
with:
146+
147+
```xml
148+
<PackageReference Include="nkast.Kni.Platform.WinForms.DX11.OculusOVR" Version="4.0.9001" />
149+
```
150+
151+
In Program.cs, before creating the the Game instance,
152+
153+
```
154+
using (var game = new $ext_safeprojectname$Game())
155+
game.Run();
156+
```
157+
158+
add:
159+
```
160+
Microsoft.Xna.Platform.XR.XRFactory.RegisterXRFactory(new Microsoft.Xna.Platform.XR.LibOVR.ConcreteXRFactory());
161+
using (var game = new $ext_safeprojectname$Game())
162+
game.Run();
163+
```
164+

Installers/default.build

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<property name="os" value="${operating-system::get-platform(environment::get-operating-system())}" />
55

66
<!-- The build version number we can get from the environment variable -->
7-
<property name="buildNumber" value="3.14.9001.0"/>
7+
<property name="buildNumber" value="4.0.9001.0"/>
88
<if test="${environment::variable-exists('BUILD_NUMBER')}">
99
<property name="buildNumber" value="${environment::get-variable('BUILD_NUMBER')}"/>
1010
</if>
@@ -27,7 +27,7 @@
2727
<if test="${file::exists('C:\Program Files (x86)\NSIS\makensis.exe')}">
2828
<echo append="false" file="Windows/header.nsh">
2929
!define FrameworkPath "${project::get-base-directory()}"
30-
!define VERSION "3.14"
30+
!define VERSION "4.0"
3131
!define INSTALLERVERSION "${buildNumber}"
3232
</echo>
3333
<exec program="makensis" workingdir="Windows" basedir="C:\Program Files (x86)\NSIS">

NuGetPackages/MonoGame.Framework.WindowsUniversal.nuspec

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,16 @@
2020

2121
<dependencies>
2222
<group targetFramework=".NETCore0.0">
23-
<dependency id="nkast.Xna.Framework" version="3.14.9001" />
24-
<dependency id="nkast.Xna.Framework.Content" version="3.14.9001" />
25-
<dependency id="nkast.Xna.Framework.Graphics" version="3.14.9001" />
26-
<dependency id="nkast.Xna.Framework.Audio" version="3.14.9001" />
27-
<dependency id="nkast.Xna.Framework.Media" version="3.14.9001" />
28-
<dependency id="nkast.Xna.Framework.Input" version="3.14.9001.1" />
29-
<dependency id="nkast.Xna.Framework.Game" version="3.14.9001" />
30-
<dependency id="nkast.Xna.Framework.Devices" version="3.14.9001" />
31-
<dependency id="nkast.Xna.Framework.Storage" version="3.14.9001" />
32-
<dependency id="nkast.Xna.Framework.XR" version="3.14.9001" />
23+
<dependency id="nkast.Xna.Framework" version="4.0.9001" />
24+
<dependency id="nkast.Xna.Framework.Content" version="4.0.9001" />
25+
<dependency id="nkast.Xna.Framework.Graphics" version="4.0.9001" />
26+
<dependency id="nkast.Xna.Framework.Audio" version="4.0.9001" />
27+
<dependency id="nkast.Xna.Framework.Media" version="4.0.9001" />
28+
<dependency id="nkast.Xna.Framework.Input" version="4.0.9001.1" />
29+
<dependency id="nkast.Xna.Framework.Game" version="4.0.9001" />
30+
<dependency id="nkast.Xna.Framework.Devices" version="4.0.9001" />
31+
<dependency id="nkast.Xna.Framework.Storage" version="4.0.9001" />
32+
<dependency id="nkast.Xna.Framework.XR" version="4.0.9001" />
3333
<dependency id="SharpDX" version="4.0.1" />
3434
<dependency id="SharpDX.Direct2D1" version="4.0.1" />
3535
<dependency id="SharpDX.Direct3D11" version="4.0.1" />

0 commit comments

Comments
 (0)