Move function that parses the graphics mode from a string into graphics_mode.cc.
PiperOrigin-RevId: 878482669 Change-Id: I8b713bc740c5711b9c7cc9ea63c21bad42cd2943
This commit is contained in:
committed by
Copybara-Service
parent
c70b05e037
commit
64597f45d3
@@ -14,6 +14,9 @@
|
||||
|
||||
#include "experimental/platform/graphics_mode.h"
|
||||
|
||||
#include <string_view>
|
||||
#include <mujoco/mujoco.h>
|
||||
|
||||
namespace mujoco::platform {
|
||||
|
||||
bool IsClassic(GraphicsMode gfx_mode) {
|
||||
@@ -48,4 +51,26 @@ bool IsHeadless(GraphicsMode gfx_mode) {
|
||||
gfx_mode == GraphicsMode::FilamentOpenGlHeadless;
|
||||
}
|
||||
|
||||
GraphicsMode GraphicsModeFromString(std::string_view str,
|
||||
GraphicsMode default_mode) {
|
||||
if (str == "classic") {
|
||||
return GraphicsMode::ClassicOpenGl;
|
||||
} else if (str == "classic_headless") {
|
||||
return GraphicsMode::ClassicOpenGlHeadless;
|
||||
} else if (str == "opengl") {
|
||||
return GraphicsMode::FilamentOpenGl;
|
||||
} else if (str == "vulkan") {
|
||||
return GraphicsMode::FilamentVulkan;
|
||||
} else if (str == "webgl") {
|
||||
return GraphicsMode::FilamentWebGl;
|
||||
} else if (str == "opengl_headless") {
|
||||
return GraphicsMode::FilamentOpenGlHeadless;
|
||||
} else if (str.empty()) {
|
||||
return default_mode;
|
||||
} else {
|
||||
mju_error("Unsupported graphics mode: %s", str.data());
|
||||
return default_mode;
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace mujoco::platform
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
#ifndef MUJOCO_SRC_EXPERIMENTAL_PLATFORM_GRAPHICS_MODE_H_
|
||||
#define MUJOCO_SRC_EXPERIMENTAL_PLATFORM_GRAPHICS_MODE_H_
|
||||
|
||||
#include <string_view>
|
||||
|
||||
namespace mujoco::platform {
|
||||
|
||||
// Describes the configuration of the graphics and rendering systems.
|
||||
@@ -45,6 +47,9 @@ bool IsVulkan(GraphicsMode gfx_mode);
|
||||
bool IsWebGl(GraphicsMode gfx_mode);
|
||||
bool IsHeadless(GraphicsMode gfx_mode);
|
||||
|
||||
GraphicsMode GraphicsModeFromString(std::string_view str,
|
||||
GraphicsMode default_mode);
|
||||
|
||||
} // namespace mujoco::platform
|
||||
|
||||
#endif // MUJOCO_SRC_EXPERIMENTAL_PLATFORM_GRAPHICS_MODE_H_
|
||||
|
||||
@@ -105,20 +105,8 @@ int main(int argc, char** argv, char** envp) {
|
||||
std::string gfx = absl::GetFlag(FLAGS_gfx);
|
||||
|
||||
mujoco::platform::GraphicsMode gfx_mode =
|
||||
mujoco::platform::GraphicsMode::FilamentVulkan;
|
||||
if (gfx == "classic") {
|
||||
gfx_mode = mujoco::platform::GraphicsMode::ClassicOpenGl;
|
||||
} else if (gfx == "classic_headless") {
|
||||
gfx_mode = mujoco::platform::GraphicsMode::ClassicOpenGlHeadless;
|
||||
} else if (gfx == "opengl") {
|
||||
gfx_mode = mujoco::platform::GraphicsMode::FilamentOpenGl;
|
||||
} else if (gfx == "opengl_headless") {
|
||||
gfx_mode = mujoco::platform::GraphicsMode::FilamentOpenGlHeadless;
|
||||
} else if (gfx == "vulkan" || gfx.empty()) {
|
||||
gfx_mode = mujoco::platform::GraphicsMode::FilamentVulkan;
|
||||
} else {
|
||||
mju_error("Unsupported graphics API: %s", gfx.c_str());
|
||||
}
|
||||
mujoco::platform::GraphicsModeFromString(
|
||||
gfx, mujoco::platform::GraphicsMode::FilamentVulkan);
|
||||
|
||||
const int width = absl::GetFlag(FLAGS_window_width);
|
||||
const int height = absl::GetFlag(FLAGS_window_height);
|
||||
|
||||
Reference in New Issue
Block a user