1 // Copyright 2015 Dolphin Emulator Project
2 // Licensed under GPLv2+
3 // Refer to the license.txt file included.
4 
5 #pragma once
6 
7 #include <functional>
8 #include "VideoCommon/PixelShaderGen.h"
9 
10 namespace UberShader
11 {
12 #pragma pack(1)
13 struct vertex_ubershader_uid_data
14 {
15   u32 num_texgens : 4;
16 
NumValuesvertex_ubershader_uid_data17   u32 NumValues() const { return sizeof(vertex_ubershader_uid_data); }
18 };
19 #pragma pack()
20 
21 using VertexShaderUid = ShaderUid<vertex_ubershader_uid_data>;
22 
23 VertexShaderUid GetVertexShaderUid();
24 
25 ShaderCode GenVertexShader(APIType api_type, const ShaderHostConfig& host_config,
26                            const vertex_ubershader_uid_data* uid_data);
27 void EnumerateVertexShaderUids(const std::function<void(const VertexShaderUid&)>& callback);
28 }  // namespace UberShader
29