diff --git a/include/gx2r/surface.h b/include/gx2r/surface.h new file mode 100644 index 0000000..a4753e7 --- /dev/null +++ b/include/gx2r/surface.h @@ -0,0 +1,53 @@ +#pragma once +#include +#include "resource.h" + +/** + * \defgroup gx2r_surface Surface + * \ingroup gx2r + * @{ + */ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct GX2Surface GX2Surface; + +bool +GX2RCreateSurface(GX2Surface *surface, + GX2RResourceFlags flags); + +bool +GX2RCreateSurfaceUserMemory(GX2Surface *surface, + uint8_t *image, + uint8_t *mipmap, + GX2RResourceFlags flags); + +void +GX2RDestroySurfaceEx(GX2Surface *surface, + GX2RResourceFlags flags); + +BOOL +GX2RIsGX2RSurface(GX2RResourceFlags flags); + +void +GX2RInvalidateSurface(GX2Surface *surface, + int32_t level, + GX2RResourceFlags flags); + +void * +GX2RLockSurfaceEx(GX2Surface *surface, + int32_t level, + GX2RResourceFlags flags); + +void +GX2RUnlockSurfaceEx(GX2Surface *surface, + int32_t level, + GX2RResourceFlags flags); + +#ifdef __cplusplus +} +#endif + +/** @} */ diff --git a/rpl/libgx2/exports.h b/rpl/libgx2/exports.h index 61ee122..28ff482 100644 --- a/rpl/libgx2/exports.h +++ b/rpl/libgx2/exports.h @@ -229,3 +229,11 @@ EXPORT(GX2RInvalidateMemory); EXPORT(GX2RIsUserMemory); EXPORT(GX2RSetAllocator); +// gx2r/surface.h +EXPORT(GX2RCreateSurface); +EXPORT(GX2RCreateSurfaceUserMemory); +EXPORT(GX2RDestroySurfaceEx); +EXPORT(GX2RIsGX2RSurface); +EXPORT(GX2RInvalidateSurface); +EXPORT(GX2RLockSurfaceEx); +EXPORT(GX2RUnlockSurfaceEx);