summaryrefslogtreecommitdiff
path: root/include/user/gxm/init.h
blob: 6739e2a3979bb258d4b57388532ef211f4efd1fc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#ifndef _DOLCESDK_PSP2_GXM_INIT_INTERNAL_H_
#define _DOLCESDK_PSP2_GXM_INIT_INTERNAL_H_

/** @file
*/

#include <psp2/gxm/init.h>

#ifdef	__cplusplus
extern "C" {
#endif	// def __cplusplus

/** Initializes the libgxm library for shared sync objects.

	Internally this function will prepare this process for rendering, creating
	the parameter buffer with the given size.

	This function must be called before any other libgxm object is created, such
	as a context, or sync object.

	@param[in]	params					A pointer to a populated SceGxmInitializeParams structure.

	@retval
	SCE_OK	The operation completed successfully.
	@retval
	SCE_GXM_ERROR_INVALID_POINTER		The SceGxmInitializeParams pointer was <c>NULL</c>.
	@retval
	SCE_GXM_ERROR_INVALID_VALUE			One or more parameters were invalid.
	@retval
	SCE_GXM_ERROR_ALREADY_INITIALIZED	The operation failed because libgxm is already initialized.
	@retval
	SCE_GXM_ERROR_OUT_OF_MEMORY			There was no memory to perform the operation.
	@retval
	SCE_GXM_ERROR_DRIVER				The operation failed due to a driver error.

	@ingroup render
*/
SceGxmErrorCode sceGxmInitializeInternal(const SceGxmInitializeParams *params);

/** Checks if the libgxm library was initialized for shared sync objects.

	@return
	Returns <c>true</c> if the libgxm library was initialized for shared sync objects; otherwise <c>false</c> is returned.

	@ingroup render
*/
bool sceGxmIsInitializedInternal(void);

#ifdef	__cplusplus
}
#endif	// def __cplusplus

#endif /* _DOLCESDK_PSP2_GXM_INIT_INTERNAL_H_ */