Added some prototypes for command lists and deferred contexts.
@@ -1092,6 +1092,10 @@ typedef struct SceGxmTexture {
uint32_t normalize_mode : 1; //!< Normalize mode
} SceGxmTexture;
+typedef struct SceGxmCommandList {
+ uint32_t words[8];
+} SceGxmCommandList;
+
typedef struct SceGxmColorSurface {
unsigned int pbeSidebandWord;
unsigned int pbeEmitWords[6];
@@ -1152,6 +1156,21 @@ typedef struct SceGxmContextParams {
unsigned int fragmentUsseRingBufferOffset;
} SceGxmContextParams;
+typedef struct SceGxmDeferredContextParams {
+ void *hostMem;
+ SceSize hostMemSize;
+ void *(*vdmCallback)(void *args, SceSize requestedSize, SceSize *size);
+ void *(*vertexCallback)(void *args, SceSize requestedSize, SceSize *size);
+ void *(*fragmentCallback)(void *args, SceSize requestedSize, SceSize *size);
+ void *callbackData;
+ void *vdmRingBufferMem;
+ SceSize vdmRingBufferMemSize;
+ void *vertexRingBufferMem;
+ SceSize vertexRingBufferMemSize;
+ void *fragmentRingBufferMem;
+ SceSize fragmentRingBufferMemSize;
+} SceGxmDeferredContextParams;
+
typedef struct SceGxmVertexProgram SceGxmVertexProgram;
typedef struct SceGxmFragmentProgram SceGxmFragmentProgram;
@@ -1312,6 +1331,9 @@ int sceGxmSyncObjectDestroy(SceGxmSyncObject *syncObject);
int sceGxmCreateContext(const SceGxmContextParams *params, SceGxmContext **context);
int sceGxmDestroyContext(SceGxmContext *context);
+int sceGxmCreateDeferredContext(const SceGxmDeferredContextParams *params, SceGxmContext **context);
+int sceGxmDestroyDeferredContext(SceGxmContext *context);
+
void sceGxmSetValidationEnable(SceGxmContext *context, SceBool enable);
void sceGxmSetVertexProgram(SceGxmContext *context, const SceGxmVertexProgram *vertexProgram);
@@ -1339,6 +1361,10 @@ int sceGxmBeginScene(SceGxmContext *context, unsigned int flags, const SceGxmRen
int sceGxmMidSceneFlush(SceGxmContext *context, unsigned int flags, SceGxmSyncObject *vertexSyncObject, const SceGxmNotification *vertexNotification);
int sceGxmEndScene(SceGxmContext *context, const SceGxmNotification *vertexNotification, const SceGxmNotification *fragmentNotification);
+int sceGxmBeginCommandList(SceGxmContext *context);
+int sceGxmExecuteCommandList(SceGxmContext *context, SceGxmCommandList *list);
+int sceGxmEndCommandList(SceGxmContext *context, SceGxmCommandList *list);
+
void sceGxmSetFrontDepthFunc(SceGxmContext *context, SceGxmDepthFunc depthFunc);
void sceGxmSetBackDepthFunc(SceGxmContext *context, SceGxmDepthFunc depthFunc);
void sceGxmSetFrontFragmentProgramEnable(SceGxmContext *context, SceGxmFragmentProgramMode enable);
