mirror of
https://github.com/GTAmodding/re3.git
synced 2024-11-15 11:29:02 +00:00
Original screen grabber
This commit is contained in:
parent
489743da41
commit
e7945625b5
7 changed files with 85 additions and 0 deletions
|
@ -19,4 +19,5 @@ public:
|
|||
static bool ReadLine(int fd, char *buf, int len);
|
||||
static int CloseFile(int fd);
|
||||
static int GetErrorReadWrite(int fd);
|
||||
static char *GetRootDirName() { return ms_rootDirName; }
|
||||
};
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#include "rpmatfx.h"
|
||||
#include "rphanim.h"
|
||||
#include "rpskin.h"
|
||||
#include "rtbmp.h"
|
||||
|
||||
#include "main.h"
|
||||
#include "CdStream.h"
|
||||
|
@ -61,6 +62,7 @@
|
|||
#include "MemoryCard.h"
|
||||
#include "SceneEdit.h"
|
||||
#include "debugmenu.h"
|
||||
#include "Clock.h"
|
||||
|
||||
GlobalScene Scene;
|
||||
|
||||
|
@ -288,6 +290,28 @@ DoFade(void)
|
|||
}
|
||||
}
|
||||
|
||||
bool
|
||||
RwGrabScreen(RwCamera *camera, RwChar *filename)
|
||||
{
|
||||
char temp[255];
|
||||
RwImage *pImage = RsGrabScreen(camera);
|
||||
bool result = true;
|
||||
|
||||
if (pImage == nil)
|
||||
return false;
|
||||
|
||||
strcpy(temp, CFileMgr::GetRootDirName());
|
||||
strcat(temp, filename);
|
||||
|
||||
if (RtBMPImageWrite(pImage, &temp[0]) == nil)
|
||||
result = false;
|
||||
RwImageDestroy(pImage);
|
||||
return result;
|
||||
}
|
||||
|
||||
#define TILE_WIDTH 576
|
||||
#define TILE_HEIGHT 432
|
||||
|
||||
void
|
||||
DoRWStuffEndOfFrame(void)
|
||||
{
|
||||
|
@ -296,6 +320,20 @@ DoRWStuffEndOfFrame(void)
|
|||
FlushObrsPrintfs();
|
||||
RwCameraEndUpdate(Scene.camera);
|
||||
RsCameraShowRaster(Scene.camera);
|
||||
#ifndef MASTER
|
||||
char s[48];
|
||||
if (CPad::GetPad(1)->GetLeftShockJustDown()) {
|
||||
// try using both controllers for this thing... crazy bastards
|
||||
if (CPad::GetPad(0)->GetRightStickY() > 0) {
|
||||
sprintf(s, "screen%d%d.ras", CClock::ms_nGameClockHours, CClock::ms_nGameClockMinutes);
|
||||
// TODO
|
||||
//RtTileRender(Scene.camera, TILE_WIDTH * 2, TILE_HEIGHT * 2, TILE_WIDTH, TILE_HEIGHT, &NewTileRendererCB, nil, s);
|
||||
} else {
|
||||
sprintf(s, "screen%d%d.bmp", CClock::ms_nGameClockHours, CClock::ms_nGameClockMinutes);
|
||||
RwGrabScreen(Scene.camera, s);
|
||||
}
|
||||
}
|
||||
#endif // !MASTER
|
||||
}
|
||||
|
||||
static RwBool
|
||||
|
|
|
@ -181,6 +181,22 @@ psCameraShowRaster(RwCamera *camera)
|
|||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
*****************************************************************************
|
||||
*/
|
||||
RwImage *
|
||||
psGrabScreen(RwCamera *pCamera)
|
||||
{
|
||||
#ifndef LIBRW
|
||||
RwRaster *pRaster = RwCameraGetRaster(pCamera);
|
||||
if (RwImage *pImage = RwImageCreate(pRaster->width, pRaster->height, 32)) {
|
||||
RwImageAllocatePixels(pImage);
|
||||
RwImageSetFromRaster(pImage, pRaster);
|
||||
return pImage;
|
||||
}
|
||||
#endif
|
||||
return nil;
|
||||
}
|
||||
|
||||
/*
|
||||
*****************************************************************************
|
||||
|
|
|
@ -22,6 +22,7 @@ extern void psTerminate(void);
|
|||
|
||||
extern void psCameraShowRaster(RwCamera *camera);
|
||||
extern RwBool psCameraBeginUpdate(RwCamera *camera);
|
||||
extern RwImage *psGrabScreen(RwCamera *camera);
|
||||
|
||||
extern void psMouseSetPos(RwV2d *pos);
|
||||
|
||||
|
|
|
@ -50,6 +50,15 @@ RsCameraBeginUpdate(RwCamera * camera)
|
|||
return psCameraBeginUpdate(camera);
|
||||
}
|
||||
|
||||
/*
|
||||
*****************************************************************************
|
||||
*/
|
||||
RwImage*
|
||||
RsGrabScreen(RwCamera *camera)
|
||||
{
|
||||
return psGrabScreen(camera);
|
||||
}
|
||||
|
||||
/*
|
||||
*****************************************************************************
|
||||
*/
|
||||
|
|
|
@ -274,6 +274,9 @@ RsCameraBeginUpdate(RwCamera *camera);
|
|||
//extern void
|
||||
//RsMouseSetVisibility(RwBool visible);
|
||||
|
||||
extern RwImage*
|
||||
RsGrabScreen(RwCamera *camera);
|
||||
|
||||
extern void
|
||||
RsMouseSetPos(RwV2d *pos);
|
||||
|
||||
|
|
|
@ -238,6 +238,23 @@ psCameraShowRaster(RwCamera *camera)
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
*****************************************************************************
|
||||
*/
|
||||
RwImage *
|
||||
psGrabScreen(RwCamera *pCamera)
|
||||
{
|
||||
#ifndef LIBRW
|
||||
RwRaster *pRaster = RwCameraGetRaster(pCamera);
|
||||
if (RwImage *pImage = RwImageCreate(pRaster->width, pRaster->height, 32)) {
|
||||
RwImageAllocatePixels(pImage);
|
||||
RwImageSetFromRaster(pImage, pRaster);
|
||||
return pImage;
|
||||
}
|
||||
#endif
|
||||
return nil;
|
||||
}
|
||||
|
||||
/*
|
||||
*****************************************************************************
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue