From efc507147e0beb1ac5b2f046bf8e4d902bca652c Mon Sep 17 00:00:00 2001 From: Reiko Asakura Date: Wed, 23 Sep 2020 13:03:51 -0400 Subject: Refactor SceGxmInternal headers --- include/user/gxm/render_target.h | 68 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 include/user/gxm/render_target.h (limited to 'include/user/gxm/render_target.h') diff --git a/include/user/gxm/render_target.h b/include/user/gxm/render_target.h new file mode 100644 index 0000000..44a38a3 --- /dev/null +++ b/include/user/gxm/render_target.h @@ -0,0 +1,68 @@ +#ifndef _DOLCESDK_PSP2_GXM_RENDER_TARGET_INTERNAL_H_ +#define _DOLCESDK_PSP2_GXM_RENDER_TARGET_INTERNAL_H_ + +/** @file +*/ + +#include + +#ifdef __cplusplus +extern "C" { +#endif // def __cplusplus + +/** Computes the driver memory size needed for the given set of render + target parameters. The memory will be used for render target GPU data structures should + be allocated as an uncached LPDDR memblock using sceKernelAllocMemBlock(). + + @param[in] params A pointer to render target parameters. + @param[out] driverMemSize A pointer to storage for the driver memory size. + + @retval + SCE_OK The operation was completed successfully. + @retval + SCE_GXM_ERROR_INVALID_VALUE The operation failed due to an invalid parameter value. + @retval + SCE_GXM_ERROR_INVALID_POINTER The operation failed due to a NULL pointer. + + @ingroup render +*/ +SceGxmErrorCode sceGxmGetRenderTargetMemSizeInternal( + const SceGxmRenderTargetParams *params, + uint32_t* driverMemSize); + +/** Creates a render target object. A render target defines the layout for tiled + rendering and is needed to start a scene and draw geometry. Render targets + should ideally be created at load time, since creating them requires resources + from the OS. + + Once the render target is no longer needed, call #sceGxmDestroyRenderTarget() + to destroy it. + + @param[in] params The creation parameters for the render target. + @param[out] renderTarget A pointer to storage for the render target pointer. + + @retval + SCE_OK The operation was successful. + @retval + SCE_GXM_ERROR_UNINITIALIZED The operation failed as libgxm is not initialized. + @retval + SCE_GXM_ERROR_INVALID_VALUE The operation failed due to an invalid parameter value. + @retval + SCE_GXM_ERROR_INVALID_POINTER The operation failed due to a NULL pointer. + @retval + SCE_GXM_ERROR_OUT_OF_RENDER_TARGETS The operation failed because the maximum number + of render targets have already been created. + @retval + SCE_GXM_ERROR_DRIVER The operation failed due to a driver error. + + @ingroup render +*/ +SceGxmErrorCode sceGxmCreateRenderTargetInternal( + const SceGxmRenderTargetParams *params, + SceGxmRenderTarget **renderTarget); + +#ifdef __cplusplus +} +#endif // def __cplusplus + +#endif /* _DOLCESDK_PSP2_GXM_RENDER_TARGET_INTERNAL_H_ */ -- cgit v1.2.3