Autor Wątek: CDU na drugim monitorze  (Przeczytany 4284 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

CDU na drugim monitorze
« dnia: Października 29, 2014, 15:05:51 »
Witam, chcę sobie wyświetlić CDU na drugim monitorze. Opieram się na tych dwóch tematach: 1 i 2. Lecz nie chce mi się pokazać CDU. Wklejam poniższy kod do CDU_init.lua, dodaję skrypt w MonitorSetup i nic nie wyświetla. Dodam że MFCD działają. Trzeba coś w tym kodzie jeszcze zmienić?

Z góry dziękuję i pozdrawiam.

-- Code below is used for the rendering when no viewport has been created
purposes      = {render_purpose.GENERAL, -- Rendering in 3D View
                render_purpose.HUD_ONLY_VIEW, -- Rendering In HUD only View
                render_purpose.SCREENSPACE_OUTSIDE_COCKPIT, -- Rendering in External View
                render_purpose.SCREENSPACE_INSIDE_COCKPIT}  -- Rendering in In cockpit view but NOT in 3D cockpit
-- End of rendering configuration

screenspace_scale_initial  = 3;
screenspace_diplacement    = {0,0}

local x_size         = 1
local y_size         = 1

function update_screenspace_diplacement(zoom_value)
    screenspace_scale = screenspace_scale_initial + zoom_value;
    if  screenspace_scale < 1 then
        screenspace_scale = 1   
    end
    local screen_height  = 2.0;
    local screen_width  = screen_height * LockOn_Options.screen.aspect;
    local scaled_width  = SelfWidth  * screenspace_scale
    local scaled_height = y_size  * scaled_width -- for indicator all sizes is function of width
          scaled_width  = x_size  * scaled_width
         
    screenspace_diplacement = { 0.5 * screen_width  - 0.5 * scaled_width,
                               -0.5 * screen_height + 0.5 * scaled_height}
   
    screenspace_diplacement_arcade    = {screenspace_diplacement[1],
                                         0.5 * screen_height - 0.5 * scaled_height}
   
end

update_screenspace_diplacement(0)

function set_full_viewport_coverage(viewport)
   local w = LockOn_Options.screen.width
   local h = LockOn_Options.screen.height
   local a = LockOn_Options.screen.aspect
   local x = (-1.0 + 2.0 * (viewport.x / w)) * a
   local y =   1.0 - 2.0 * (viewport.y / h)
   
   local width  = (viewport.width  / w) * a
   local height =  viewport.height / h
   local scl_hgt_K = y_size * SelfWidth -- size always function of SelfWidth
   local scl_wdt_K = x_size * SelfWidth -- size always function of SelfWidth
     
   screenspace_scale_x           =  2.0 * width  / scl_wdt_K
   screenspace_scale_y           =  2.0 * height / scl_hgt_K
   screenspace_diplacement    = {x +  width,
                                 y -  height}
 
   screenspace_diplacement_arcade = screenspace_diplacement
-- The code below is used for rendering When you use viewports comments are same as above for rendering
   purposes      = {render_purpose.HUD_ONLY_VIEW,
                    --render_purpose.GENERAL, --Uncoment this line by removing the "--" to render in 3D cockpit.
                    render_purpose.SCREENSPACE_OUTSIDE_COCKPIT,
                    render_purpose.SCREENSPACE_INSIDE_COCKPIT} -- set purposes to draw it always
-- End of rendering configuration
   render_target_always = true
end

-- try to find assigned viewport
local multimonitor_setup_name =  "Config/MonitorSetup/"..get_multimonitor_preset_name()..".lua"
local env = {}
      env.screen = LockOn_Options.screen
local f = loadfile(multimonitor_setup_name)
if      f     then
      setfenv(f,env)
      pcall(f)
     
    local vp = nil
    vp = env.RWR_SCREEN
     
      if vp ~= nil then
         dbg_print("ok we have directly assigned viewport to CDU\n")
         set_full_viewport_coverage(vp)
      end       
end

Offline macieksoft

  • Trolle
  • *
Odp: CDU na drugim monitorze
« Odpowiedź #1 dnia: Października 31, 2014, 18:52:20 »
Musisz ustawiśc sobie rozdzielczość która będzie obejmować obydwa monitory.
Nie wiem czy to zrobiłeś ale CDU MFD itp mogą być eksportowane jedynie w obrębie czegoś co chyba nazywa się rendering area.

Odp: CDU na drugim monitorze
« Odpowiedź #2 dnia: Października 31, 2014, 21:53:59 »
No tak, mam nowy profil w folderze MonitorSetup w którym ustawiam w jakim miejscu ma się wyświetlać CDU. A rozdzielczość też ustawiam taką jaką mam po podłączeniu dwóch monitorów (u mnie tablet z rozdzielczością 1280x800, a główny monitor ma 1920x1080) tj. 3200x1080.

Pozdrawiam

Odp: CDU na drugim monitorze
« Odpowiedź #3 dnia: Listopada 03, 2014, 15:17:00 »
Już sobie poradziłem. Pomógł mi ten post.

Pozdrawiam

Offline KosiMazaki

  • Administrator
  • *****
    • http://www.kg200.il2forum.pl
Odp: CDU na drugim monitorze
« Odpowiedź #4 dnia: Listopada 03, 2014, 17:34:17 »
Jakbyś mógł napisz w skrócie jak sobie poradziłeś. Linki lubią padać, a słowo pisane pozostaje ;).
I/KG200_Doktor  1972-†2006

"Herr Rittmeister wylądował, klasnął w dłonie mówiąc: Donnerwetter! Osiemdziesiąt jest godną szacunku liczbą"

Odp: CDU na drugim monitorze
« Odpowiedź #5 dnia: Listopada 04, 2014, 15:43:09 »
No to wygląda to tak.

W pliku CDU_init.lua pod linijką:
indicator_type = indicator_types.COMMON

wkleiłem poniższy kod. Następnie ten plik wrzuciłem do DCS World\Scripts\Aircrafts\_Common\Cockpit i podmieniłem. Po tym zabiegu wszystko zaczęło śmigać w 100%. I póki wszystko działa to nic z tym nie robię :D Nie sprawdzałem jeszcze czy w innych modułach wszystko działa ale najważniejsze, że w A-10 jest ok.

Pozdrawiam

purposes                  = {render_purpose.GENERAL}

local x_size         = 1
local y_size         = 1

function update_screenspace_diplacement(zoom_value)
    local default_width  = 0.5 * LockOn_Options.screen.height + (64 * zoom_value)
    if default_width > LockOn_Options.screen.height then
       default_width = LockOn_Options.screen.height
    end
   
    if default_width > 0.5 * LockOn_Options.screen.width then
       default_width = 0.5 * LockOn_Options.screen.width
    end
       
    local default_height = (y_size/x_size) * default_width
    local default_y      = LockOn_Options.screen.height - default_height
    local default_x      = LockOn_Options.screen.width  - default_width
   
    dedicated_viewport           = {default_x,default_y,default_width,default_height}
    dedicated_viewport_arcade = {default_x, 0        ,default_width,default_height}
end

update_screenspace_diplacement(0)   

function set_full_viewport_coverage(viewport)

   dedicated_viewport          = {viewport.x,
                                viewport.y,
                                viewport.width,
                                viewport.height}
   dedicated_viewport_arcade = dedicated_viewport
   purposes                  = {render_purpose.GENERAL,
                                render_purpose.HUD_ONLY_VIEW,
                                render_purpose.SCREENSPACE_OUTSIDE_COCKPIT,
                                render_purpose.SCREENSPACE_INSIDE_COCKPIT} -- set purposes to draw it always
   render_target_always = true
end

-- try to find assigned viewport
local multimonitor_setup_name =  "Config/MonitorSetup/"..get_multimonitor_preset_name()..".lua"
local env = {}
      env.screen = LockOn_Options.screen
local f = loadfile(multimonitor_setup_name)
if      f     then
      setfenv(f,env)
      pcall(f)
     
      local vp = nil
      vp = env.ED_A10C_CDU
     
      if vp ~= nil then
         dbg_print("ok we have directly assigned viewport to MFCD\n")
         set_full_viewport_coverage(vp)
      end       
end

Odp: CDU na drugim monitorze
« Odpowiedź #6 dnia: Stycznia 14, 2016, 15:46:39 »
Panowie, czy inne zegary też się da przenieść na 2-gi monitor, sztuczny horyzont, radar czy altimetr ? W nowym DCS 1.5.2  sa jakieś opcje z dwoma monitorami, tyle że manual jeszcze nie jest aktualny...
Latamy dzisiaj?

Oficer polityczny Padi-Van. (Prostak-1)

Darth_Worm

  • Gość
Odp: CDU na drugim monitorze
« Odpowiedź #7 dnia: Stycznia 14, 2016, 16:42:42 »
Proponuje zainteresować się systemem helios.Jest darmowy, chociaż, za ciężką robotę z profilami,  wypada przelać  trochę dolców .
http://www.gadrocsworkshop.com/helios
http://www.captzeen.com/helios/index.asp

Sam używam z nakładką dotykową ir 26".
Pozdrawiam.