Remove the unused "front" draw2d buffer. Saves 1.5MB of RAM.

This commit is contained in:
Henrik Rydgård 2023-12-08 12:29:24 +01:00
parent a22450320b
commit 376db1f931
7 changed files with 10 additions and 25 deletions

View File

@ -24,14 +24,13 @@ UIContext::~UIContext() {
delete textDrawer_;
}
void UIContext::Init(Draw::DrawContext *thin3d, Draw::Pipeline *uipipe, Draw::Pipeline *uipipenotex, DrawBuffer *uidrawbuffer, DrawBuffer *uidrawbufferTop) {
void UIContext::Init(Draw::DrawContext *thin3d, Draw::Pipeline *uipipe, Draw::Pipeline *uipipenotex, DrawBuffer *uidrawbuffer) {
using namespace Draw;
draw_ = thin3d;
sampler_ = draw_->CreateSamplerState({ TextureFilter::LINEAR, TextureFilter::LINEAR, TextureFilter::LINEAR, 0.0, TextureAddressMode::CLAMP_TO_EDGE, TextureAddressMode::CLAMP_TO_EDGE, TextureAddressMode::CLAMP_TO_EDGE, });
ui_pipeline_ = uipipe;
ui_pipeline_notex_ = uipipenotex;
uidrawbuffer_ = uidrawbuffer;
uidrawbufferTop_ = uidrawbufferTop;
textDrawer_ = TextDrawer::Create(thin3d); // May return nullptr if no implementation is available for this platform.
}
@ -59,14 +58,12 @@ void UIContext::BeginFrame() {
}
}
}
uidrawbufferTop_->SetCurZ(0.0f);
uidrawbuffer_->SetCurZ(0.0f);
ActivateTopScissor();
}
void UIContext::SetTintSaturation(float tint, float sat) {
uidrawbuffer_->SetTintSaturation(tint, sat);
uidrawbufferTop_->SetTintSaturation(tint, sat);
}
void UIContext::Begin() {
@ -106,14 +103,10 @@ void UIContext::Flush() {
if (uidrawbuffer_) {
uidrawbuffer_->Flush();
}
if (uidrawbufferTop_) {
uidrawbufferTop_->Flush();
}
}
void UIContext::SetCurZ(float curZ) {
ui_draw2d.SetCurZ(curZ);
ui_draw2d_front.SetCurZ(curZ);
}
// TODO: Support transformed bounds using stencil instead.

View File

@ -50,7 +50,7 @@ public:
UIContext();
~UIContext();
void Init(Draw::DrawContext *thin3d, Draw::Pipeline *uipipe, Draw::Pipeline *uipipenotex, DrawBuffer *uidrawbuffer, DrawBuffer *uidrawbufferTop);
void Init(Draw::DrawContext *thin3d, Draw::Pipeline *uipipe, Draw::Pipeline *uipipenotex, DrawBuffer *uidrawbuffer);
void BeginFrame();
@ -70,7 +70,6 @@ public:
void ActivateTopScissor();
DrawBuffer *Draw() const { return uidrawbuffer_; }
DrawBuffer *DrawTop() const { return uidrawbufferTop_; }
// Utility methods
TextDrawer *Text() const { return textDrawer_; }
@ -137,7 +136,6 @@ private:
std::unique_ptr<ManagedTexture> fontTexture_;
DrawBuffer *uidrawbuffer_ = nullptr;
DrawBuffer *uidrawbufferTop_ = nullptr;
std::vector<Bounds> scissorStack_;
std::vector<UITransform> transformStack_;

View File

@ -13,10 +13,8 @@ DrawBuffer ui_draw2d_front;
void UIBegin(Draw::Pipeline *pipeline) {
ui_draw2d.Begin(pipeline);
ui_draw2d_front.Begin(pipeline);
}
void UIFlush() {
ui_draw2d.Flush();
ui_draw2d_front.Flush();
}

View File

@ -36,7 +36,6 @@ struct Atlas;
// This is the drawbuffer used for UI. Remember to flush it at the end of the frame.
// TODO: One should probably pass it in through UIInit.
extern DrawBuffer ui_draw2d;
extern DrawBuffer ui_draw2d_front; // for things that need to be on top of the rest
// TODO: These don't really belong here.

View File

@ -34,7 +34,7 @@ static void SplitCSVLine(const std::string_view str, std::vector<std::string_vie
result.push_back(finalColumn);
}
static void splitSV(std::string_view strv, char delim, bool removeWhiteSpace, std::vector<std::string_view> *output) {
static void SplitSV(std::string_view strv, char delim, bool removeWhiteSpace, std::vector<std::string_view> *output) {
size_t first = 0;
while (first < strv.size()) {
const auto second = strv.find(delim, first);
@ -67,7 +67,7 @@ bool GameDB::LoadFromVFS(VFSInterface &vfs, const char *filename) {
// Split the string into views of each line, keeping the original.
std::vector<std::string_view> lines;
lines.reserve(RESERVE_COUNT);
splitSV(contents_, '\n', false, &lines);
SplitSV(contents_, '\n', false, &lines);
SplitCSVLine(lines[0], columns_);
const size_t titleColumn = GetColumnIndex("Title");
@ -91,7 +91,7 @@ bool GameDB::LoadFromVFS(VFSInterface &vfs, const char *filename) {
Line line;
line.title = items[titleColumn];
line.foreignTitle = items[foreignTitleColumn];
line.serials = splitSV(items[serialColumn], ',', true);
SplitSV(items[serialColumn], ',', true, &line.serials);
line.crc = items[crcColumn];
line.size = items[sizeColumn];
lines_.push_back(line);

View File

@ -128,10 +128,13 @@ void DevMenuScreen::CreatePopupContents(UI::ViewGroup *parent) {
#endif
items->Add(new Choice(dev->T("Logging Channels")))->OnClick.Handle(this, &DevMenuScreen::OnLogConfig);
items->Add(new Choice(sy->T("Developer Tools")))->OnClick.Handle(this, &DevMenuScreen::OnDeveloperTools);
// Debug overlay
AddOverlayList(items, screenManager());
items->Add(new Choice(dev->T("Jit Compare")))->OnClick.Handle(this, &DevMenuScreen::OnJitCompare);
items->Add(new Choice(dev->T("Shader Viewer")))->OnClick.Handle(this, &DevMenuScreen::OnShaderView);
AddOverlayList(items, screenManager());
items->Add(new Choice(dev->T("Toggle Freeze")))->OnClick.Add([](UI::EventParams &e) {
if (PSP_CoreParameter().frozen) {
PSP_CoreParameter().frozen = false;

View File

@ -853,17 +853,14 @@ bool NativeInitGraphics(GraphicsContext *graphicsContext) {
ui_draw2d.SetAtlas(GetUIAtlas());
ui_draw2d.SetFontAtlas(GetFontAtlas());
ui_draw2d_front.SetAtlas(GetUIAtlas());
ui_draw2d_front.SetFontAtlas(GetFontAtlas());
uiContext = new UIContext();
uiContext->theme = GetTheme();
UpdateTheme(uiContext);
ui_draw2d.Init(g_draw, texColorPipeline);
ui_draw2d_front.Init(g_draw, texColorPipeline);
uiContext->Init(g_draw, texColorPipeline, colorPipeline, &ui_draw2d, &ui_draw2d_front);
uiContext->Init(g_draw, texColorPipeline, colorPipeline, &ui_draw2d);
if (uiContext->Text())
uiContext->Text()->SetFont("Tahoma", 20, 0);
@ -990,7 +987,6 @@ void NativeShutdownGraphics() {
uiContext = nullptr;
ui_draw2d.Shutdown();
ui_draw2d_front.Shutdown();
if (colorPipeline) {
colorPipeline->Release();
@ -1141,7 +1137,6 @@ void NativeFrame(GraphicsContext *graphicsContext) {
g_draw->BeginFrame(debugFlags);
ui_draw2d.PushDrawMatrix(ortho);
ui_draw2d_front.PushDrawMatrix(ortho);
g_screenManager->getUIContext()->SetTintSaturation(g_Config.fUITint, g_Config.fUISaturation);
@ -1152,7 +1147,6 @@ void NativeFrame(GraphicsContext *graphicsContext) {
}
ui_draw2d.PopDrawMatrix();
ui_draw2d_front.PopDrawMatrix();
g_draw->EndFrame();