#pragma once #include #include #include class Waterfall; class Renderer { public: Renderer(WGPUDevice device, WGPUSurface surface, int width, int height); ~Renderer(); bool initialize(); void update(); void render(); void resize(int width, int height); void toggleGrid(); private: void configureSurface(); void createPipelines(); WGPUDevice device_; WGPUSurface surface_; WGPUTextureFormat surfaceFormat_; WGPURenderPipeline linePipeline_; WGPURenderPipeline lineListPipeline_; int width_; int height_; float time_; std::vector> waterfalls_; };