2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-15 03:26:08 +00:00

Start wiring up wgpu+winit

This commit is contained in:
2022-01-31 19:06:54 -05:00
parent 5491fd75cf
commit e48435f11e
209 changed files with 24234 additions and 8085 deletions

View File

@@ -4,8 +4,8 @@
#include "Runtime/GuiSys/CGuiWidget.hpp"
#include <hecl/UniformBufferPool.hpp>
#include <hecl/VertexBufferPool.hpp>
//#include <hecl/UniformBufferPool.hpp>
//#include <hecl/VertexBufferPool.hpp>
#include <zeus/CColor.hpp>
#include <zeus/CMatrix4f.hpp>
@@ -21,13 +21,13 @@ class CTextRenderBuffer;
class CTextSupportShader {
friend class CTextRenderBuffer;
static boo::ObjToken<boo::IShaderPipeline> s_TextAlphaPipeline;
static boo::ObjToken<boo::IShaderPipeline> s_TextAddPipeline;
static boo::ObjToken<boo::IShaderPipeline> s_TextAddOverdrawPipeline;
static boo::ObjToken<boo::IShaderPipeline> s_ImageAlphaPipeline;
static boo::ObjToken<boo::IShaderPipeline> s_ImageAddPipeline;
static boo::ObjToken<boo::IShaderPipeline> s_ImageAddOverdrawPipeline;
// static boo::ObjToken<boo::IShaderPipeline> s_TextAlphaPipeline;
// static boo::ObjToken<boo::IShaderPipeline> s_TextAddPipeline;
// static boo::ObjToken<boo::IShaderPipeline> s_TextAddOverdrawPipeline;
//
// static boo::ObjToken<boo::IShaderPipeline> s_ImageAlphaPipeline;
// static boo::ObjToken<boo::IShaderPipeline> s_ImageAddPipeline;
// static boo::ObjToken<boo::IShaderPipeline> s_ImageAddOverdrawPipeline;
struct Uniform {
zeus::CMatrix4f m_mvp;
@@ -50,47 +50,47 @@ class CTextSupportShader {
void SetMetrics(const CFontImageDef& imgDef, const zeus::CVector2i& offset);
};
static hecl::VertexBufferPool<CharacterInstance> s_CharInsts;
static hecl::VertexBufferPool<ImageInstance> s_ImgInsts;
static hecl::UniformBufferPool<Uniform> s_Uniforms;
// static hecl::VertexBufferPool<CharacterInstance> s_CharInsts;
// static hecl::VertexBufferPool<ImageInstance> s_ImgInsts;
// static hecl::UniformBufferPool<Uniform> s_Uniforms;
public:
static boo::ObjToken<boo::IShaderPipeline> SelectTextPipeline(CGuiWidget::EGuiModelDrawFlags df) {
switch (df) {
case CGuiWidget::EGuiModelDrawFlags::Shadeless:
case CGuiWidget::EGuiModelDrawFlags::Opaque:
case CGuiWidget::EGuiModelDrawFlags::Alpha:
case CGuiWidget::EGuiModelDrawFlags::AlphaAdditiveOverdraw:
return s_TextAlphaPipeline;
case CGuiWidget::EGuiModelDrawFlags::Additive:
return s_TextAddPipeline;
default:
return {};
}
}
static boo::ObjToken<boo::IShaderPipeline> SelectImagePipeline(CGuiWidget::EGuiModelDrawFlags df) {
switch (df) {
case CGuiWidget::EGuiModelDrawFlags::Shadeless:
case CGuiWidget::EGuiModelDrawFlags::Opaque:
case CGuiWidget::EGuiModelDrawFlags::Alpha:
case CGuiWidget::EGuiModelDrawFlags::AlphaAdditiveOverdraw:
return s_ImageAlphaPipeline;
case CGuiWidget::EGuiModelDrawFlags::Additive:
return s_ImageAddPipeline;
default:
return {};
}
}
static boo::ObjToken<boo::IShaderPipeline> GetTextAdditiveOverdrawPipeline() { return s_TextAddOverdrawPipeline; }
static boo::ObjToken<boo::IShaderPipeline> GetImageAdditiveOverdrawPipeline() { return s_ImageAddOverdrawPipeline; }
// static boo::ObjToken<boo::IShaderPipeline> SelectTextPipeline(CGuiWidget::EGuiModelDrawFlags df) {
// switch (df) {
// case CGuiWidget::EGuiModelDrawFlags::Shadeless:
// case CGuiWidget::EGuiModelDrawFlags::Opaque:
// case CGuiWidget::EGuiModelDrawFlags::Alpha:
// case CGuiWidget::EGuiModelDrawFlags::AlphaAdditiveOverdraw:
// return s_TextAlphaPipeline;
// case CGuiWidget::EGuiModelDrawFlags::Additive:
// return s_TextAddPipeline;
// default:
// return {};
// }
// }
//
// static boo::ObjToken<boo::IShaderPipeline> SelectImagePipeline(CGuiWidget::EGuiModelDrawFlags df) {
// switch (df) {
// case CGuiWidget::EGuiModelDrawFlags::Shadeless:
// case CGuiWidget::EGuiModelDrawFlags::Opaque:
// case CGuiWidget::EGuiModelDrawFlags::Alpha:
// case CGuiWidget::EGuiModelDrawFlags::AlphaAdditiveOverdraw:
// return s_ImageAlphaPipeline;
// case CGuiWidget::EGuiModelDrawFlags::Additive:
// return s_ImageAddPipeline;
// default:
// return {};
// }
// }
//
// static boo::ObjToken<boo::IShaderPipeline> GetTextAdditiveOverdrawPipeline() { return s_TextAddOverdrawPipeline; }
//
// static boo::ObjToken<boo::IShaderPipeline> GetImageAdditiveOverdrawPipeline() { return s_ImageAddOverdrawPipeline; }
static void UpdateBuffers() {
s_CharInsts.updateBuffers();
s_ImgInsts.updateBuffers();
s_Uniforms.updateBuffers();
// s_CharInsts.updateBuffers();
// s_ImgInsts.updateBuffers();
// s_Uniforms.updateBuffers();
}
static void Initialize();