mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-09-02 15:45:58 +00:00
Implement experimental Vulkan backend
This commit is contained in:
parent
fdd954e7e7
commit
77a128ab87
59 changed files with 14533 additions and 1 deletions
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;
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue