mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 19:45:09 +00:00
feat(slices): этап 3.4 ADC-селектор панов + этап 3.5 pop-out в отдельное окно
3.4 ADC-селектор: - Caps.NumADCs (HPSDR: 2 для ORION/ORION2/SATURN, как Pkt.NumADCs; Pluto: 1) - controller.PanADC/SetPanADC: пан 0 = FMainADCSrc + ConfigureDDCs (ADC прокинут и в штатные вызовы — смена rate не сбрасывает выбор), паны N = FPanADC[] + SetPanDDC (RebuildDDCSpecific) - Бейдж «A1/A2» в шапке каждого пана (виден при NumADCs>1), клик = тумблер; пан 0 на ADC2 закрывает сценарий rx2-support 3.5 Pop-out: - «⧉» в шапке панов N → PopOutPan: TForm.CreateNew + ReparentTo (перенос всех контролов панели), [×] окна = DockBackPan (возврат в стек), «×» шапки = закрыть пан; LayoutPanStack скипает плавающих; колесо окна = FormMouseWheel - GL: reparent пересоздаёт контексты → ResetGLCache обеих канв без glDelete (по прецеденту MSAA); TWaterfallViewOpenGL.ResetGLCache новый, история водопада перезаливается из CPU-буфера Проверено юзером на экране (беглый тест: селектор и pop-out работают). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -49,6 +49,8 @@ type
|
||||
procedure SetTheme(const T: TAppTheme); override;
|
||||
procedure ResetWfBuf; override;
|
||||
procedure ResetWfAvgBuf; override;
|
||||
// Контекст умер (reparent/пересоздание хэндла): обнулить id БЕЗ glDelete.
|
||||
procedure ResetGLCache;
|
||||
end;
|
||||
|
||||
implementation
|
||||
@@ -94,6 +96,15 @@ begin
|
||||
FGLControl := C;
|
||||
end;
|
||||
|
||||
procedure TWaterfallViewOpenGL.ResetGLCache;
|
||||
begin
|
||||
FTexture := 0;
|
||||
FMarkerTex := 0;
|
||||
FTexW := 0;
|
||||
FTexH := 0;
|
||||
FMarkerText := '';
|
||||
end;
|
||||
|
||||
procedure TWaterfallViewOpenGL.DeleteTexture(var Tex: GLuint);
|
||||
begin
|
||||
if Tex <> 0 then glDeleteTextures(1, @Tex);
|
||||
|
||||
Reference in New Issue
Block a user