First steps with XamlPlayer

Once the SDK is downloaded, one of the first things you can do is experimenting with XamlPlayer. XamlPlayer is a lightweight XAML viewer that can be used to quickly try something out. It is located inside the /Bin folder of the SDK.


XamlPlayer is implemented using the Application Framework. The source code is also included in the SDK.


To visualize a XAML file just simply drag and drop it to the window. We have included several samples inside the 'NoesisSDK/Data/' folder of the SDK. It is recommended that you test all of the provided samples to get an overview of the different features offered by NoesisGUI. For example, if you drag the file CarHud.xaml and drop it to the XamlPlayer window you should get the following:



You can zoom by doing CTRL + [mouse wheel], and CTRL + [mouse right button] for scrolling

The toolbar located to the left side provides the following debugging functionality:

  • Wireframe: toggles wireframe mode when rendering triangles.
  • Batches: each batch submitted to the GPU is given a unique solid color.
  • Overdraw: display pixel overdraw using blending layers. Different colors are used for each type of triangle: green for normal, red for opacities and blue for clipping masks.
  • PPAA: per-primitive Antialiasing extrudes the contours of the geometry and smooths them. Useful when GPU multisampling is not enabled.
  • Stats: display a performance stats panel.


Depending on the platform, the toolbar is activated by doing 'CTRL+T' on desktop, 'Options' button on consoles or 'left-swiping' for mobiles.

XamlPlayer also understands the following command line switches:

  • filename.xaml: to load a XAML at startup.
  • --render [D3D11|GL|Metal|...]: overrides the default renderer.
  • --vsync [0|1]: disables vertical synchronization.
  • --samples N: enables multisample anti-aliasing (MSAA), by default it is off.
  • --linear: for switching to linear rendering, by default rendering happens in gamma space.
  • --log_binding: to increase the verbosity of logging when using data binding.


For now, automatic hot-reloading is not implemented. You need to manually hit F5 to reload the content each time it changes.

© 2017 Noesis Technologies