int main() {
initGLFWWindow(window_width, window_height);
init_skia(window_width, window_height);
std::thread t(run);
std::cout << " skia init ok " << std::endl;
SkCanvas *canvas = g_surface->getCanvas();
int i = 0;
bool first = true;
while (!glfwWindowShouldClose(g_window)) {
canvas->drawColor(SK_ColorWHITE);
SkRect rect = SkRect::MakeXYWH(0,0,250,250);
SkPaint paint;
paint.setColor(SK_ColorRED);
canvas->drawRect(rect,paint);
if (i == 0) {
//i++;
{
auto tmpImage = g_surface->makeImageSnapshot();
SkBitmap bitmap;
// if (!tmpImage->asLegacyBitmap(&bitmap)) {
// return 0;
// }
std::lock_guard<std::mutex> lock(task_mutex);
Tasks.push([tmpImage]() {
return tmpImage;
});
}
if (first) {
run_loop.store(true);
cv.notify_all();
first = false;
}
//t.join();
}
g_context->flush();
g_context->submit();
glfwSwapBuffers(g_window);
glfwPollEvents();
}
}