rebase and simplify
diff --git a/include/rive/renderer.hpp b/include/rive/renderer.hpp
index 6011a99..dcd3b83 100644
--- a/include/rive/renderer.hpp
+++ b/include/rive/renderer.hpp
@@ -70,23 +70,6 @@
                                                int count,
                                                const Mat2D* localMatrix = nullptr);
 
-    class RenderMesh : public RefCnt {};
-
-    /*  Copies the data provided, and returns a reusable RenderMesh object which can
-     *  be drawn in drawMesh(...).
-     *
-     *  vertexCount is the number of vertex points (i.e. pairs of x,y)
-     *  vertices[] and texCoords[] are x,y interleaved
-     *  Note: texCoords[] are normalized (0..1), but can be outside of that range.
-     *        if they are out of range, the shader (in drawMesh) will handle tiling
-     */
-    extern rcp<RenderMesh> makeMesh(int vertexCount,
-                                    const float vertices[],     //  x0,  y0,  x1,  y1, ...
-                                    const float texCoords[],    // tx0, ty0, tx1, ty1, ...
-                                    int indexCount,
-                                    const uint16_t indices[]);
-
-
     class RenderPaint {
     public:
         virtual void style(RenderPaintStyle style) = 0;
@@ -135,7 +118,12 @@
         virtual void drawPath(RenderPath* path, RenderPaint* paint) = 0;
         virtual void clipPath(RenderPath* path) = 0;
         virtual void drawImage(RenderImage*, BlendMode, float opacity) = 0;
-        virtual void drawMesh(const RenderMesh*, const RenderShader*, BlendMode, float opacity) = 0;
+        virtual void drawImageMesh(const RenderImage*,
+                                   rcp<RenderBuffer> vertices_f32,
+                                   rcp<RenderBuffer> uvCoords_f32,
+                                   rcp<RenderBuffer> indices_u16,
+                                   BlendMode,
+                                   float opacity) = 0;
 
         // helpers