mirror of
https://github.com/citra-emu/citra.git
synced 2025-07-06 01:51:04 +00:00

Some state now updates when PICA registers actually change Made rast state persistent and renderer state only during swap Removed outmaps as they are only needed for hw vtx shaders Made util func for IsNotPassThroughTevStage
35 lines
1.1 KiB
C++
35 lines
1.1 KiB
C++
// Copyright 2015 Citra Emulator Project
|
|
// Licensed under GPLv2 or any later version
|
|
// Refer to the license.txt file included.
|
|
|
|
#pragma once
|
|
|
|
#include "common/emu_window.h"
|
|
#include "video_core/vertex_shader.h"
|
|
|
|
class HWRasterizer {
|
|
public:
|
|
virtual ~HWRasterizer() {
|
|
}
|
|
|
|
/// Initialize API-specific GPU objects
|
|
virtual void InitObjects() = 0;
|
|
|
|
/// Queues the primitive formed by the given vertices for rendering
|
|
virtual void AddTriangle(const Pica::VertexShader::OutputVertex& v0,
|
|
const Pica::VertexShader::OutputVertex& v1,
|
|
const Pica::VertexShader::OutputVertex& v2) = 0;
|
|
|
|
/// Draw the current batch of triangles
|
|
virtual void DrawTriangles() = 0;
|
|
|
|
/// Notify rasterizer that the specified PICA register has been changed
|
|
virtual void NotifyPicaRegisterChanged(u32 id) = 0;
|
|
|
|
/// Notify rasterizer that the specified 3DS memory region will be read from after this notification
|
|
virtual void NotifyPreRead(PAddr addr, u32 size) = 0;
|
|
|
|
/// Notify rasterizer that a 3DS memory region has been changed
|
|
virtual void NotifyFlush(PAddr addr, u32 size) = 0;
|
|
};
|