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
 
