# google::play::initialization

## Summary

| ### Enumerations ||
|---|---|
| `https://developer.android.com/games/playgames/native-pc/reference/namespace/google/play/initialization#initialization_2enums_8h_1a877d4a9b590669a30703ac09c3d01385{ https://developer.android.com/games/playgames/native-pc/reference/namespace/google/play/initialization#dummy_1a877d4a9b590669a30703ac09c3d01385ae69fa9a656f76dd8a4d89f21992b2d3a = 0, https://developer.android.com/games/playgames/native-pc/reference/namespace/google/play/initialization#dummy_1a877d4a9b590669a30703ac09c3d01385ad2053df72c7651561461e3c0f9e41ff9 = 1, https://developer.android.com/games/playgames/native-pc/reference/namespace/google/play/initialization#dummy_1a877d4a9b590669a30703ac09c3d01385ae3587c730cc1aa530fa4ddc9c4204e97 = 2 }` | enumOperating environment. |
| `https://developer.android.com/games/playgames/native-pc/reference/namespace/google/play/initialization#initialization_2enums_8h_1a1e1273934371b69488a08181d93649a2{ https://developer.android.com/games/playgames/native-pc/reference/namespace/google/play/initialization#dummy_1a1e1273934371b69488a08181d93649a2ae69fa9a656f76dd8a4d89f21992b2d3a = 0, https://developer.android.com/games/playgames/native-pc/reference/namespace/google/play/initialization#dummy_1a1e1273934371b69488a08181d93649a2ac144a8f082bd43163366558811b04cc2 = 1, https://developer.android.com/games/playgames/native-pc/reference/namespace/google/play/initialization#dummy_1a1e1273934371b69488a08181d93649a2af0788ffc5b96faa3f771830b3bca6206 = 2 }` | enumDevice form factor. |
| `https://developer.android.com/games/playgames/native-pc/reference/namespace/google/play/initialization#initialization_2enums_8h_1a1c5bed3e40cc5dd95c1c7c76be567afd{ https://developer.android.com/games/playgames/native-pc/reference/namespace/google/play/initialization#dummy_1a1c5bed3e40cc5dd95c1c7c76be567afdae69fa9a656f76dd8a4d89f21992b2d3a = 0, https://developer.android.com/games/playgames/native-pc/reference/namespace/google/play/initialization#dummy_1a1c5bed3e40cc5dd95c1c7c76be567afdae3587c730cc1aa530fa4ddc9c4204e97 = 1, https://developer.android.com/games/playgames/native-pc/reference/namespace/google/play/initialization#dummy_1a1c5bed3e40cc5dd95c1c7c76be567afdaf2053df72c7651561461e3c0f9e41ff9 = 2, https://developer.android.com/games/playgames/native-pc/reference/namespace/google/play/initialization#dummy_1a1c5bed3e40cc5dd95c1c7c76be567afda796ba96e94b64e3c49548e2712b99d4c = 3, https://developer.android.com/games/playgames/native-pc/reference/namespace/google/play/initialization#dummy_1a1c5bed3e40cc5dd95c1c7c76be567afdabf0a99b0d6c95af37b8c5e338287d810 = 4 }` | enumError codes returned by Google Play Initialization. |

| ### Typedefs ||
|---|---|
| `https://developer.android.com/games/playgames/native-pc/reference/namespace/google/play/initialization#initialization_2models_8h_1aceca9dfece2920329831393fb8348c20` | using `std::function< void(https://developer.android.com/games/playgames/native-pc/reference/class/google/play/result#classgoogle_1_1play_1_1_result)>` |
| `https://developer.android.com/games/playgames/native-pc/reference/namespace/google/play/initialization#initialization_2models_8h_1a9ba665175025db9e1bd4bec8ea1e9934` | using `https://developer.android.com/games/playgames/native-pc/reference/class/google/play/result#classgoogle_1_1play_1_1_result< InitializationError, https://developer.android.com/games/playgames/native-pc/reference/struct/google/play/initialization/initialize-result-value#structgoogle_1_1play_1_1initialization_1_1_initialize_result_value >` |

| ### Functions ||
|---|---|
| `https://developer.android.com/games/playgames/native-pc/reference/namespace/google/play/initialization#initialization_8h_1acf5455686dff7dc883615803595cf5b9(std::function< void(https://developer.android.com/games/playgames/native-pc/reference/class/google/play/result#classgoogle_1_1play_1_1_result)> continuation, const https://developer.android.com/games/playgames/native-pc/reference/struct/google/play/initialization/google-play-initialize-params#structgoogle_1_1play_1_1initialization_1_1_google_play_initialize_params & params)` | `void` Establishes a connection to Play Services. |

| ### Structs ||
|---|---|
| [google::play::initialization::GooglePlayInitializeParams](https://developer.android.com/games/playgames/native-pc/reference/struct/google/play/initialization/google-play-initialize-params) | Initialization parameters for GooglePlayInitialize. |
| [google::play::initialization::InitializeResultValue](https://developer.android.com/games/playgames/native-pc/reference/struct/google/play/initialization/initialize-result-value) | Result value for initialization. |

## Enumerations

### Environment

```
 Environment
```
Operating environment.

| Properties ||
|---|---|
| `kAndroid` | Android environment. |
| `kUnknown` | The environment is unknown. |
| `kWindows` | Native Windows environment. |

### FormFactor

```
 FormFactor
```
Device form factor.

| Properties ||
|---|---|
| `kDesktop` | Desktop form factor (e.g. PC, Chromebook). |
| `kMobile` | Mobile form factor (e.g. phone, tablet). |
| `kUnknown` | The form factor is unknown. |

### InitializationError

```
 InitializationError
```
Error codes returned by Google Play Initialization.

| Properties ||
|---|---|
| `kActionRequiredShutdownClientProcess` | The calling client process should shutdown as soon as possible. This may be returned when a game is not launched via Google Play Games and is in the process of being relaunched. |
| `kError` | Fatal error during initialization. |
| `kOk` | The operation completed successfully. |
| `kSdkRuntimeUnavailable` | The SDK runtime is unavailable. The user will need to install Google Play Games and the SDK runtime in order to proceed. |
| `kSdkRuntimeUpdateRequired` | The current version of the SDK runtime installed on the device does not support the calling version of the SDK. The user will need to update Google Play Games and the SDK runtime in order to proceed. |

## Typedefs

### InitializeContinuation

```
std::function< void(InitializeResult)> InitializeContinuation
```

### InitializeResult

```
Result< InitializationError, InitializeResultValue > InitializeResult
```

## Functions

### GooglePlayInitialize

```
void GooglePlayInitialize(
  std::function< void(InitializeResult)> continuation,
  const GooglePlayInitializeParams & params = {}
)
```
Establishes a connection to Play Services.

Must be called and return successfully before using any other API.

If initialization fails your application should exit and close any running processes as soon as possible.

Without a successful initialization your application can not use the Play PC SDK and critical checks such as ensuring that the user has a valid license to your application may have failed or could not be performed.

<br />

Details Parameters `continuation` The async callback to return the data to. `params` (Optional) Initialization parameters for GooglePlayInitialize.