To compare with AvaloniaUI, I decided to test the fallback renderer (isn't that what pixie is for?) in Windows Sandbox, but even with the
-d:useOpenGlEs (nim c -d:useOpenGlEs -d:release src/main.nim), the result was the same: when trying to open the application, a terminal window briefly appeared, and that was it. When running through PowerShell, it shows this error:
NOT 2025-05-19 19:54:04.064+04:00 Figuro tid=2756 configFile="C:\\Users\\WDAGUtilityAccount\\AppData\\Roaming\\figuro\\main.json" wglGetProcAddress failed to get wglCreateContextAttribsARB
This seems to be a related post: https://stackoverflow.com/questions/33685791/wglgetprocaddresswglcreatecontextattribsarb-sometimes-works-sometimes-retur
In Windows Sandbox, the only available graphics card is the Microsoft Remote Display Adapter (in regular Windows, it's the Microsoft Basic Display Adapter). It supports OpenGL 1.1.0 (GDI Generic) and DirectX via WARP (Feature Levels: 12_1, 12_0, 11_1, 11_0, 10_1, 10_0, 9_3, 9_2, 9_1), Driver Model: WDDM 1.3.
DirectX Caps Viewer

I used the following code on Nim 2.2.4:
import figuro/widgets/[button, scrollpane, vertical]
import figuro
let
font = UiFont(typefaceId: defaultTypeface(), size: 22)
type
Main* = ref object of Figuro
value: float
proc buttonItem(self, this: Figuro, idx: int) =
Button.new "button":
size 1'fr, 50'ux
fill rgba(66, 177, 44, 197).to(Color).spin(idx.toFloat*50)
if idx in [3, 7]:
size 0.9'fr, 120'ux
proc draw*(self: Main) {.slot.} =
withWidget(self):
with this:
fill css"#0000AA"
ScrollPane.new "scroll":
offset 2'pp, 2'pp
cornerRadius 7.0'ux
size 96'pp, 90'pp
Vertical.new "":
offset 10'ux, 10'ux
contentHeight cx"max-content"
for idx in 0 .. 15:
buttonItem(self, this, idx)
var main = Main.new()
var frame = newAppFrame(main, size=(600'ui, 480'ui))
startFiguro(frame)
DxDiag.txt
dxview.log
glewinfo.txt
visualinfo.txt
To compare with AvaloniaUI, I decided to test the fallback renderer (isn't that what pixie is for?) in Windows Sandbox, but even with the
-d:useOpenGlEs(nim c -d:useOpenGlEs -d:release src/main.nim), the result was the same: when trying to open the application, a terminal window briefly appeared, and that was it. When running through PowerShell, it shows this error:NOT 2025-05-19 19:54:04.064+04:00 Figuro tid=2756 configFile="C:\\Users\\WDAGUtilityAccount\\AppData\\Roaming\\figuro\\main.json" wglGetProcAddress failed to get wglCreateContextAttribsARBThis seems to be a related post: https://stackoverflow.com/questions/33685791/wglgetprocaddresswglcreatecontextattribsarb-sometimes-works-sometimes-retur
In Windows Sandbox, the only available graphics card is the Microsoft Remote Display Adapter (in regular Windows, it's the Microsoft Basic Display Adapter). It supports OpenGL 1.1.0 (GDI Generic) and DirectX via WARP (Feature Levels: 12_1, 12_0, 11_1, 11_0, 10_1, 10_0, 9_3, 9_2, 9_1), Driver Model: WDDM 1.3.
DirectX Caps Viewer
I used the following code on Nim 2.2.4:
DxDiag.txt
dxview.log
glewinfo.txt
visualinfo.txt