mirror of
https://github.com/GRRLIB/GRRLIB.git
synced 2024-12-23 02:39:19 +00:00
[CHG] Add ScreenShot function and 16:9 correction
This commit is contained in:
parent
346889e86b
commit
989faaabcc
2 changed files with 30 additions and 0 deletions
|
@ -13,6 +13,7 @@
|
|||
#include "../lib/libpng/pngu/pngu.h"
|
||||
#include "../lib/libjpeg/jpeglib.h"
|
||||
#include "GRRLIB.h"
|
||||
#include <fat.h>
|
||||
|
||||
#define DEFAULT_FIFO_SIZE (256 * 1024) /**< GX fifo buffer size. */
|
||||
|
||||
|
@ -898,6 +899,14 @@ void GRRLIB_Init() {
|
|||
rmode = VIDEO_GetPreferredMode(NULL);
|
||||
if(rmode == NULL)
|
||||
return;
|
||||
|
||||
/* Widescreen patch by CashMan's Productions (http://www.CashMan-Productions.fr.nf) */
|
||||
if (CONF_GetAspectRatio() == CONF_ASPECT_16_9)
|
||||
{
|
||||
rmode->viWidth = 678;
|
||||
rmode->viXOrigin = (VI_MAX_WIDTH_NTSC - 678)/2;
|
||||
}
|
||||
|
||||
VIDEO_Configure(rmode);
|
||||
xfb[0] = (u32 *)MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode));
|
||||
xfb[1] = (u32 *)MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode));
|
||||
|
@ -1008,3 +1017,21 @@ void GRRLIB_Exit() {
|
|||
gp_fifo = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Make a PNG screenshot on the SD card.
|
||||
* @param File Name of the file to write.
|
||||
* @return True if every thing worked, false otherwise.
|
||||
*/
|
||||
bool GRRLIB_ScrShot(const char* File)
|
||||
{
|
||||
IMGCTX pngContext;
|
||||
int ErrorCode = -1;
|
||||
|
||||
if(fatInitDefault() && (pngContext = PNGU_SelectImageFromDevice(File)))
|
||||
{
|
||||
ErrorCode = PNGU_EncodeFromYCbYCr(pngContext, 640, 480, xfb[fb], 0);
|
||||
PNGU_ReleaseImageContext(pngContext);
|
||||
}
|
||||
return !ErrorCode;
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
*/
|
||||
|
||||
#include <gccore.h>
|
||||
#include <ogc/conf.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
@ -113,6 +114,8 @@ void GRRLIB_Render();
|
|||
|
||||
void GRRLIB_Exit();
|
||||
|
||||
bool GRRLIB_ScrShot(const char*);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
|
Loading…
Reference in a new issue