mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-15 22:09:19 -07:00
b066d51dfa
There's not a lot of point in passing these around or storing them (texture cache/state tracker mainly) as there will only ever be a single instance of the class. Also adds downcast helpers such as Vulkan::Renderer::GetInstance().
46 lines
956 B
C++
46 lines
956 B
C++
// Copyright 2016 Dolphin Emulator Project
|
|
// Licensed under GPLv2+
|
|
// Refer to the license.txt file included.
|
|
|
|
#pragma once
|
|
|
|
#include <memory>
|
|
#include <vector>
|
|
|
|
#include "Common/CommonTypes.h"
|
|
#include "VideoCommon/VertexManagerBase.h"
|
|
|
|
namespace Vulkan
|
|
{
|
|
class StreamBuffer;
|
|
|
|
class VertexManager : public VertexManagerBase
|
|
{
|
|
public:
|
|
VertexManager();
|
|
~VertexManager();
|
|
|
|
static VertexManager* GetInstance();
|
|
|
|
bool Initialize();
|
|
|
|
NativeVertexFormat* CreateNativeVertexFormat(const PortableVertexDeclaration& vtx_decl) override;
|
|
|
|
protected:
|
|
void PrepareDrawBuffers(u32 stride);
|
|
void ResetBuffer(u32 stride) override;
|
|
|
|
private:
|
|
void vFlush(bool use_dst_alpha) override;
|
|
|
|
std::vector<u8> m_cpu_vertex_buffer;
|
|
std::vector<u16> m_cpu_index_buffer;
|
|
|
|
std::unique_ptr<StreamBuffer> m_vertex_stream_buffer;
|
|
std::unique_ptr<StreamBuffer> m_index_stream_buffer;
|
|
|
|
u32 m_current_draw_base_vertex = 0;
|
|
u32 m_current_draw_base_index = 0;
|
|
};
|
|
}
|