VideoRecorder added

This commit is contained in:
ecumber
2022-07-13 11:53:28 -07:00
parent 9d3bc8cfe1
commit 3034895d2f
6 changed files with 57 additions and 6 deletions
+4 -4
View File
@@ -88749,10 +88749,10 @@ Address,Quality,Size,Name
0x00000071010ba344,O,000596,_ZN4ksys13BasicProfiler3popEPKc
0x00000071010ba598,m,000176,_GLOBAL__sub_I_BasicProfiler.cpp
0x00000071010ba648,U,000212,
0x00000071010ba71c,U,000100,
0x00000071010ba780,U,000108,
0x00000071010ba7ec,U,000240,VideoRecorder::createInstance
0x00000071010ba8dc,U,000224,VideoRecorder::postCalc
0x00000071010ba71c,O,000100,_ZN4ksys13VideoRecorder18SingletonDisposer_D2Ev
0x00000071010ba780,O,000108,_ZN4ksys13VideoRecorder18SingletonDisposer_D0Ev
0x00000071010ba7ec,O,000240,_ZN4ksys13VideoRecorder14createInstanceEPN4sead4HeapE
0x00000071010ba8dc,O,000224,_ZN4ksys13VideoRecorder8postCalcEv
0x00000071010ba9bc,U,000004,nullsub_4499
0x00000071010ba9c0,U,000004,j__ZdlPv_1189
0x00000071010ba9c4,U,000004,nullsub_5565
Can't render this file because it is too large.
+1 -1
Submodule lib/agl updated: 62c3993c8e...b31cfcd01e
+2
View File
@@ -54,6 +54,8 @@ target_sources(uking PRIVATE
Timer.h
UIGlue.cpp
UIGlue.h
VideoRecorder.cpp
VideoRecorder.h
VFR.cpp
VFR.h
VFRValue.cpp
+18
View File
@@ -0,0 +1,18 @@
#include "KingSystem/System/VideoRecorder.h"
namespace ksys {
SEAD_SINGLETON_DISPOSER_IMPL(VideoRecorder)
void VideoRecorder::postCalc() {
if (!isCaptureEnabled())
return;
u32 framenum = mFrameNumber;
sead::FixedSafeString<0x100> output;
output.format("%s/%04d.tga", mFilename.cstr(), framenum);
agl::utl::ScreenShotMgr::instance()->reserveCaptureWithDebugHeap(
true, agl::TextureDataSerializerTGA::TGAFormat::_1, output, false);
mFrameNumber++;
}
} // namespace ksys
+31
View File
@@ -0,0 +1,31 @@
#pragma once
#include <agl/utl/aglScreenShotMgr.h>
#include <basis/seadNew.h>
#include <heap/seadDisposer.h>
#include <prim/seadSafeString.h>
#include "KingSystem/Utils/Types.h"
namespace ksys {
class VideoRecorder {
SEAD_SINGLETON_DISPOSER(VideoRecorder)
VideoRecorder() = default;
virtual ~VideoRecorder();
public:
void postCalc();
bool isCaptureEnabled() const { return mCaptureEnabled; }
u32 getFrameNumber() const { return mFrameNumber; }
const sead::SafeString& getFileName() const { return mFilename; }
private:
bool mCaptureEnabled = false;
bool _29 = true;
u32 mFrameNumber = 0;
sead::FixedSafeString<0x100> mFilename;
};
KSYS_CHECK_SIZE_NX150(VideoRecorder, 0x148);
} // namespace ksys