| /* |
| * 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 = rivestd::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 rivestd::make_unique<TessViewerHost>(); } |
| |
| rive::Factory* ViewerHost::Factory() |
| { |
| static ViewerSokolFactory sokolFactory; |
| return &sokolFactory; |
| } |
| |
| #endif |