ply_console_t *console;
uint32_t input_source_is_open : 1;
+ uint32_t is_mapped : 1;
};
typedef const ply_renderer_plugin_interface_t *
assert (renderer != NULL);
assert (renderer->plugin_interface != NULL);
- return renderer->plugin_interface->map_to_device (renderer->backend);
+ if (renderer->is_mapped)
+ return true;
+
+ renderer->is_mapped = renderer->plugin_interface->map_to_device (renderer->backend);
+
+ return renderer->is_mapped;
}
static void
assert (renderer != NULL);
assert (renderer->plugin_interface != NULL);
+ if (!renderer->is_mapped)
+ return;
+
renderer->plugin_interface->unmap_from_device (renderer->backend);
+ renderer->is_mapped = false;
}
bool