* Introduce FrameGraphInfo class * Move the assignment into pimpl * Make ctors explicit * Add ctors to fg info structs * Revert the macro change to align with existing * Address the comments * Remove pimpl and move func def to .cc * Fix * Convert the FrameGraph to FrameGraphInfo * Initialize and update debug server on engine side * Fix compile error * Address the comments * Update * Use camelCase * Use camelCase * Update * Add JsonWriter to convert fginfo to json * Add getStatus api and implement it * Add increment * Implement GET apis * Fix compile error * Update * Use c_str_safe * Add operator== for FrameGraphInfo * Call updateFrameGraph in appropriate locations * Address the comments
78 lines
2.5 KiB
C++
78 lines
2.5 KiB
C++
/*
|
|
* Copyright (C) 2024 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
#include <fgviewer/FrameGraphInfo.h>
|
|
|
|
namespace filament::fgviewer {
|
|
|
|
FrameGraphInfo::FrameGraphInfo(utils::CString viewName):
|
|
viewName(std::move(viewName)), passes({}), resources({}) {}
|
|
|
|
FrameGraphInfo::~FrameGraphInfo() = default;
|
|
|
|
FrameGraphInfo::FrameGraphInfo(FrameGraphInfo&& rhs) noexcept = default;
|
|
|
|
bool FrameGraphInfo::operator==(const FrameGraphInfo& rhs) const {
|
|
return viewName == rhs.viewName
|
|
&& passes == rhs.passes
|
|
&& resources == rhs.resources;
|
|
}
|
|
|
|
FrameGraphInfo::Pass::Pass(utils::CString name, std::vector<ResourceId> reads,
|
|
std::vector<ResourceId> writes): name(std::move(name)),
|
|
reads(std::move(reads)),
|
|
writes(std::move(writes)) {}
|
|
|
|
bool FrameGraphInfo::Pass::operator==(const Pass& rhs) const {
|
|
return name == rhs.name && reads == rhs.reads && writes == rhs.writes;
|
|
}
|
|
|
|
FrameGraphInfo::Resource::Resource(ResourceId id, utils::CString name,
|
|
std::vector<Property> properties): id(id),
|
|
name(std::move(name)), properties(std::move(properties)) {}
|
|
|
|
bool FrameGraphInfo::Resource::operator==(const Resource& rhs) const {
|
|
return id == rhs.id && name == rhs.name && properties == rhs.properties;
|
|
}
|
|
|
|
bool FrameGraphInfo::Resource::Property::operator==(const Property &rhs) const {
|
|
return name == rhs.name && value == rhs.value;
|
|
}
|
|
|
|
void FrameGraphInfo::setResources(
|
|
std::unordered_map<ResourceId, Resource> resources) {
|
|
this->resources = std::move(resources);
|
|
}
|
|
|
|
void FrameGraphInfo::setPasses(std::vector<Pass> sortedPasses) {
|
|
passes = std::move(sortedPasses);
|
|
}
|
|
|
|
const char* FrameGraphInfo::getViewName() const {
|
|
return viewName.c_str_safe();
|
|
}
|
|
|
|
const std::vector<FrameGraphInfo::Pass>& FrameGraphInfo::getPasses() const {
|
|
return passes;
|
|
}
|
|
|
|
const std::unordered_map<ResourceId, FrameGraphInfo::Resource>&
|
|
FrameGraphInfo::getResources() const {
|
|
return resources;
|
|
}
|
|
|
|
} // namespace filament::fgviewer
|