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