Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ Source layout under `src/OrthoStreamXP/`. Sub-folders are for navigation only: *
- `Aircraft/`: `AircraftPositionListener` (X-Plane UDP), `ViewTracker`, `SceneryLoads`.
- `Colour/`: `ColourMatcher` (evens patchwork), `SeasonClock` (seasonal tint by simulated date/location).
- `Textures/` — imagery to DDS: `TextureBuilder` (fetch → stitch → resize → mipmaps → BC1 encode → atomic write; own encoder, SkiaSharp is decode-only), `TextureQuality`, `Images` at the root; `Tiles/` (`TileSource`/`TileStore`: download + cache), `Dds/`, `Scheduling/` (priority gates), `Seasons/`, `Colour/` (`ColourMatch`, `Exposure`, `ColourTable` = the shared BC1 lookup-table recolouring, `PhotoColours` = match → season → exposure as X-Plane reads, also used by the Settings preview).
- `Setup/` — `Settings/` (`SettingsDocument`, ini under `%LOCALAPPDATA%\OrthoStreamXP`, `QualityPreset`, `ConnectionTest`), `Cache/` (inventory, areas, eviction), `Installation/` (`AppPaths`, `AppUpdates`, `LegacyNames` migrating older settings/cache locations, `SystemCheck`, Velopack hooks).
- `Setup/` — `Settings/` (`SettingsDocument`, ini under `%LOCALAPPDATA%\OrthoStreamXP`, `QualityPreset`, `ConnectionTest`), `Cache/` (inventory, areas, eviction), `Packages/` (downloads AutoOrtho's mesh regions from GitHub into the packages folder as `OSXP_*` packages: `MeshCatalog`, `AssetDownload`, `ZipUnpacker`, `OverlayPackage`, `RegionInstaller`), `Installation/` (`AppPaths`, `AppUpdates`, `LegacyNames` migrating older settings/cache locations, `SystemCheck`, Velopack hooks).
- `Tuning/` — flight reports, facts and the preset/setting recommendations.
- Logs go to `%LOCALAPPDATA%\OrthoStreamXP\logs`.

Expand Down
9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,16 +47,17 @@ Before installing OrthoStreamXP, make sure you have:
- **Windows 10 or 11 (64-bit)**
- **X-Plane 12**
- **WinFsp**, a free Windows component used to make the streamed scenery available to X-Plane. The setup process checks for it and provides a download link.
- **Existing scenery packages** for the regions you want to fly over.
- **Scenery packages** for the regions you want to fly over: a region's mesh downloaded from within OrthoStreamXP, or your own.
- **An internet connection** for downloading new scenery.
- **Disk space for the scenery cache** — 25 GB is a reasonable starting point; more space lets you keep more areas available.
- A graphics card with enough memory for your chosen quality preset.

The installer also installs the .NET 10 desktop runtime if it is missing.

**Important:** OrthoStreamXP streams imagery; it does not create terrain meshes or provide ready-made scenery packages. You must supply compatible base packages from a supported scenery source.
**Important:** OrthoStreamXP streams imagery onto scenery packages; it does not create terrain meshes itself. There are two ways to get them:

Compatible packages can come from tools such as Ortho4XP, OrthoStudio XP, AutoOrtho, and XPME. You can select an existing package folder during setup.
1. **Download a region from within OrthoStreamXP:** a whole region's mesh (Europe, North America, ...), during setup or later from the **Packages** page.
2. **Use your own packages:** compatible packages can come from tools such as Ortho4XP, OrthoStudio XP, AutoOrtho, and XPME. You can select an existing package folder during setup.

## Installation

Expand Down Expand Up @@ -116,7 +117,7 @@ Water, roads, buildings, rock, and sand retain their original colours. Seasonal
OrthoStreamXP is currently in beta. Please keep the following in mind:

- **Windows only:** the application depends on WinFsp.
- **You supply the scenery:** compatible base packages are required for the regions you want to fly.
- **Scenery packages are required:** download a region's mesh (6 to 33 GB per region) from the Packages page, or bring your own.
- **Internet required for new areas:** scenery loads from the internet on first use; subsequent flights can reuse cached imagery.
- **Imagery varies by location:** quality, capture date, colours, and transitions between imagery sources may differ.
- **Performance depends on your setup:** connection speed, disk performance, and graphics memory affect the experience.
Expand Down
2 changes: 1 addition & 1 deletion build-user-guide.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ if (-not $browser) { throw 'Google Chrome or Microsoft Edge is needed to print t

# The order of the guide's contents (docs\README.md). The pages keep their names so that pandoc's --file-scope
# turns the links between them (settings.md#quality) into links inside the PDF.
$pages = 'README', 'installation', 'first-setup', 'flying', 'settings', 'cache', 'troubleshooting', 'faq'
$pages = 'README', 'installation', 'first-setup', 'flying', 'settings', 'cache', 'packages', 'troubleshooting', 'faq'
$work = 'artifacts\user-guide'
if (Test-Path $work) { Remove-Item $work -Recurse -Force }
New-Item -ItemType Directory $work | Out-Null
Expand Down
Binary file modified docs/OrthoStreamXP-UserGuide.pdf
Binary file not shown.
7 changes: 4 additions & 3 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,14 @@ OrthoStreamXP adds real-world aerial photos to your X-Plane 12 scenery while you
3. [Flying](flying.md): the start order, the Home page, and the report you get after each flight.
4. [Settings](settings.md): quality, folders, downloads, colours, seasons and exposure.
5. [Cache](cache.md): how much disk space the scenery uses and how to free it.
6. [Troubleshooting](troubleshooting.md): common problems, the log, updates, uninstalling and reporting a bug.
7. [Questions and answers](faq.md): what OrthoStreamXP does and does not do, choosing the packages folder, switching from AutoOrtho.
6. [Packages](packages.md): downloading the ground mesh of a whole region, the quickest way to get scenery packages.
7. [Troubleshooting](troubleshooting.md): common problems, the log, updates, uninstalling and reporting a bug.
8. [Questions and answers](faq.md): what OrthoStreamXP does and does not do, choosing the packages folder, switching from AutoOrtho.

## The short version

1. Install [WinFsp](https://winfsp.dev/rel/), then OrthoStreamXP, then restart your computer.
2. Open OrthoStreamXP and finish the setup: X-Plane folder, scenery packages folder, cache folder, quality.
2. Open OrthoStreamXP and finish the setup: X-Plane folder, scenery packages (download a region there, or choose the folder of your own), cache folder, quality.
3. Every time you fly, click **Start and fly** in OrthoStreamXP. It starts the scenery first and then X-Plane.
4. Load a flight. A new area takes a few minutes the first time; after that it comes from the cache.

Expand Down
2 changes: 1 addition & 1 deletion docs/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ It is free and open source, and it goes up to imagery zoom level 19 (the **Extra

### Does it make the terrain (the mesh) too?

No. OrthoStreamXP only provides the photos. The mesh, the water masks and the coastlines come from scenery packages you already have, made by Ortho4XP, OrthoStudio XP, AutoOrtho or XPME. See [Installation › What you need](installation.md#what-you-need).
No, OrthoStreamXP does not make the mesh: it provides the photos. The mesh, the water masks and the coastlines come from scenery packages. Download a whole region's mesh in OrthoStreamXP itself (see [Packages](packages.md)), or use packages you already have, made by Ortho4XP, OrthoStudio XP, AutoOrtho or XPME. See [Installation › What you need](installation.md#what-you-need).

### Why can't it use the mesh from X-Plane's default scenery?

Expand Down
19 changes: 18 additions & 1 deletion docs/first-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,22 @@ If yours is not listed, click **Choose another folder…** and choose the folder

## 3. Scenery

OrthoStreamXP adds the photos to **scenery packages**: the ground of an area, the shape of the terrain cut in 1° squares. There are two ways to get them.

### Option 1: download a region in OrthoStreamXP

The simplest way, if you have no scenery packages yet. Under **No scenery packages yet?**, click **Download a region…**. If you already chose a folder without packages, the hint turns red and **Download a region now** opens the same list.

![Setup step 3: a folder without scenery packages](images/setup-scenery-empty.png)

The list of regions opens: click **Install** next to the region you fly in. The progress shows under it, and you can stop and resume the download. When it finishes, the region's folder is chosen as your scenery packages folder and **Next** becomes available.

![Setup step 3: the regions to download](images/setup-scenery-download.png)

See [Packages](packages.md) for the sizes, the roads, forests and buildings, and how to update or delete a region later. You can download more regions at any time on the **Packages** page.

### Option 2: use your own scenery packages

![Setup step 3: Scenery packages](images/setup-scenery.png)

Click **Choose a folder…** and pick the **parent folder** (in the example below it's "OrthoPackages") that holds your scenery packages, not one of the packages (not "Europe" or "Asia"). Below the folder, OrthoStreamXP lists the packages it found.
Expand All @@ -43,9 +59,10 @@ D:\OrthoPackages\
```

- Your packages stay unchanged on disk. While OrthoStreamXP runs, they appear in X-Plane's `Custom Scenery` folder with the photos added. When it stops, they disappear from there again.
- If the folder has no packages, the hint turns red: *That folder has no scenery packages*. Check that each package has an `Earth nav data` folder inside it.
- If the hint turns red, *That folder has no scenery packages*, you probably picked one package instead of the folder that holds them: check that each package has an `Earth nav data` folder inside it.
- If X-Plane's `Custom Scenery` already contains a folder with the same name as one of your packages, you get a warning. Usually another streaming tool still shows that package there; close that tool before you start OrthoStreamXP and check your scenery_packs.ini file.


## 4. Cache

![Setup step 4: Cache folder](images/setup-cache.png)
Expand Down
Binary file modified docs/images/about.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/packages-downloading.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/packages.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/settings-download.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/settings-folders.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/settings-other.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/settings-quality.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/settings-tuning.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/setup-scenery-download.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/setup-scenery-empty.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/setup-scenery.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
30 changes: 16 additions & 14 deletions docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,22 @@

- **Windows 10 or 11 (64-bit).**
- **X-Plane 12.**
- **Scenery packages of your own** for the regions you fly. OrthoStreamXP adds the photos to them, but it does not make the terrain (the mesh) itself. Packages made by Ortho4XP, OrthoStudio XP, AutoOrtho or XPME work. Each package is a folder that contains an `Earth nav data` folder. Put all of them in **one parent folder**, for example:

```
D:\OrthoPackages\
Europe\
Earth nav data\
terrain\
...
Asia\
Earth nav data\
...
```

**In this example you have to specify the "OrthoPackages" folder as a Scenery packages folder in the application. Keep in mind the "OrthoPackages" here is just for example it can be whatever folder you have. Don't put your scenery packages to the "X-Plane 12/Custom Scenery" - it has to be out of it somewhere on you PC**
- **Scenery packages** for the regions you fly: the terrain (the mesh) that OrthoStreamXP adds the photos to. Two ways to get them:
1. **Download a region in OrthoStreamXP**, during the setup or later on the **Packages** page (Europe, North America...). Nothing to prepare beforehand; see [Packages](packages.md).
2. **Use your own.** Packages made by Ortho4XP, OrthoStudio XP, AutoOrtho or XPME work. Each package is a folder that contains an `Earth nav data` folder. Put all of them in **one parent folder**, for example:

```
D:\OrthoPackages\
Europe\
Earth nav data\
terrain\
...
Asia\
Earth nav data\
...
```

**In this example you have to specify the "OrthoPackages" folder as a Scenery packages folder in the application. Keep in mind the "OrthoPackages" here is just for example it can be whatever folder you have. Don't put your scenery packages to the "X-Plane 12/Custom Scenery" - it has to be out of it somewhere on you PC**

- **WinFsp**, a free Windows driver that OrthoStreamXP uses to show the scenery to X-Plane.
- **An internet connection** for areas you have not flown yet.
Expand Down
44 changes: 44 additions & 0 deletions docs/packages.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Packages

[User guide](README.md) › Packages

OrthoStreamXP streams photos onto scenery packages: the ground's shape (the mesh) for each area. The quickest way to get them is to download the mesh of a whole region, on the **Packages** page or in the **Scenery packages** step of the setup. You can also use packages of your own, or both together.

![The Packages page, with Australia and the Pacific installed](images/packages.png)

The meshes are downloaded from a public collection on [GitHub](https://github.com/kubilus1/autoortho-scenery). Six regions are offered:

| Region | Package | Download (with roads, forests and buildings) |
|---|---|---|
| Europe | `OSXP_Eur` | about 16 GB |
| North America | `OSXP_NA` | about 25 GB |
| South America | `OSXP_SA` | about 9 GB |
| Africa | `OSXP_Afr` | about 12 GB |
| Asia | `OSXP_Asi` | about 33 GB |
| Australia and the Pacific | `OSXP_AusPac` | about 6 GB |

The page shows the exact sizes of the current release.

## Where they go

Each region is installed as a package of its own in your **scenery packages folder**, beside your own packages. If you download one during the setup and have not chosen a folder yet, it goes to `OrthoStreamXP\Base Packages` in your user folder, and that folder becomes your scenery packages folder.

Your own packages stay **above** the downloaded regions in X-Plane's scenery list. Where both cover the same area, X-Plane shows yours.

Leave about 1.7 times the download size free on the drive: the files take more room once they are unpacked.

## Roads, forests and buildings

A square of a downloaded mesh no longer shows X-Plane's own roads, forests and buildings. **Roads, forests and buildings** downloads them with each region, into one shared package, `OSXP_Overlays`. Turn it off if another package of yours already brings them. The choice applies to the next region you install or update.

## Downloading, stopping and resuming

![A region downloading](images/packages-downloading.png)

- **Install** starts the download. While one region downloads, the others wait: one install runs at a time. The progress and speed show under the region.
- **Stop** stops it. What was downloaded is kept: **Resume** continues from there, even after OrthoStreamXP was closed.
- A region is used from OrthoStreamXP's next start, and never half-installed: it appears in your packages folder only when all of it is there.
- When a newer release comes out, the region says **Update available**. Updating downloads it again in full.
- **Delete** removes the region and its roads, forests and buildings. Another region's stay.

You can install a new region while OrthoStreamXP runs. Updating or deleting a region needs OrthoStreamXP stopped, because X-Plane has its files open while it runs.
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ nav:
- flying.md
- settings.md
- cache.md
- packages.md
- troubleshooting.md
- Questions and answers: faq.md
- User guide (PDF): OrthoStreamXP-UserGuide.pdf
Expand Down
1 change: 1 addition & 0 deletions src/OrthoStreamXP/Gui/MainWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
<DataTemplate DataType="{x:Type gui:HomeViewModel}"><gui:HomeView /></DataTemplate>
<DataTemplate DataType="{x:Type gui:SettingsViewModel}"><gui:SettingsView /></DataTemplate>
<DataTemplate DataType="{x:Type gui:CacheViewModel}"><gui:CacheView /></DataTemplate>
<DataTemplate DataType="{x:Type gui:PackagesViewModel}"><gui:PackagesView /></DataTemplate>
<DataTemplate DataType="{x:Type gui:LogViewModel}"><gui:LogView /></DataTemplate>
<DataTemplate DataType="{x:Type gui:AboutViewModel}"><gui:AboutView /></DataTemplate>
<DataTemplate DataType="{x:Type gui:SetupViewModel}"><gui:SetupView /></DataTemplate>
Expand Down
18 changes: 18 additions & 0 deletions src/OrthoStreamXP/Gui/Packages/InstallSlot.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
namespace OrthoStreamXP.Gui;

/// <summary>
/// One install or delete of a mesh region at a time in the whole window: the Packages page and the setup's list of regions
/// each have their own rows, and both write into the same packages folder and the one shared overlays package.
/// </summary>
internal sealed class InstallSlot
{
private int _taken;

/// <summary>An install or a delete is running.</summary>
public bool Busy => Volatile.Read(ref _taken) == 1;

/// <summary>Takes the slot; false when another install or delete has it.</summary>
public bool TryTake() => Interlocked.CompareExchange(ref _taken, 1, 0) == 0;

public void Release() => Volatile.Write(ref _taken, 0);
}
Loading
Loading