Skip to content

Commit 850ff66

Browse files
authored
Merged the Utility Class doc from PICO Developer website
1 parent 2d4d42b commit 850ff66

1 file changed

Lines changed: 30 additions & 0 deletions

File tree

base/securemr_utils/README.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,40 @@ codes can easily overflow the essential MR logics. Hence,
66
to simplify the major logics in our samples, and also to
77
ease the usage of SecureMR, we build these utility classes.
88

9+
These SecureMR utility classes are designed for handling tensor
10+
operations, pipeline execution, and rendering commands in a flexiable
11+
manner, using smart pointers to automatically manage the lifecycles,
12+
type casting and templates to ease the intialization and data transferring,
13+
and auxiliary functions to group multiple consecutive
14+
OpenXR API calls.
15+
916
## Dependencies
1017

1118
The utility classes depend only on PICO's OpenXR library.
1219

20+
## Architecture
21+
22+
1. Adapter (`adapter.hpp`)
23+
- Provides template-based wrapper classes for handling OpenXR objects,
24+
- Embeds the `...CreateInfo` structures for the wrapped OpenXR objects to minimize the configuration efforts,
25+
- Automatically initializes the wrapped OpenXR objects and destroys them during destruction.
26+
1. Framework Session (`session.h`, `session.cpp`)
27+
- Manages the OpenXR session for SecureMR,
28+
- Loads OpenXR SecureMR APIs to member function pointers on demand during the run time,
29+
- Handles session initialization and cleanup.
30+
1. Tensor Management (`tensor.h`, `tensor.cpp`)
31+
- Defines tensor attributes such as dimensions, channels, and data types,
32+
- Manages tensor creation and destruction using SecureMR API calls,
33+
- Interacts with the Pipeline to process tensor-based computations.
34+
1. Render Commands (`rendercommand.h`, `rendercommand.cpp`)
35+
- Encapsulates OpenXR SecureMR operators for rendering,
36+
- Allows using literal value or C++ variables as operands besides tensors,
37+
- Provides an interface for integrating rendering into SecureMR workflows.
38+
1. Pipeline (`pipeline.h`, `pipeline.cpp`)
39+
- Encapsulates data-processing operators in the OpenXR SecureMR extension,
40+
- Supports the invokation of Render Commands,
41+
- Manages the submission of SecureMR pipelines.
42+
1343
## Key usage
1444

1545
NOTE: the utility classes are encapsulation of the

0 commit comments

Comments
 (0)