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:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user