video_core.h 877 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. // Copyright 2014 Citra Emulator Project
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include <memory>
  6. namespace Core {
  7. class System;
  8. }
  9. namespace Core::Frontend {
  10. class EmuWindow;
  11. }
  12. namespace Tegra {
  13. class GPU;
  14. }
  15. namespace VideoCore {
  16. class RendererBase;
  17. /**
  18. * Creates a renderer instance.
  19. *
  20. * @note The returned renderer instance is simply allocated. Its Init()
  21. * function still needs to be called to fully complete its setup.
  22. */
  23. std::unique_ptr<RendererBase> CreateRenderer(Core::Frontend::EmuWindow& emu_window,
  24. Core::System& system);
  25. /// Creates an emulated GPU instance using the given system context.
  26. std::unique_ptr<Tegra::GPU> CreateGPU(Core::System& system);
  27. u16 GetResolutionScaleFactor(const RendererBase& renderer);
  28. } // namespace VideoCore