diff --git a/src/pew/renderpass/renderpass.cpp b/src/pew/renderpass/renderpass.cpp
index e27fc4f2bdd33aa52f61db478a5fd5879e3fa685..6ea8718c06b1d64cfa8fa619065e4d05319aa356 100644
--- a/src/pew/renderpass/renderpass.cpp
+++ b/src/pew/renderpass/renderpass.cpp
@@ -168,6 +168,12 @@ namespace pew {
     void
     RenderPass::renderColor(bool detectEdges) {
         for (auto i = 0; i < buffers.color.size(); ++i) {
+#if !defined(__EMSCRIPTEN__)
+            if (!(i % config.resolution.width)) {
+                if (pixelUpdateFun()) return;
+            }
+#endif
+
             if (config.samples
                 && (!detectEdges || needsSampling(buffers.hit, config.resolution, i, false))) {
                 vec3 pixelColor {};
@@ -189,7 +195,9 @@ namespace pew {
                 buffers.color[i] = colorFunction(camera->ray(u, v), config.maxDepth).asColor();
             }
         }
+#if defined(__EMSCRIPTEN__)
         pixelUpdateFun();
+#endif
     }
 #endif
 } // namespace pew
\ No newline at end of file