mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-24 14:49:42 -06:00
Implement experimental Vulkan backend
This commit is contained in:
44
Source/Core/VideoBackends/Vulkan/VertexManager.h
Normal file
44
Source/Core/VideoBackends/Vulkan/VertexManager.h
Normal file
@ -0,0 +1,44 @@
|
||||
// Copyright 2016 Dolphin Emulator Project
|
||||
// Licensed under GPLv2+
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "VideoCommon/VertexManagerBase.h"
|
||||
|
||||
namespace Vulkan
|
||||
{
|
||||
class StateTracker;
|
||||
class StreamBuffer;
|
||||
|
||||
class VertexManager : public VertexManagerBase
|
||||
{
|
||||
public:
|
||||
VertexManager();
|
||||
~VertexManager();
|
||||
|
||||
bool Initialize(StateTracker* state_tracker);
|
||||
|
||||
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;
|
||||
|
||||
StateTracker* m_state_tracker = nullptr;
|
||||
|
||||
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;
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user