them big_tasks.md (roadmap G0-G4, danh dau G1.1-G1.5 hoan thanh) + debug scripts/probes cua phien lam viec G0.1-G1.5 (test_g13/test_g12/test_g15_stress, patch_g1x, deploy/build bridge, probe_g0x)
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
1| // native_bridge/src/gui_probe.cpp — standalone VST3 GUI attach probe.
|
||||
2| // Debug tool (NOT shipped with the DAW): loads a VST3 with Vst3Instrument and
|
||||
3| // tests openGUI under different thread/pump/parent-window setups so we can
|
||||
4| // find why view->attached() hangs inside the bridge.
|
||||
5| #include "Vst3Instrument.h"
|
||||
6|
|
||||
7| #ifdef _WIN32
|
||||
8| #include <windows.h>
|
||||
9| #include <imm.h>
|
||||
10| #endif
|
||||
11| #include <atomic>
|
||||
12| #include <chrono>
|
||||
13| #include <condition_variable>
|
||||
14| #include <cstdio>
|
||||
15| #include <cstdlib>
|
||||
16| #include <deque>
|
||||
17| #include <functional>
|
||||
18| #include <mutex>
|
||||
19| #include <string>
|
||||
20| #include <thread>
|
||||
21| #include <exception>
|
||||
22|
|
||||
23| #ifdef _WIN32
|
||||
24| static void probe_invalid_param(const wchar_t* expr, const wchar_t* func, const wchar_t* file,
|
||||
25| unsigned int line, uintptr_t reserved) {
|
||||
26| printf("[probe] INVALID_PARAMETER expr=%ls func=%ls\n", expr ? expr : L"null", func ? func : L"null");
|
||||
27| fflush(stdout);
|
||||
28| }
|
||||
29| #endif
|
||||
30|
|
||||
31| static void disable_ime_contexts(HWND w) {
|
||||
32| if (w && IsWindow(w)) {
|
||||
33| ImmAssociateContext(w, nullptr);
|
||||
34| for (HWND c = GetWindow(w, GW_CHILD); c; c = GetWindow(c, GW_HWNDNEXT))
|
||||
35| ImmAssociateContext(c, nullptr);
|
||||
36| }
|
||||
37| }
|
||||
38|
|
||||
39| static void pump_for(int secs) {
|
||||
40| #ifdef _WIN32
|
||||
Reference in New Issue
Block a user