blob: 416f910e6fe18d16cf83f76c1bbd5a656f4ddb20 [file] [log] [blame]
/*
* 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