mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-26 22:11:43 +00:00
- Moved renderer dependent part of savegame pic creation into DFrameBuffer
as a virtual function so that it can be overridden. SVN r700 (trunk)
This commit is contained in:
parent
f691c973d4
commit
2e613c3557
4 changed files with 28 additions and 10 deletions
|
@ -1,4 +1,6 @@
|
|||
January 12, 2008 (Changes by Graf Zahl)
|
||||
- Moved renderer dependent part of savegame pic creation into DFrameBuffer
|
||||
as a virtual function so that it can be overridden.
|
||||
- Fixed: M_SaveBitmap::prior was too small. It must be 3 bytes per pixel,
|
||||
not 1.
|
||||
- Replaced INVGEM** graphics with PNG versions so that they have the
|
||||
|
|
|
@ -1969,17 +1969,8 @@ static void PutSavePic (FILE *file, int width, int height)
|
|||
}
|
||||
else
|
||||
{
|
||||
DCanvas *pic = new DSimpleCanvas (width, height);
|
||||
PalEntry palette[256];
|
||||
|
||||
// Take a snapshot of the player's view
|
||||
pic->Lock ();
|
||||
P_CheckPlayerSprites();
|
||||
R_RenderViewToCanvas (players[consoleplayer].mo, pic, 0, 0, width, height);
|
||||
screen->GetFlashedPalette (palette);
|
||||
M_CreatePNG (file, pic->GetBuffer(), palette, SS_PAL, width, height, pic->GetPitch());
|
||||
pic->Unlock ();
|
||||
delete pic;
|
||||
screen->WriteSavePic(&players[consoleplayer], file, width, height);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -61,6 +61,7 @@
|
|||
#include "hardware.h"
|
||||
#include "r_translate.h"
|
||||
#include "f_wipe.h"
|
||||
#include "m_png.h"
|
||||
|
||||
IMPLEMENT_ABSTRACT_CLASS (DCanvas)
|
||||
IMPLEMENT_ABSTRACT_CLASS (DFrameBuffer)
|
||||
|
@ -1310,6 +1311,7 @@ void DFrameBuffer::CopyPixelData(BYTE * buffer, int texpitch, int texheight, int
|
|||
// Render the view
|
||||
//
|
||||
//===========================================================================
|
||||
|
||||
void DFrameBuffer::RenderView(player_t *player)
|
||||
{
|
||||
R_RenderActorView (player->mo);
|
||||
|
@ -1318,6 +1320,26 @@ void DFrameBuffer::RenderView(player_t *player)
|
|||
FCanvasTextureInfo::UpdateAll ();
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
//
|
||||
// Render the view to a savegame picture
|
||||
//
|
||||
//===========================================================================
|
||||
|
||||
void DFrameBuffer::WriteSavePic (player_t *player, FILE *file, int width, int height)
|
||||
{
|
||||
DCanvas *pic = new DSimpleCanvas (width, height);
|
||||
PalEntry palette[256];
|
||||
|
||||
// Take a snapshot of the player's view
|
||||
pic->Lock ();
|
||||
R_RenderViewToCanvas (player->mo, pic, 0, 0, width, height);
|
||||
GetFlashedPalette (palette);
|
||||
M_CreatePNG (file, pic->GetBuffer(), palette, SS_PAL, width, height, pic->GetPitch());
|
||||
pic->Unlock ();
|
||||
delete pic;
|
||||
}
|
||||
|
||||
|
||||
|
||||
FNativePalette::~FNativePalette()
|
||||
|
|
|
@ -346,6 +346,9 @@ public:
|
|||
// render 3D view
|
||||
virtual void RenderView(player_t *player);
|
||||
|
||||
// renders view to a savegame picture
|
||||
virtual void WriteSavePic (player_t *player, FILE *file, int width, int height);
|
||||
|
||||
bool Accel2D; // If true, 2D drawing can be accelerated.
|
||||
|
||||
// Begin 2D drawing operations. This is like Update, but it doesn't end
|
||||
|
|
Loading…
Reference in a new issue