49 lines
2.3 KiB
PowerShell
49 lines
2.3 KiB
PowerShell
Add-Type -AssemblyName PresentationFramework, PresentationCore, WindowsBase
|
|
|
|
$binDir = "D:\workspace\Everything2Everthing\src\Everything2Everything.App\bin\Debug\net9.0-windows10.0.19041.0"
|
|
[System.Reflection.Assembly]::LoadFrom((Join-Path $binDir "Everything2Everything.Core.dll")) | Out-Null
|
|
[System.Reflection.Assembly]::LoadFrom((Join-Path $binDir "Everything2Everything.dll")) | Out-Null
|
|
|
|
$testAssets = "D:\workspace\Everything2Everthing\test_assets"
|
|
$testFiles = @(Join-Path $testAssets "test_icon.png", Join-Path $testAssets "test_art.png")
|
|
|
|
$thread = New-Object System.Threading.Thread([System.Threading.ThreadStart]{
|
|
try {
|
|
if ($null -eq [System.Windows.Application]::Current) {
|
|
$app = New-Object System.Windows.Application
|
|
}
|
|
|
|
$engine = [Everything2Everything.Core.Everything2EverythingBootstrap]::CreateDefault()
|
|
|
|
# Simple settings store via dynamic object or reflection
|
|
$settingsType = [System.Type]::GetType("Everything2Everything.Core.ISettingsStore, Everything2Everything.Core")
|
|
# Use existing memory settings store if available
|
|
$servicesField = $engine.GetType().GetProperty("Providers")
|
|
$store = New-Object Everything2Everything.Core.Settings.MemorySettingsStore
|
|
|
|
$win = New-Object Everything2Everything.App.Views.MainWindow($engine, $store, [string[]]$testFiles)
|
|
|
|
$size = New-Object System.Windows.Size(1280, 960)
|
|
$win.Measure($size)
|
|
$win.Arrange((New-Object System.Windows.Rect(0, 0, 1280, 960)))
|
|
$win.UpdateLayout()
|
|
|
|
$rtb = New-Object System.Windows.Media.Imaging.RenderTargetBitmap(1280, 960, 96, 96, [System.Windows.Media.PixelFormats]::Pbgra32)
|
|
$rtb.Render($win)
|
|
|
|
$encoder = New-Object System.Windows.Media.Imaging.PngBitmapEncoder
|
|
$encoder.Frames.Add([System.Windows.Media.Imaging.BitmapFrame]::Create($rtb))
|
|
|
|
$outPath = "C:\Users\encep\.gemini\antigravity\brain\a5abaf02-dd4b-45f7-8890-144e9da36bcc\app_rendered_preview.png"
|
|
$fs = [System.IO.File]::OpenWrite($outPath)
|
|
$encoder.Save($fs)
|
|
$fs.Close()
|
|
Write-Host "RENDER_SUCCESS: $outPath"
|
|
} catch {
|
|
Write-Error $_.Exception.ToString()
|
|
}
|
|
})
|
|
|
|
$thread.SetApartmentState([System.Threading.ApartmentState]::STA)
|
|
$thread.Start()
|
|
$thread.Join()
|