core.exe can be invoked either via the GamesManager or directly via the command line. For ease of debugging command line parameters can also be placed in a params.txt file in the MGDF root directory (the contents of this file will have preference over anything specified on the command line)
host.vr. The module must set MGDFGraphicsRequirements::VR to TRUE. See the VR guide.GamesManager.exe run without any arguments will check for updates and launch the game in its /game folder. However it also has a couple of arguments which can be useful to run as part of a games installer such as NSIS
PackageGen.exe is a tool supplied in the SDK (Found in the Bin folder of the SDK) and allows you to create MGDF game packages or create a game update package based upon the difference between two existing game packages. Packages created by this tool can then be posted for download by the GamesManager as updates. Full game packages are simply a zip file containing the contents of the /game folder. Game update packages are similar, though they include an extra update.json file which specifies which old files should be removed before installing, and only includes files which have changed since the last full package was installed - as such they typically result in smaller download sizes.
Usage
PackageGen "framework /game folder" -o "game package file"
Creates a new installer package from a directory.
PackageGen -u "older game package file" "newer game package file" -o "game update package file"
Creates a new update installer package that contains the differences between the old version to the new one.
Creating installer package
Creating install package c:\users\glenn\desktop\game.zip ...........
Validating installer package c:\users\glenn\desktop\game.zip
Installer package created
Version: 0.1
MD5: bd226dd32804d683348e2708b7288087
The game.json file is where all configuration and default preferences for a game is stored. The full schema for a game.json file is as follows
{
"gameUid":"a unique id",
"gameName":"A human readable name",
"version":"0.1",
"interfaceVersion":"1",
"developerName":"Human readable developer name",
"homepage":"https://www.example.com",
"supportType":"S3",
"supportUrl":"https://www.example.com/api/crashes",
"updateService":"https://www.example.com/api/updates",
"statisticsService":"https://www.example.com/api/statistics",
"statisticsPrivacyPolicy":"https://www.example.com/privacy",
"preferences":{
"key":"value"
}
}MGDFGraphicsRequirements::VR. Use SetVR on IMGDFPendingRenderSettingsChange to change this setting. If a headset session cannot start, the game continues in the window and keeps the saved preference. See the VR guide.GetLowLatencyMode on IMGDFRenderSettingsManager does not list the mode. Defaults to "1"GetMaxGeneratedFrames on IMGDFRenderSettingsManager. Defaults to "0"GetRayTracingSupport on IMGDFRenderSettingsManager returns FALSE. The host does nothing else with it; the module reads it with GetRayTracing. Defaults to "1"The game update manifest file is a json file whose url is specified in the updateservice property of the game.json file. This file is used to determine if updates to a game are available. The framework will request the manifest using the updateservice url (and append the gameUid as a querystring parameter). the The full schema for an update manifest file is shown below.
NOTE The GamesManager supports downloading game updates from urls that use http authentication (either basic or digest) if you want to restrict download access to paid users. The GamesManager will pop up a username/password prompt in this case before the update will proceed.
{
"framework": {
"version": "0.11.22",
"url": "https://s3.matchstickframework.org/MGDF_0.11.22_x64.zip",
"md5": "be4573e2058fa6106093443e6c7857d1"
},
"latest": {
"version": "0.2.4",
"url": "https://www.example.com/game_0.2.4.zip",
"md5": "8059891b6663315a72a954c282a963c8"
},
"updateOlderVersions": [
{
"url": "https://www.example.com/game_0.2.4_update.zip",
"md5": "eac5db79ad1fa8f61d20283fef37ad33",
"fromVersion": "0.2.2",
"toVersion": "0.2.3"
}
]
}The MGDF statistics service works by having the GamesManager upload lists of statistics (created by calls to IMGDFStatisticsManager inside a running game) to a restful json web service endpoint specified in a games game.json file. In order to use this feature you will need to implement a compatible web service that implements the methods shown below.
Sample HTTP request to https://example.com/statistics (Note the statisticsservice url in game.json would be https://example.com/statistics in this case)
POST https://example.com/statistics HTTP/1.1
Content-Type: application/json; charset=utf-8
Host: example.com
Content-Length: 146
{"gameUid":"blah","sessionId":"xxxx","statistics":[{"timestamp":0,"name":"key1","value":"value1"},{"timestamp":1,"name":"key2","value":"value2"}]}
Sample HTTP response
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 29
{"errors":[], "success":true}
The MGDF S3 crash reporting service works in two steps, first by calling the supportUrl endpoing with crash metadata (see below). The service should then respond with a presigned S3 URL that the framework will then issue an HTTP Put for to upload a crash report zip file into. In order to use this feature you must have an AWS account with an S3 bucket set up & have supportType set to "S3" in your game.json file. You will also need to implement a compatible web service that implements the contract shown below.
Sample HTTP request to https://example.com/crashes (Note the supportUrl url in game.json would be https://example.com/crashes in this case)
POST https://example.com/crashes HTTP/1.1
Content-Type: application/json; charset=utf-8
Host: example.com
Content-Length: 146
{"detail": "Exception thrown", "gameUid":"blah", "gameVersion":"1.2.3.4", "frameworkVersion":"1.2.3.4"}
Sample HTTP response
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 29
{"errors":[], "success":true, "uploadUrl":"https://s3.amazonaws.com/yourbucket/crash.zip"}
There are a number of entrypoint functions which can be exported by a module which are used by the host to create the module instance and to query the requirements of the module.
HRESULT
GetGraphicsRequirements
(
MGDFGraphicsRequirements *
requirements
)
HRESULT
GetCustomArchiveHandlers
(
IMGDFArchiveHandler **
list
,
UINT64 *
length
,
IMGDFLogger *
logger
)
HRESULT
GetModule
(
IMGDFModule **
module
)
Use IMGDFSimHost on the simulation thread and IMGDFRenderHost on the render thread. Both inherit IMGDFCommonHost, which provides the D3D12 device and queues. Get the other interfaces through these hosts. See the VR guide for headset rendering and input.
BOOL
TestPathSegment
(
const MGDFArchivePathSegment *
segment
)
BOOL
MapArchive
(
const wchar_t *
rootPath
,
const wchar_t *
archivePath
,
const MGDFArchivePathSegment *
logicalPathSegments
,
UINT64
logicalPathSegmentCount
,
IMGDFArchiveHandler **
handlers
,
UINT64
handlerCount
,
IMGDFReadOnlyFile *
parent
,
IMGDFReadOnlyFile **
file
)
void
FatalError
(
const small *
sender
,
const small *
message
)
void
GetRenderSettings
(
IMGDFRenderSettingsManager * *
settings
)
void
GetTimer
(
IMGDFTimer * *
timer
)
const MGDFVersion *
GetMGDFVersion
(
)
void
GetVFS
(
IMGDFReadOnlyVirtualFileSystem * *
vfs
)
void
GetWorkingVFS
(
IMGDFWriteableVirtualFileSystem * *
vfs
)
void
GetDebug
(
IMGDFDebug * *
debug
)
HRESULT
CreateCPUCounter
(
IMGDFMetric *
metric
,
IMGDFPerformanceCounter * *
counter
)
HRESULT
CreateCounterMetric
(
const small *
name
,
const small *
description
,
IMGDFMetric **
metric
)
HRESULT
CreateGaugeMetric
(
const small *
name
,
const small *
description
,
IMGDFMetric **
metric
)
HRESULT
CreateHistogramMetric
(
const small *
name
,
const small *
description
,
const double *
buckets
,
const UINT64
bucketCount
,
IMGDFMetric **
metric
)
void
QueueDeviceReset
(
)
void
GetD3D12Device
(
ID3D12Device10 **
device
)
void
GetDirectQueue
(
ID3D12CommandQueue **
queue
)
void
GetComputeQueue
(
ID3D12CommandQueue **
queue
)
void
GetCopyQueue
(
ID3D12CommandQueue **
queue
)
HRESULT
GetUpscaleRenderSize
(
MGDFUpscaleMode
mode
,
UINT32
displayWidth
,
UINT32
displayHeight
,
MGDFUpscaleRenderSize *
size
)
void
Set
(
const small *
section
,
const small *
key
,
const small *
value
)
void
Clear
(
const small *
section
,
const small *
key
)
HRESULT
GetOverlaySnapshot
(
IMGDFDebugOverlaySnapshot * *
snapshot
)
const MGDFDebugOverlayData *
GetData
(
)
UINT64
GetChildCount
(
)
BOOL
IsFolder
(
)
BOOL
IsOpen
(
)
HRESULT
Open
(
IMGDFFileReader * *
reader
)
UINT64
GetLastWriteTime
(
)
HRESULT
GetPhysicalName
(
wchar_t *
name
,
UINT64 *
length
)
HRESULT
GetPhysicalPath
(
wchar_t *
name
,
UINT64 *
length
)
HRESULT
GetLogicalName
(
wchar_t *
name
,
UINT64 *
length
)
HRESULT
GetLogicalPath
(
wchar_t *
name
,
UINT64 *
length
)
UINT32
Read
(
void *
buffer
,
UINT32
length
)
void
SetPosition
(
INT64
pos
)
INT64
GetPosition
(
)
BOOL
EndOfFile
(
)
INT64
GetSize
(
)
UINT32
Write
(
void *
buffer
,
UINT32
length
)
void
SetPosition
(
INT64
pos
)
INT64
GetPosition
(
)
const small *
GetName
(
)
const small *
GetUid
(
)
void
GetVersion
(
MGDFVersion *
version
)
BOOL
HasPreference
(
const small *
name
)
HRESULT
GetPreference
(
const small *
name
,
small *
value
,
UINT64 *
length
)
void
SetPreference
(
const small *
name
,
const small *
value
)
void
SetPreferences
(
IMGDFPreferenceSet *
preferences
)
void
SavePreferences
(
)
void
ResetPreferences
(
)
BOOL
IsConnected
(
)
BOOL
IsButtonDown
(
MGDFGamepadButton
button
)
BOOL
IsButtonUp
(
MGDFGamepadButton
button
)
BOOL
IsButtonPress
(
MGDFGamepadButton
button
)
UINT8
GetLeftTrigger
(
)
UINT8
GetRightTrigger
(
)
INT32
GetLeftThumbX
(
)
INT32
GetLeftThumbY
(
)
INT32
GetRightThumbX
(
)
INT32
GetRightThumbY
(
)
void
SetVibrationSpeed
(
UINT16
left
,
UINT16
right
)
HRESULT
GetMetadata
(
const small *
key
,
small *
value
,
UINT64 *
length
)
HRESULT
SetMetadata
(
const small *
key
,
const small *
value
)
BOOL
IsNew
(
)
void
GetVersion
(
MGDFVersion *
version
)
HRESULT
GetVFS
(
IMGDFReadOnlyVirtualFileSystem * *
vfs
)
HRESULT
BeginSave
(
IMGDFWriteableVirtualFileSystem * *
pending
,
IMGDFReadOnlyVirtualFileSystem * *
previous
)
IMGDFHttpClientRequest *
SetRequestHeader
(
const small *
name
,
const small *
value
)
IMGDFHttpClientRequest *
SetRequestMethod
(
const small *
method
)
IMGDFHttpClientRequest *
SetRequestBody
(
const small *
body
,
UINT64
bodyLength
)
void
CancelRequest
(
)
void *
SendRequest
(
IMGDFHttpClientRequestGroup *
group
)
BOOL
GetResponse
(
IMGDFHttpClientResponse * *
response
)
void *
GetResponse
(
IMGDFHttpClientResponse * *
response
)
INT32
GetResponseCode
(
)
HRESULT
GetResponseHeader
(
const small *
name
,
small *
value
,
UINT64 *
length
)
HRESULT
GetResponseError
(
small *
error
,
UINT64 *
length
)
HRESULT
GetResponseBody
(
small *
body
,
UINT64 *
length
)
HRESULT
GetRequestHeader
(
const small *
name
,
small *
value
,
UINT64 *
length
)
HRESULT
GetRequestMethod
(
small *
method
,
UINT64 *
length
)
HRESULT
GetRequestPath
(
small *
path
,
UINT64 *
length
)
HRESULT
GetRequestBody
(
small *
body
,
UINT64 *
length
)
IMGDFHttpServerRequest *
SetResponseHeader
(
const small *
name
,
const small *
value
)
IMGDFHttpServerRequest *
SetResponseBody
(
const small *
body
,
UINT64
bodyLength
)
IMGDFHttpServerRequest *
SetResponseCode
(
INT32
code
)
void
SendResponse
(
)
UINT64
GetVRControllerCount
(
)
void
GetVRControllers
(
IMGDFVRController **
controllers
)
BOOL
GetVRGaze
(
MGDFVRPose *
pose
)
void
ShowCursor
(
BOOL
show
)
void
SetCursorShape
(
MGDFCursor
cursor
)
BOOL
IsKeyDown
(
UINT16
key
)
BOOL
IsKeyUp
(
UINT16
key
)
BOOL
IsKeyPress
(
UINT16
key
)
INT32
GetMouseX
(
)
INT32
GetMouseY
(
)
INT32
GetMouseDX
(
)
INT32
GetMouseDY
(
)
short
GetMouseDZ
(
)
BOOL
IsButtonDown
(
MGDFMouse
mouseButton
)
BOOL
IsButtonUp
(
MGDFMouse
mouseButton
)
BOOL
IsButtonClicked
(
MGDFMouse
mouseButton
)
UINT64
GetGamepadCount
(
)
void
GetGamepads
(
IMGDFGamepad * *
gamepads
)
void
SetLoggingLevel
(
MGDFLogLevel
level
)
MGDFLogLevel
GetLoggingLevel
(
)
void
Log
(
const small *
sender
,
const small *
message
,
MGDFLogLevel
level
)
void
Record
(
double
value
,
const MGDFTags *
tags
)
BOOL
STNew
(
IMGDFSimHost *
host
)
BOOL
STUpdate
(
IMGDFSimHost *
host
,
double
elapsedTime
)
void
STShutDown
(
IMGDFSimHost *
host
)
BOOL
RTBeforeFirstDraw
(
IMGDFRenderHost *
host
)
BOOL
RTDraw
(
IMGDFRenderHost *
host
,
double
alpha
)
void
RTAfterPresent
(
IMGDFRenderHost *
host
)
BOOL
RTBeforeBackBufferChange
(
IMGDFRenderHost *
host
)
BOOL
RTBackBufferChange
(
IMGDFRenderHost *
host
)
BOOL
RTBeforeDeviceReset
(
IMGDFRenderHost *
host
)
BOOL
RTDeviceReset
(
IMGDFRenderHost *
host
)
void
RTShutDown
(
IMGDFRenderHost *
host
)
void
Panic
(
)
void
SetMaxFrameLatency
(
UINT32
frames
)
void
SetVSync
(
BOOL
vsync
)
void
SetFullscreen
(
const MGDFFullScreenDesc *
fullscreen
)
BOOL
SetCurrentPrimaryDisplayMode
(
const MGDFDisplayMode *
mode
)
void
SetWindowSize
(
UINT32
width
,
UINT32
height
)
void
SetHDREnabled
(
BOOL
enabled
)
void
Cancel
(
)
void
SetWindowAspectLock
(
BOOL
enabled
)
BOOL
SetLowLatencyMode
(
MGDFLowLatencyMode
mode
)
BOOL
SetFrameGeneration
(
UINT32
generatedFrames
)
BOOL
SetRayTracing
(
BOOL
enabled
)
BOOL
SetVR
(
BOOL
enabled
)
void
GetMetric
(
IMGDFMetric * *
metric
)
HRESULT
Begin
(
const MGDFTags *
tags
,
IMGDFPerformanceCounterScope **
scope
)
double
GetAverageValue
(
)
BOOL
GetParent
(
IMGDFReadOnlyFile * *
parent
)
BOOL
GetChild
(
const wchar_t *
name
,
IMGDFReadOnlyFile **
child
)
HRESULT
GetAllChildren
(
IMGDFReadOnlyFile * *
buffer
,
UINT64 *
length
)
BOOL
IsArchive
(
)
HRESULT
CopyTo
(
IMGDFWriteableFile *
destination
)
BOOL
GetFile
(
const wchar_t *
logicalPath
,
IMGDFReadOnlyFile **
file
)
void
GetRoot
(
IMGDFReadOnlyFile * *
root
)
void
GetBackBufferInfo
(
MGDFBackBufferInfo *
info
)
HRESULT
SetHDRMetadata
(
const MGDFHDRMetadata *
metadata
)
HRESULT
GetVRFrame
(
MGDFVRFrame *
frame
)
HRESULT
GetVREyeMask
(
UINT32
index
,
UINT32 *
vertexCount
,
FLOAT *
xy
,
UINT32 *
indexCount
,
UINT32 *
indices
)
HRESULT
SetVREyeDepthRange
(
UINT32
index
,
FLOAT
nearZ
,
FLOAT
farZ
)
HRESULT
SetVRPanel
(
const MGDFVRPanel *
panel
)
HRESULT
GetVREyeTarget
(
UINT32
index
,
ID3D12Resource **
target
)
HRESULT
GetVREyeDepthTarget
(
UINT32
index
,
ID3D12Resource **
target
)
HRESULT
GetVRPanelTarget
(
ID3D12Resource **
target
)
void
GetCurrentFrame
(
MGDFFrameInfo *
frame
)
void
GetFrameFence
(
ID3D12Fence **
fence
)
HRESULT
CreateGPUCounter
(
IMGDFMetric *
metric
,
ID3D12GraphicsCommandList *
list
,
IMGDFPerformanceCounter **
counter
)
void
SetFrameMarker
(
MGDFFrameMarker
marker
)
void
SetFrameConstants
(
const MGDFFrameConstants *
constants
)
HRESULT
Upscale
(
ID3D12GraphicsCommandList *
list
,
const MGDFUpscaleDesc *
desc
)
HRESULT
SetFrameGenerationInputs
(
const MGDFFrameGenerationDesc *
desc
)
DXGI_FORMAT
GetSDRBackBufferFormat
(
)
DXGI_FORMAT
GetHDRBackBufferFormat
(
)
UINT32
GetMaxFrameLatency
(
)
BOOL
GetVSync
(
)
void
GetFullscreen
(
MGDFFullScreenDesc *
fullscreen
)
UINT64
GetPrimaryDisplayModeCount
(
)
BOOL
GetPrimaryDisplayMode
(
UINT64
index
,
MGDFDisplayMode *
mode
)
void
GetPrimaryDisplayModes
(
MGDFDisplayMode * *
modes
)
BOOL
GetPrimaryDisplayModeFromDimensions
(
UINT32
width
,
UINT32
height
,
MGDFDisplayMode *
mode
)
BOOL
GetNativePrimaryDisplayMode
(
MGDFDisplayMode *
mode
)
MGDFDisplayMode *
GetCurrentPrimaryDisplayMode
(
MGDFDisplayMode *
mode
)
UINT32
GetScreenX
(
)
UINT32
GetScreenY
(
)
BOOL
GetHDREnabled
(
)
void
GetCurrentOutputDisplayInfo
(
MGDFOutputDisplayInfo *
info
)
UINT
GetCurrentOutputDPI
(
)
void
CreatePendingSettingsChange
(
IMGDFPendingRenderSettingsChange * *
changeset
)
void
GetPreferences
(
IMGDFPreferenceSet * *
preferences
)
BOOL
GetWindowAspectLock
(
)
BOOL
GetWindowResizeEnabled
(
)
BOOL
GetWindowSizeLimits
(
UINT32 *
width
,
UINT32 *
height
)
UINT64
GetUpscaleModeCount
(
)
BOOL
GetUpscaleMode
(
UINT64
index
,
MGDFUpscaleMode *
mode
)
UINT32
GetMaxGeneratedFrames
(
)
UINT64
GetLowLatencyModeCount
(
)
BOOL
GetLowLatencyMode
(
UINT64
index
,
MGDFLowLatencyMode *
mode
)
MGDFLowLatencyMode
GetCurrentLowLatencyMode
(
)
UINT32
GetFrameGeneration
(
)
BOOL
GetRayTracingSupport
(
MGDFRayTracingSupport *
support
)
BOOL
GetRayTracing
(
)
BOOL
GetVRSupport
(
)
BOOL
GetVR
(
)
UINT64
GetSaveCount
(
)
HRESULT
GetSave
(
UINT64
index
,
IMGDFGameState * *
save
)
HRESULT
DeleteSave
(
IMGDFGameState *
state
)
void
CreateGameState
(
IMGDFGameState * *
save
)
void
GetSaves
(
IMGDFSaveManager * *
save
)
void
GetGame
(
IMGDFGame * *
game
)
void
GetSound
(
IMGDFSoundManager * *
sound
)
void
GetStatistics
(
IMGDFStatisticsManager * *
statistics
)
void
GetInput
(
IMGDFInputManager * *
input
)
void
ShutDown
(
)
void
QueueShutDown
(
)
HRESULT
CreateHttpRequest
(
const small *
url
,
IMGDFHttpClientRequest * *
request
)
HRESULT
CreateHttpRequestGroup
(
IMGDFHttpClientRequestGroup * *
group
)
HRESULT
CreateWebSocket
(
const small *
url
,
IMGDFWebSocket **
socket
)
HRESULT
CreateWebServer
(
unsigned int
port
,
const small *
websocketPath
,
IMGDFWebServer **
server
)
HRESULT
GetName
(
wchar_t *
name
,
UINT64 *
length
)
MGDFSoundPosition *
GetPosition
(
MGDFSoundPosition *
position
)
MGDFSoundPosition *
GetVelocity
(
MGDFSoundPosition *
velocity
)
MGDFSoundPosition *
SetPosition
(
MGDFSoundPosition *
position
)
MGDFSoundPosition *
SetVelocity
(
MGDFSoundPosition *
velocity
)
float
GetInnerRange
(
)
void
SetInnerRange
(
float
innerRange
)
float
GetOuterRange
(
)
void
SetOuterRange
(
float
outerRange
)
BOOL
GetSourceRelative
(
)
void
SetSourceRelative
(
BOOL
sourceRelative
)
float
GetVolume
(
)
void
SetVolume
(
float
volume
)
float
GetPitch
(
)
void
SetPitch
(
float
pitch
)
void
SetPriority
(
INT32
priority
)
INT32
GetPriority
(
)
BOOL
GetLooping
(
)
void
SetLooping
(
BOOL
looping
)
void
Stop
(
)
void
Pause
(
)
void
Play
(
)
BOOL
IsStopped
(
)
BOOL
IsPaused
(
)
BOOL
IsPlaying
(
)
BOOL
IsActive
(
)
MGDFSoundPosition *
GetListenerPosition
(
MGDFSoundPosition *
listener
)
MGDFSoundPosition *
GetListenerVelocity
(
MGDFSoundPosition *
velocity
)
MGDFSoundPosition *
GetListenerOrientationForward
(
MGDFSoundPosition *
orientationForward
)
MGDFSoundPosition *
GetListenerOrientationUp
(
MGDFSoundPosition *
orientationUp
)
MGDFSoundPosition *
SetListenerPosition
(
MGDFSoundPosition *
listener
)
MGDFSoundPosition *
SetListenerVelocity
(
MGDFSoundPosition *
velocity
)
MGDFSoundPosition *
SetListenerOrientationForward
(
MGDFSoundPosition *
orientationForward
)
MGDFSoundPosition *
SetListenerOrientationUp
(
MGDFSoundPosition *
orientationUp
)
float
GetSoundVolume
(
)
void
SetSoundVolume
(
float
volume
)
float
GetStreamVolume
(
)
void
SetStreamVolume
(
float
volume
)
BOOL
GetEnableAttenuation
(
)
void
SetEnableAttenuation
(
BOOL
enableAttenuation
)
float
GetDopplerShiftFactor
(
)
void
SetDopplerShiftFactor
(
float
dopplerShiftFactor
)
float
GetSpeedOfSound
(
)
void
SetSpeedOfSound
(
float
speedOfSound
)
HRESULT
CreateSound
(
IMGDFReadOnlyFile *
file
,
INT32
priority
,
IMGDFSound * *
sound
)
HRESULT
CreateSoundStream
(
IMGDFReadOnlyFile *
file
,
IMGDFSoundStream * *
stream
)
void
GetPreferences
(
IMGDFPreferenceSet * *
preferences
)
HRESULT
GetName
(
wchar_t *
name
,
UINT64 *
length
)
float
GetVolume
(
)
void
SetVolume
(
float
volume
)
UINT32
GetPosition
(
)
UINT32
GetLength
(
)
void
Stop
(
)
void
Pause
(
)
HRESULT
Play
(
)
BOOL
IsStopped
(
)
BOOL
IsPaused
(
)
BOOL
IsPlaying
(
)
void
PushString
(
const small *
name
,
const small *
value
,
const MGDFTags *
tags
)
void
PushMetric
(
IMGDFMetric *
metric
)
LARGE_INTEGER
GetCurrentTimeTicks
(
)
LARGE_INTEGER
GetTimerFrequency
(
)
double
ConvertDifferenceToSeconds
(
LARGE_INTEGER
newTime
,
LARGE_INTEGER
oldTime
)
MGDFVRHand
GetHand
(
)
BOOL
IsConnected
(
)
MGDFVRControllerProfile
GetProfile
(
)
BOOL
IsButtonDown
(
MGDFVRButton
button
)
BOOL
IsButtonUp
(
MGDFVRButton
button
)
BOOL
IsButtonPress
(
MGDFVRButton
button
)
BOOL
IsTouched
(
MGDFVRTouch
touch
)
FLOAT
GetTrigger
(
)
FLOAT
GetSqueeze
(
)
FLOAT
GetThumbX
(
)
FLOAT
GetThumbY
(
)
void
GetGripPose
(
MGDFVRPose *
pose
)
void
GetAimPose
(
MGDFVRPose *
pose
)
void
SetVibration
(
FLOAT
amplitude
)
BOOL
RequestRecieved
(
MGDFWebServerRequest *
request
)
BOOL
Listening
(
)
void
Send
(
void *
data
,
UINT64
len
,
BOOL
binary
)
BOOL
CanRecieve
(
UINT64 *
len
)
HRESULT
Receive
(
void *
message
,
UINT64
len
,
BOOL *
binary
)
HRESULT
GetConnectionStatus
(
MGDFWebSocketConnectionStatus *
status
)
BOOL
Exists
(
)
BOOL
GetParent
(
IMGDFWriteableFile * *
parent
)
BOOL
GetChild
(
const wchar_t *
name
,
IMGDFWriteableFile **
child
)
HRESULT
GetAllChildren
(
IMGDFWriteableFile * *
buffer
,
UINT64 *
length
)
HRESULT
OpenWrite
(
IMGDFFileWriter * *
writer
)
HRESULT
CreateFolder
(
)
HRESULT
Delete
(
)
HRESULT
MoveTo
(
IMGDFWriteableFile *
destination
)
HRESULT
CopyTo
(
IMGDFWriteableFile *
destination
)
BOOL
GetFile
(
const wchar_t *
logicalPath
,
IMGDFWriteableFile **
file
)
void
GetRoot
(
IMGDFWriteableFile * *
root
)
const wchar_t *
Start
UINT64
Length
UINT32
Width
UINT32
Height
DXGI_FORMAT
Format
UINT32
SampleCount
const small *
Name
BOOL
GPU
MGDFDebugTiming
Timing
const small *
Section
const small *
Key
const small *
Value
const small *
Version
INT32
InterfaceVersion
BOOL
HasTimings
double
ExpectedSimTime
MGDFDebugTiming
RenderTime
MGDFDebugTiming
ActiveRenderTime
MGDFDebugTiming
SimTime
MGDFDebugTiming
ActiveSimTime
MGDFDebugTiming
SimInputTime
MGDFDebugTiming
SimAudioTime
const MGDFDebugCounter *
Counters
UINT64
CounterCount
const MGDFDebugEntry *
Entries
UINT64
EntryCount
BOOL
HasLatency
double
RenderLatency
UINT64
RenderedFrames
UINT64
PresentedFrames
double
Average
const double *
Samples
UINT64
SampleCount
UINT32
Width
UINT32
Height
UINT32
RefreshRateNumerator
UINT32
RefreshRateDenominator
BOOL
SupportsHDR
BOOL
IsNativeSize
FLOAT[16]
ViewToClip
FLOAT[16]
ClipToView
FLOAT[16]
ClipToPreviousClip
FLOAT[16]
PreviousClipToClip
FLOAT[2]
JitterOffset
FLOAT[2]
MotionVectorScale
FLOAT[3]
CameraPosition
FLOAT[3]
CameraUp
FLOAT[3]
CameraRight
FLOAT[3]
CameraForward
FLOAT
Near
FLOAT
Far
FLOAT
VerticalFOV
FLOAT
AspectRatio
BOOL
DepthInverted
BOOL
MotionVectorsJittered
BOOL
MotionVectorsDilated
BOOL
CameraMotionIncluded
BOOL
ResetHistory
UINT32
View
MGDFFrameResource
Depth
MGDFFrameResource
MotionVectors
MGDFFrameResource
HudlessColor
MGDFFrameResource
UIColorAndAlpha
UINT64
FrameOrdinal
UINT64
CompletedOrdinal
UINT32
FrameSlot
UINT32
FramesInFlight
UINT32
BackBufferIndex
ID3D12Resource *
BackBuffer
D3D12_CPU_DESCRIPTOR_HANDLE
BackBufferRTV
D3D12_RESOURCE_DESC
BackBufferDesc
ID3D12Resource *
Resource
D3D12_RESOURCE_STATES
State
UINT32
Left
UINT32
Top
UINT32
Width
UINT32
Height
BOOL
FullScreen
BOOL
ExclusiveMode
D3D_FEATURE_LEVEL
MinFeatureLevel
UINT32
MinShaderModel
MGDFHDRFormat
HDRFormat
BOOL
VR
FLOAT
MaxContentLightLevel
FLOAT
MaxFrameAverageLightLevel
FLOAT
MaxMasteringLuminance
FLOAT
MinMasteringLuminance
BOOL
SupportsHDR
FLOAT
MaxFullFrameLuminance
FLOAT
MaxLuminance
FLOAT
MinLuminance
ULONG
SDRWhiteLevel
UINT32
Width
UINT32
Height
BOOL
ShaderExecutionReordering
float
x
float
y
float
z
const small **
Names
const small **
Values
UINT64
Count
MGDFUpscaleMode
Mode
UINT32
RenderWidth
UINT32
RenderHeight
UINT32
OutputWidth
UINT32
OutputHeight
BOOL
ColorHDR
MGDFFrameResource
ColorIn
MGDFFrameResource
ColorOut
MGDFFrameResource
Depth
MGDFFrameResource
MotionVectors
MGDFFrameResource
Exposure
MGDFFrameResource
BiasCurrentColor
UINT32
View
UINT32
Width
UINT32
Height
UINT32
MinWidth
UINT32
MinHeight
UINT32
MaxWidth
UINT32
MaxHeight
INT32
Major
INT32
Minor
INT32
Build
INT32
Revision
FLOAT[3]
Position
FLOAT[4]
Orientation
FLOAT
AngleLeft
FLOAT
AngleRight
FLOAT
AngleUp
FLOAT
AngleDown
UINT32
Width
UINT32
Height
DXGI_FORMAT
Format
DXGI_FORMAT
DepthFormat
UINT32
EyeCount
BOOL
Focused
MGDFVREye[2]
Eyes
MGDFVRPose[2]
Grip
MGDFVRPose[2]
Aim
MGDFVRPose
Gaze
UINT64
MaskVersion
UINT64
PoseEpoch
FLOAT
FloorHeight
BOOL
FloorHeightValid
UINT32
Features
UINT32
PixelWidth
UINT32
PixelHeight
FLOAT[3]
Position
FLOAT[4]
Orientation
FLOAT
Width
FLOAT
Height
MGDFVRSpace
Space
FLOAT[3]
Position
FLOAT[4]
Orientation
BOOL
PositionValid
BOOL
OrientationValid
IMGDFWebSocket *
WebSocket
IMGDFHttpServerRequest *
HttpRequest
MGDFWebSocketConnectionState
State
small *
LastError
UINT64
LastErrorLength