@@ -403,6 +403,7 @@ videoImportProgress: "video-import-progress"
403403
404404/** user-defined types **/
405405
406+ export type AllGpusInfo = { gpus : GpuInfoDiag [ ] ; primaryGpuIndex : number | null ; isMultiGpuSystem : boolean ; hasDiscreteGpu : boolean }
406407export type Annotation = { id : string ; type : AnnotationType ; x : number ; y : number ; width : number ; height : number ; strokeColor : string ; strokeWidth : number ; fillColor : string ; opacity : number ; rotation : number ; text : string | null ; maskType ?: MaskType | null ; maskLevel ?: number | null }
407408export type AnnotationType = "arrow" | "circle" | "rectangle" | "text" | "mask"
408409export type AppTheme = "system" | "light" | "dark"
@@ -476,6 +477,7 @@ quality: number | null;
476477 */
477478fast : boolean | null }
478479export type GlideDirection = "none" | "left" | "right" | "up" | "down"
480+ export type GpuInfoDiag = { vendor : string ; description : string ; dedicatedVideoMemoryMb : number ; adapterIndex : number ; isSoftwareAdapter : boolean ; isBasicRenderDriver : boolean ; supportsHardwareEncoding : boolean }
479481export type HapticPattern = "alignment" | "levelChange" | "generic"
480482export type HapticPerformanceTime = "default" | "now" | "drawCompleted"
481483export type Hotkey = { code : string ; meta : boolean ; ctrl : boolean ; alt : boolean ; shift : boolean }
@@ -489,7 +491,6 @@ export type JsonValue<T> = [T]
489491export type LogicalBounds = { position : LogicalPosition ; size : LogicalSize }
490492export type LogicalPosition = { x : number ; y : number }
491493export type LogicalSize = { width : number ; height : number }
492- export type MacOSVersionInfo = { major : number ; minor : number ; patch : number ; displayName : string ; buildNumber : string ; isAppleSilicon : boolean }
493494export type MainWindowRecordingStartBehaviour = "close" | "minimise"
494495export type MaskKeyframes = { position ?: MaskVectorKeyframe [ ] ; size ?: MaskVectorKeyframe [ ] ; intensity ?: MaskScalarKeyframe [ ] }
495496export type MaskKind = "sensitive" | "highlight"
@@ -533,6 +534,7 @@ export type RecordingStatus = "pending" | "recording"
533534export type RecordingStopped = null
534535export type RecordingTargetMode = "display" | "window" | "area" | "camera"
535536export type RenderFrameEvent = { frame_number : number ; fps : number ; resolution_base : XY < number > }
537+ export type RenderingStatus = { isUsingSoftwareRendering : boolean ; isUsingBasicRenderDriver : boolean ; hardwareEncodingAvailable : boolean ; warningMessage : string | null }
536538export type RequestOpenRecordingPicker = { target_mode : RecordingTargetMode | null }
537539export type RequestOpenSettings = { page : string }
538540export type RequestScreenCapturePrewarm = { force ?: boolean }
@@ -555,7 +557,7 @@ export type StartRecordingInputs = { capture_target: ScreenCaptureTarget; captur
555557export type StereoMode = "stereo" | "monoL" | "monoR"
556558export type StudioRecordingMeta = { segment : SingleSegment } | { inner : MultipleSegments }
557559export type StudioRecordingStatus = { status : "InProgress" } | { status : "NeedsRemux" } | { status : "Failed" ; error : string } | { status : "Complete" }
558- export type SystemDiagnostics = { macosVersion : MacOSVersionInfo | null ; availableEncoders : string [ ] ; screenCaptureSupported : boolean ; metalSupported : boolean ; gpuName : string | null }
560+ export type SystemDiagnostics = { windowsVersion : WindowsVersionInfo | null ; gpuInfo : GpuInfoDiag | null ; allGpus : AllGpusInfo | null ; renderingStatus : RenderingStatus ; availableEncoders : string [ ] ; graphicsCaptureSupported : boolean ; d3D11VideoProcessorAvailable : boolean }
559561export type TargetUnderCursor = { display_id : DisplayId | null ; window : WindowUnderCursor | null }
560562export type TextSegment = { start : number ; end : number ; enabled ?: boolean ; content ?: string ; center ?: XY < number > ; size ?: XY < number > ; fontFamily ?: string ; fontSize ?: number ; fontWeight ?: number ; italic ?: boolean ; color ?: string ; fadeDuration ?: number }
561563export type TimelineConfiguration = { segments : TimelineSegment [ ] ; zoomSegments : ZoomSegment [ ] ; sceneSegments ?: SceneSegment [ ] ; maskSegments ?: MaskSegment [ ] ; textSegments ?: TextSegment [ ] }
@@ -574,6 +576,7 @@ export type WindowExclusion = { bundleIdentifier?: string | null; ownerName?: st
574576export type WindowId = string
575577export type WindowPosition = { x : number ; y : number ; displayId ?: DisplayId | null }
576578export type WindowUnderCursor = { id : WindowId ; app_name : string ; bounds : LogicalBounds }
579+ export type WindowsVersionInfo = { major : number ; minor : number ; build : number ; displayName : string ; meetsRequirements : boolean ; isWindows11 : boolean }
577580export type XY < T > = { x : T ; y : T }
578581export type ZoomMode = "auto" | { manual : { x : number ; y : number } }
579582export type ZoomSegment = { start : number ; end : number ; amount : number ; mode : ZoomMode ; glideDirection ?: GlideDirection ; glideSpeed ?: number ; instantAnimation ?: boolean ; edgeSnapRatio ?: number }
0 commit comments