summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_null/renderer_null.h
blob: 34dbe1e4f04c449419e3a5671a57a8041ca685ee (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

#include <memory>
#include <string>

#include "video_core/renderer_base.h"
#include "video_core/renderer_null/null_rasterizer.h"

namespace Null {

class RendererNull final : public VideoCore::RendererBase {
public:
    explicit RendererNull(Core::Frontend::EmuWindow& emu_window, Tegra::GPU& gpu,
                          std::unique_ptr<Core::Frontend::GraphicsContext> context);
    ~RendererNull() override;

    void Composite(std::span<const Tegra::FramebufferConfig> framebuffer) override;

    std::vector<u8> GetAppletCaptureBuffer() override;

    VideoCore::RasterizerInterface* ReadRasterizer() override {
        return &m_rasterizer;
    }

    [[nodiscard]] std::string GetDeviceVendor() const override {
        return "NULL";
    }

private:
    Tegra::GPU& m_gpu;
    RasterizerNull m_rasterizer;
};

} // namespace Null