blob: b25a34590ce8657f19e40a1cbef58fb646a2826e [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 = 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