Split Renderer class into explicit "classic" and "filament" classes.

PiperOrigin-RevId: 960272089
Change-Id: I9494472b7b8e838a75beaf0cd68e5ce4b42a80a4
This commit is contained in:
Haroon Qureshi
2026-08-06 06:52:01 -07:00
committed by Copybara-Service
parent 7f305abd71
commit 63b779042c
12 changed files with 722 additions and 480 deletions
@@ -26,8 +26,8 @@
#include <imgui.h>
#include <implot.h>
#include <mujoco/mujoco.h>
#include <mujoco/experimental/platform/hal/filament_renderer.h>
#include <mujoco/experimental/platform/hal/graphics_mode.h>
#include <mujoco/experimental/platform/hal/renderer.h>
#include <mujoco/experimental/platform/hal/window.h>
#include <mujoco/experimental/platform/sys_utils.h>
#include "structs.h"
@@ -119,7 +119,7 @@ class Viewer {
width, height, config);
ImPlot::CreateContext();
renderer_ = std::make_unique<mujoco::platform::Renderer>(
renderer_ = std::make_unique<mujoco::platform::FilamentRenderer>(
window_->GetNativeWindowHandle(), config.gfx_mode);
}
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
#include <mujoco/experimental/platform/hal/renderer.h>
#include <mujoco/experimental/platform/hal/filament_renderer.h>
#include <cstddef>
#include <memory>
@@ -32,7 +32,7 @@ namespace mujoco::python {
class Renderer {
public:
using RendererImpl = mujoco::platform::Renderer;
using RendererImpl = mujoco::platform::FilamentRenderer;
using GraphicsMode = mujoco::platform::GraphicsMode;
Renderer(const std::string& graphics_mode_str) {
@@ -43,7 +43,7 @@
#include <imgui.h>
#include <implot.h>
#include <mujoco/mujoco.h>
#include "experimental/platform/hal/renderer.h"
#include "experimental/platform/hal/filament_renderer.h"
#include "experimental/platform/hal/window.h"
#include "experimental/platform/sim/model_holder.h"
#include "experimental/platform/ux/interaction.h"
@@ -757,7 +757,7 @@ void StartApp() {
1400, 720, config);
ImPlot::CreateContext(); // Needed if the server app uses ImPlot.
g_app.renderer = new mujoco::platform::Renderer(
g_app.renderer = new mujoco::platform::FilamentRenderer(
g_app.window->GetNativeWindowHandle(), config.gfx_mode);
// Initialize an empty dummy scene so Filament and ImGui are ready to render