This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
CapFrameX is a Windows desktop application for frametime capture and analysis, built on Intel's PresentMon. It provides an overlay via Rivatuner Statistics Server (RTSS) and is used for gaming performance benchmarking.
- Visual Studio 2022
- WiX Toolset v3.14.1 with VS 2022 Extension
- C++ MFC build tools
- FrameView SDK (installer at
installers/FVSDKSetup.exe)
nuget restore CapFrameX.sln
msbuild source\CapFrameX\CapFrameX.csproj /p:Configuration=Release /p:Platform=x64 /p:VisualStudioVersion=17.0msbuild source\CapFrameX.Hwinfo\CapFrameX.Hwinfo.vcxproj /p:SolutionDir=%CD%\ /p:Configuration=Release /p:Platform=x64 /p:VisualStudioVersion=17.0
msbuild source\CapFrameX.IGCL\CapFrameX.IGCL.vcxproj /p:SolutionDir=%CD%\ /p:Configuration=Release /p:Platform=x64 /p:VisualStudioVersion=17.0
msbuild source\CapFrameX.ADLX\CapFrameX.ADLX.vcxproj /p:SolutionDir=%CD%\ /p:Configuration=Release /p:Platform=x64 /p:VisualStudioVersion=17.0
msbuild source\CapFrameX.FrameView\CapFrameX.FrameView.vcxproj /p:SolutionDir=%CD%\ /p:Configuration=Release /p:Platform=x64 /p:VisualStudioVersion=17.0msbuild source\CapFrameXInstaller\CapFrameXInstaller.wixproj /p:SolutionDir=%CD%\ /p:Configuration=Release /p:Platform=x64
msbuild source\CapFrameXBootstrapper\CapFrameXBootstrapper.wixproj /p:SolutionDir=%CD%\ /p:Configuration=Release /p:Platform=x64Tests use MSTest framework:
vstest.console source\CapFrameX.Test\bin\x64\Release\CapFrameX.Test.dllThe solution (CapFrameX.sln) contains ~40 projects mixing C# (.NET Framework 4.7.2 / .NET Standard / .NET Core 3.1) and C++ native code.
UI Layer (WPF + MVVM)
CapFrameX- Main shell application, entry point, DI container setup (DryIoc)CapFrameX.View- XAML views and UI controlsCapFrameX.ViewModel- ViewModels for all views (30+ view models)CapFrameX.MVVM- MVVM infrastructure and base classes
Core Services
CapFrameX.PresentMonInterface- Wrapper around Intel PresentMon for frametime captureCapFrameX.Capture.Contracts- Capture service interfacesCapFrameX.Statistics.NetStandard- Statistical calculations (percentiles, averages)CapFrameX.Statistics.PlotBuilder- Chart data generationCapFrameX.Overlay- Overlay managementCapFrameX.Sensor/CapFrameX.Sensor.Reporting- Hardware sensor data collection
Data Layer
CapFrameX.Data- File I/O, record management (JSON/CSV capture files)CapFrameX.Data.Session- Session state managementCapFrameX.Configuration- AppSettings.json handlingCapFrameX.Contracts- Interface definitions
Native Interop (C++ DLLs)
CapFrameX.RTSSInterface- Rivatuner Statistics Server integrationCapFrameX.Hwinfo- HWInfo64 sensor integrationCapFrameX.IGCL- Intel Graphics Control LibraryCapFrameX.ADLX- AMD Display LibraryCapFrameX.FrameView- Intel FrameView SDK
Webservice (ASP.NET Core 3.1)
CapFrameX.Webservice.Host- API hostCapFrameX.Webservice.Implementation- Business logicCapFrameX.Webservice.Data- Entity Framework Core modelsCapFrameX.Webservice.Persistance- Data persistence
Charting
CapFrameX.Charts/Core40- Core charting engineCapFrameX.Charts/OxyPlot- OxyPlot libraryCapFrameX.Charts/WpfView- WPF chart controls
- Prism 7.0 (MVVM framework)
- DryIoc (IoC container)
- MahApps.Metro + MaterialDesign (UI styling)
- System.Reactive (Rx)
- OxyPlot (charting)
- Serilog (logging)
- Platform: x64 (primary), x86 supported
- Main output:
source\CapFrameX\bin\x64\Release\ - Installer output:
source\CapFrameXBootstrapper\bin\x64\Release\CapFrameXBootstrapper.exe
- User settings:
%appdata%/CapFrameX/Configuration/AppSettings.json - Overlay config:
%appdata%/CapFrameX/Configuration/OverlayEntryConfiguration_(0/1/2).json - Version:
version/Version.txt
If package conflicts occur, run in Package Manager Console:
Update-Package -reinstall