// This file is part of the 64k demo project. // It defines the Hybrid3DEffect, integrating the 3D renderer into the demo timeline. #pragma once #include "gpu/effect.h" #include "3d/renderer.h" #include "3d/scene.h" #include "3d/camera.h" class Hybrid3DEffect : public Effect { public: Hybrid3DEffect(); virtual ~Hybrid3DEffect() override = default; void init(WGPUDevice device, WGPUQueue queue, int width, int height) override; void render(WGPURenderPassEncoder pass, float time, float beat, float alpha) override; private: Renderer3D renderer_; Scene scene_; Camera camera_; WGPUDevice device_ = nullptr; WGPUQueue queue_ = nullptr; int width_ = 0; int height_ = 0; };