summaryrefslogtreecommitdiff
path: root/include/user/gxm/sync_object.h
blob: f60e77d3bbac31842913478a57387032141e4766 (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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
/*
	Vita Development Suite Libraries
*/

#ifndef _VDSUITE_USER_GXM_SYNC_OBJECT_H
#define _VDSUITE_USER_GXM_SYNC_OBJECT_H

/** @file
*/

#include_next <gxm/sync_object.h>

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

/** Creates a shared sync object.  Currently sync objects are used purely to
	synchronize rendering with display operations in the display queue.

	@param[in]	key				The key for the shared sync object.
	@param[out]	syncObject		A pointer to storage for a sync object pointer.

	@retval
	SCE_OK		The operation was completed successfully.
	@retval
	SCE_GXM_ERROR_UNINITIALIZED The operation failed as libgxm is not initialized, or not initialized to allow shared sync objects.
	@retval
	SCE_GXM_ERROR_INVALID_VALUE The operation failed as the <c><i>key</i></c> parameter was 0.
	@retval
	SCE_GXM_ERROR_INVALID_POINTER The operation failed as the sync object pointer was <c>NULL</c>.
	@retval
	SCE_GXM_ERROR_DRIVER The operation failed due to a driver error.

	@ingroup render
*/
SceGxmErrorCode sceGxmSyncObjectCreateShared(uint32_t key, SceGxmSyncObject **syncObject);

/** Deletes a shared sync object.

	@param[in]	key				The key for the shared sync object.

	@retval
	SCE_OK		The operation was completed successfully.
	@retval
	SCE_GXM_ERROR_UNINITIALIZED The operation failed as libgxm is not initialized.
	@retval
	SCE_GXM_ERROR_INVALID_VALUE The operation failed as the <c><i>key</i></c> parameter was 0.
	@retval
	SCE_GXM_ERROR_DRIVER The operation failed due to a driver error.

	@ingroup render
*/
SceGxmErrorCode sceGxmSyncObjectDeleteShared(uint32_t key);

/** Opens a shared sync object.

	@param[in]	key				The key for the shared sync object.
	@param[out]	syncObject		A pointer to storage for a sync object pointer.

	@retval
	SCE_OK		The operation was completed successfully.
	@retval
	SCE_GXM_ERROR_UNINITIALIZED The operation failed as libgxm is not initialized, or not initialized to allow shared sync objects.
	@retval
	SCE_GXM_ERROR_INVALID_VALUE The operation failed as the <c><i>key</i></c> parameter was 0.
	@retval
	SCE_GXM_ERROR_INVALID_POINTER The operation failed as the sync object pointer was <c>NULL</c>, or the <c><i>key</i></c> parameter was invalid.
	@retval
	SCE_GXM_ERROR_DRIVER The operation failed due to a driver error.

	@ingroup render
*/
SceGxmErrorCode sceGxmSyncObjectOpenShared(uint32_t key, SceGxmSyncObject **syncObject);

/** Closes a shared sync object.

	@param[in]		key			The key for the shared sync object.
	@param[in,out]	syncObject	A sync object pointer.

	@retval
	SCE_OK		The operation was completed successfully.
	@retval
	SCE_GXM_ERROR_UNINITIALIZED The operation failed as libgxm is not initialized.
	@retval
	SCE_GXM_ERROR_INVALID_VALUE The operation failed as the <c><i>key</i></c> parameter was 0.
	@retval
	SCE_GXM_ERROR_INVALID_POINTER The operation failed as the sync object pointer was <c>NULL</c>.
	@retval
	SCE_GXM_ERROR_DRIVER The operation failed due to a driver error.

	@ingroup render
*/
SceGxmErrorCode sceGxmSyncObjectCloseShared(uint32_t key, SceGxmSyncObject *syncObject);

#ifdef	__cplusplus
}
#endif	// def __cplusplus

#endif /* _VDSUITE_USER_GXM_SYNC_OBJECT_H */