/***** * norender.h * Lightweight renderer for WebGL (html) and v3d output. * Does not require Vulkan or OpenGL libraries. *****/ #pragma once #include "common.h" #include "renderBase.h" #ifdef HAVE_LIBGLM namespace camp { /** * NoRender - A minimal renderer for WebGL/v3d export. * * This class handles the initial setup phase for WebGL (html) and v3d output * formats. It sets up dimensions, camera parameters, lighting, and other state * needed by jsfile.cc and v3dfile.cc to generate the output files. * * Unlike AsyVkRender and AsyGLRender, this class does NOT require any GPU * libraries (Vulkan, OpenGL, GLFW). It simply configures the base class state * and returns early, as the actual rendering is done client-side by JavaScript. */ class NoRender : public AsyRender { public: NoRender() = default; ~NoRender() override = default; // Implementation of base class pure virtual function void render(RenderFunctionArgs const& args) override; // Pure virtual implementations (no-op for NoRender) void drawFrame() override {} void exportHandler(int = 0) override {} void Export(int imageIndex = 0) override {} protected: // No Vulkan or OpenGL dependencies - pure CPU-based setup }; } // namespace camp #endif // HAVE_LIBGLM