| /* |
| * Copyright 2022 Rive |
| */ |
| |
| #include "viewer/viewer_host.hpp" |
| #include "viewer/viewer_content.hpp" |
| |
| #ifdef RIVE_RENDERER_TESS |
| |
| #include "rive/tess/sokol/sokol_tess_renderer.hpp" |
| #include "viewer/tess/viewer_sokol_factory.hpp" |
| |
| class TessViewerHost : public ViewerHost { |
| public: |
| std::unique_ptr<rive::SokolTessRenderer> m_renderer; |
| |
| bool init(sg_pass_action*, int width, int height) override { |
| m_renderer = std::make_unique<rive::SokolTessRenderer>(); |
| m_renderer->orthographicProjection(0.0f, width, height, 0.0f, 0.0f, 1.0f); |
| return true; |
| } |
| |
| void handleResize(int width, int height) override { |
| m_renderer->orthographicProjection(0.0f, width, height, 0.0f, 0.0f, 1.0f); |
| } |
| |
| void afterDefaultPass(ViewerContent* content, double elapsed) override { |
| m_renderer->reset(); |
| if (content) { |
| content->handleDraw(m_renderer.get(), elapsed); |
| } |
| } |
| }; |
| |
| std::unique_ptr<ViewerHost> ViewerHost::Make() { return std::make_unique<TessViewerHost>(); } |
| |
| rive::Factory* ViewerHost::Factory() { |
| static ViewerSokolFactory sokolFactory; |
| return &sokolFactory; |
| } |
| |
| #endif |