| /* | |
| * 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 |