attach jni to ui thread, fix bucket bounding box

This commit is contained in:
2019-07-14 15:59:34 +02:00
parent 80b78ac0af
commit f93be10883
3 changed files with 22 additions and 2 deletions

View File

@@ -15,6 +15,8 @@
void android_async_lock(struct engine* engine);
void android_async_swap(struct engine* engine);
void android_async_unlock(struct engine* engine);
void android_attach_jni();
void android_detach_jni();
#elif _WIN32
bool async_lock_try();
void async_lock();
@@ -853,6 +855,10 @@ void App::ui_thread_main()
ui_thread_id = std::this_thread::get_id();
ui_running = true;
#if __ANDROID__
android_attach_jni();
#endif
init();
auto t_start = std::chrono::high_resolution_clock::now();
@@ -922,6 +928,9 @@ void App::ui_thread_main()
rendered_frames++;
}
}
#if __ANDROID__
android_detach_jni();
#endif
}
void App::render_thread_start()

View File

@@ -1395,7 +1395,8 @@ void Canvas::flood_fill(int layer, int plane, std::vector<glm::ivec2> pos, Flood
rgb[i] = dest_color * 255.f;
plane_data.dirty[plane] = true;
glm::vec2 bb_min = glm::min((glm::vec2)p, xy(plane_data.bb[plane]));
glm::vec2 bb_max = glm::max((glm::vec2)p, zw(plane_data.bb[plane]));
// add 1 pixel to the end because 1 pixel has min(0) and max(1)
glm::vec2 bb_max = glm::max((glm::vec2)p + glm::vec2(1), zw(plane_data.bb[plane]));
plane_data.bb[plane] = { bb_min, bb_max };
}
pos.push_back(p);