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
17 changes: 16 additions & 1 deletion docs/BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,19 @@ host beside the native files; the manifest activates that OCX for the host
process only. The launcher does not read, add, overwrite, or remove COM
registration.

Manual mode starts with a generated two-polygon layer. Use `Open` to select
vector datasets, or drag files onto the host. Each load adds an entry to the
layer list with its name, feature count, stable ID, and file path tooltip.
Only the first layer of each dataset is loaded. Available formats depend on
the GDAL drivers in the build.

Use `Clear` to remove all layers. `Zoom +` and `Zoom -` change the zoom,
`Map` fits all layers, and `Layer` fits the selected layer. The arrow
buttons pan by the `Pan units` value in dataset coordinates.
The status strip shows core initialization, total layer and feature counts,
the rendering backend, and rendering status or operation errors.
`Recreate` restores the startup layer, and `Repaint` requests a redraw.

```powershell
# Visible manual host. Close the window to release the control.
pwsh -File samples\CSharp\ActiveXTestHost\Run-ActiveXTestHost.ps1 -Configuration Debug -Platform x64
Expand All @@ -73,7 +86,9 @@ For Win32, use `-Platform Win32` after building the matching native binaries.
Automated checks need Windows and an interactive desktop session. The host
creates a temporary two-polygon GeoJSON dataset, loads it through the control,
and verifies visible polygon fills and the background gap after repaint and
control recreation. It can activate the OCX without a registration. The
control recreation. It also loads two layers, checks their IDs and feature
counts, zooms to each layer, pans, and clears the layers.
It can activate the OCX without a registration. The
separate native activation script above retains its own temporary
registration-based test.

Expand Down
20 changes: 19 additions & 1 deletion docs/TESTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,19 @@ manifest. It has a visible manual mode and an `--automated` mode that uses the
same host, resize, repaint, and dispose paths, with no COM registry changes.
The automated checks also run a GDAL raster conversion and check progress and
completion events, including operation IDs and progress arguments.

In manual mode, use `Open` or drag files onto the host to add vector
datasets. The layer list shows names, feature counts, stable IDs, and file
path tooltips. Each dataset contributes only its first layer.
The file formats available depend on the GDAL build.

Use `Clear` to remove all layers, `Zoom +` and `Zoom -` to change zoom,
`Map` to fit all layers, and `Layer` to fit the selected layer.
The arrow buttons pan by the `Pan units` value in dataset coordinates.
The status strip shows core initialization, layer and feature totals,
the rendering backend, and rendering status or operation errors.
`Recreate` restores the startup layer, and `Repaint` requests a redraw.

From an interactive Windows desktop session, run:

```powershell
Expand All @@ -48,7 +61,12 @@ visible window and runs the UI message loop, checks the `CoreInitialized`
automation property, loads a generated two-polygon GeoJSON dataset through the
control, resizes the host, samples rendered polygon and background pixels for
both the GDI preference and the default (OpenGL-first) path, recreates the
control, reloads the layer, and writes individual outcomes to
control, and reloads the layer. It calls the original `LoadVectorDataset`
method and reads `LayerLoaded` and the absolute `FeatureCount` on each fresh
control. It also loads two layers through `LoadVectorDatasetEx`, checks
their IDs and feature-count deltas, zooms to each, pans, and clears them.
It makes sure that navigation preserves the counts and that clearing removes
the layers from the control and the list. It writes individual outcomes to
`bin\Debug\x64\ActiveXTestHost-results.json`. Pixels are sampled from the host
window's own composed content (`PrintWindow` with `PW_RENDERFULLCONTENT`), not
from the screen, so another window on top or a lost foreground race does not
Expand Down
Loading