summaryrefslogblamecommitdiffstats
path: root/src/video_core/video_core.h
blob: b8e0ac3728f7b5145f35ff1eae5bd7775dc0e658 (plain) (tree)
1
2
3
4
5
6
7
8
                                        
                                            
                                          


            
                 
 



                
                          
                
 
 



                 

                     
                   
 





                                                                       

                                                                                   
 


                                                                    

                                                           
                        
// Copyright 2014 Citra Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.

#pragma once

#include <memory>

namespace Core {
class System;
}

namespace Core::Frontend {
class EmuWindow;
}

namespace Tegra {
class GPU;
}

namespace VideoCore {

class RendererBase;

/**
 * Creates a renderer instance.
 *
 * @note The returned renderer instance is simply allocated. Its Init()
 *       function still needs to be called to fully complete its setup.
 */
std::unique_ptr<RendererBase> CreateRenderer(Core::Frontend::EmuWindow& emu_window,
                                             Core::System& system);

/// Creates an emulated GPU instance using the given system context.
std::unique_ptr<Tegra::GPU> CreateGPU(Core::System& system);

u16 GetResolutionScaleFactor(const RendererBase& renderer);

} // namespace VideoCore