diff options
| author | Juan Linietsky | 2015-06-06 22:06:58 -0300 |
|---|---|---|
| committer | Juan Linietsky | 2015-06-06 22:06:58 -0300 |
| commit | b524b40fdc5325c840192ce92dbed8108ccef2d9 (patch) | |
| tree | ec7f74db082b4b91f7614ed4391c53bc73b60bfd /servers/visual | |
| parent | 14c4c1b568ffa40a179332fbc77e9b52c6bdf514 (diff) | |
| download | godot-b524b40fdc5325c840192ce92dbed8108ccef2d9.tar.gz godot-b524b40fdc5325c840192ce92dbed8108ccef2d9.tar.zst godot-b524b40fdc5325c840192ce92dbed8108ccef2d9.zip | |
-fixed many memory initialization issues
-fixed deadlock on previews thread
-fixed compilation errors on unix
Diffstat (limited to 'servers/visual')
| -rw-r--r-- | servers/visual/visual_server_raster.cpp | 2 | ||||
| -rw-r--r-- | servers/visual/visual_server_raster.h | 2 | ||||
| -rw-r--r-- | servers/visual/visual_server_wrap_mt.cpp | 12 | ||||
| -rw-r--r-- | servers/visual/visual_server_wrap_mt.h | 2 |
4 files changed, 11 insertions, 7 deletions
diff --git a/servers/visual/visual_server_raster.cpp b/servers/visual/visual_server_raster.cpp index a547da9b6..52e5c2127 100644 --- a/servers/visual/visual_server_raster.cpp +++ b/servers/visual/visual_server_raster.cpp @@ -7358,7 +7358,7 @@ void VisualServerRaster::_draw_cursors_and_margins() { rasterizer->canvas_end_rect(); }; -void VisualServerRaster::flush() { +void VisualServerRaster::sync() { //do none } diff --git a/servers/visual/visual_server_raster.h b/servers/visual/visual_server_raster.h index f3b94b73d..e2940c216 100644 --- a/servers/visual/visual_server_raster.h +++ b/servers/visual/visual_server_raster.h @@ -1237,7 +1237,7 @@ public: /* EVENT QUEUING */ virtual void draw(); - virtual void flush(); + virtual void sync(); virtual void init(); virtual void finish(); diff --git a/servers/visual/visual_server_wrap_mt.cpp b/servers/visual/visual_server_wrap_mt.cpp index 44a41a93d..19dff3d36 100644 --- a/servers/visual/visual_server_wrap_mt.cpp +++ b/servers/visual/visual_server_wrap_mt.cpp @@ -96,16 +96,19 @@ void VisualServerWrapMT::thread_loop() { /* EVENT QUEUING */ -void VisualServerWrapMT::flush() { +void VisualServerWrapMT::sync() { if (create_thread) { + /* TODO: sync with the thread */ + + /* ERR_FAIL_COND(!draw_mutex); draw_mutex->lock(); draw_pending++; //cambiar por un saferefcount draw_mutex->unlock(); - - command_queue.push( this, &VisualServerWrapMT::thread_flush); + */ + //command_queue.push( this, &VisualServerWrapMT::thread_flush); } else { command_queue.flush_all(); //flush all pending from other threads @@ -118,15 +121,16 @@ void VisualServerWrapMT::draw() { if (create_thread) { + /* TODO: Make it draw ERR_FAIL_COND(!draw_mutex); draw_mutex->lock(); draw_pending++; //cambiar por un saferefcount draw_mutex->unlock(); command_queue.push( this, &VisualServerWrapMT::thread_draw); + */ } else { - command_queue.flush_all(); //flush all pending from other threads visual_server->draw(); } } diff --git a/servers/visual/visual_server_wrap_mt.h b/servers/visual/visual_server_wrap_mt.h index d07e1940d..6719342a6 100644 --- a/servers/visual/visual_server_wrap_mt.h +++ b/servers/visual/visual_server_wrap_mt.h @@ -681,7 +681,7 @@ public: virtual void init(); virtual void finish(); virtual void draw(); - virtual void flush(); + virtual void sync(); FUNC0RC(bool,has_changed); /* RENDER INFO */ |
