VideoCommon: add logic to generate render targets using a render target template and some other metadata

This commit is contained in:
iwubcode 2025-02-28 00:01:27 -06:00
commit e56e694cd8
2 changed files with 46 additions and 0 deletions

View file

@ -0,0 +1,29 @@
// Copyright 2025 Dolphin Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
#include "VideoCommon/GraphicsModEditor/RenderTargetGeneration.h"
#include "Common/JsonUtil.h"
#include "Common/StringUtil.h"
#include "VideoCommon/GraphicsModEditor/EditorState.h"
namespace GraphicsModEditor
{
EditorAsset* GenerateRenderTarget(const std::filesystem::path& output_path,
const VideoCommon::RenderTargetData& data,
GraphicsModEditor::EditorAssetSource* source)
{
picojson::object obj;
VideoCommon::RenderTargetData::ToJson(&obj, data);
const auto metadata_path = output_path / "metadata.rendertarget";
if (!JsonToFile(PathToString(metadata_path), picojson::value{obj}, true))
{
return nullptr;
}
source->AddAsset(metadata_path);
return source->GetAssetFromPath(metadata_path);
}
} // namespace GraphicsModEditor

View file

@ -0,0 +1,17 @@
// Copyright 2025 Dolphin Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include <filesystem>
#include "VideoCommon/Assets/RenderTargetAsset.h"
namespace GraphicsModEditor
{
struct EditorAsset;
class EditorAssetSource;
EditorAsset* GenerateRenderTarget(const std::filesystem::path& output_path,
const VideoCommon::RenderTargetData& data,
GraphicsModEditor::EditorAssetSource* source);
} // namespace GraphicsModEditor