args.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /*
  2. * Copyright 2011-2025 Branimir Karadzic. All rights reserved.
  3. * License: http://www.opensource.org/licenses/BSD-2-Clause
  4. */
  5. #include <bgfx/bgfx.h>
  6. #include <bx/commandline.h>
  7. ///
  8. struct Args
  9. {
  10. Args(int _argc, const char* const* _argv)
  11. : m_type(bgfx::RendererType::Count)
  12. , m_pciId(BGFX_PCI_ID_NONE)
  13. {
  14. bx::CommandLine cmdLine(_argc, (const char**)_argv);
  15. if (cmdLine.hasArg("gl") )
  16. {
  17. m_type = bgfx::RendererType::OpenGL;
  18. }
  19. else if (cmdLine.hasArg("vk") )
  20. {
  21. m_type = bgfx::RendererType::Vulkan;
  22. }
  23. else if (cmdLine.hasArg("noop") )
  24. {
  25. m_type = bgfx::RendererType::Noop;
  26. }
  27. else if (cmdLine.hasArg("d3d11") )
  28. {
  29. m_type = bgfx::RendererType::Direct3D11;
  30. }
  31. else if (cmdLine.hasArg("d3d12") )
  32. {
  33. m_type = bgfx::RendererType::Direct3D12;
  34. }
  35. else if (BX_ENABLED(BX_PLATFORM_OSX) )
  36. {
  37. if (cmdLine.hasArg("mtl") )
  38. {
  39. m_type = bgfx::RendererType::Metal;
  40. }
  41. }
  42. if (cmdLine.hasArg("amd") )
  43. {
  44. m_pciId = BGFX_PCI_ID_AMD;
  45. }
  46. else if (cmdLine.hasArg("nvidia") )
  47. {
  48. m_pciId = BGFX_PCI_ID_NVIDIA;
  49. }
  50. else if (cmdLine.hasArg("intel") )
  51. {
  52. m_pciId = BGFX_PCI_ID_INTEL;
  53. }
  54. else if (cmdLine.hasArg("sw") )
  55. {
  56. m_pciId = BGFX_PCI_ID_SOFTWARE_RASTERIZER;
  57. }
  58. }
  59. bgfx::RendererType::Enum m_type;
  60. uint16_t m_pciId;
  61. };