Cockpit camera complete + namedpipe transport + 832x512 native res
Render bridge (live_bridge.py, vrview_gl.py): - Hat glances render (left/right frame the canopy, hat-down = clean rear). Root bug was a stale _ckpt['fix'] key -> KeyError every glance frame -> render aborted (screen froze on hold, snapped back on release). The glance itself is the authentic eye-DCS action-0x1f reflush fp_cam already applies. - Torso twist turret-true (root-axis yaw, zero parallax); lasers follow torso. - Rear glance drops the canopy shell for a clean view (original-hardware behavior); mission-fade shroud 9fd hidden. - Wireframe debug mode (VRVIEW_WIREFRAME / 'w' key), scene-pass scoped. - Renderer output = 832x512, the dPL3 board's native framebuffer res. DOSBox-X fork: namedpipe serial backend (serialnamedpipe.cpp/.h) for vRIO/vPLASMA, replacing com0com; overlapped non-blocking I/O; typed frames (0x00 data / 0x01 DTR+RTS). Tracked copies + apply steps in vpx-device. Docs: COCKPIT-CAGE-NOTES (full glance/twist/rear forensics), XP-PORT-PLAN (back-burnered), RIO-NOTES (namedpipe + keypad), pipe/egg conf variants. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -218,6 +218,12 @@ void main() {
|
||||
# VRVIEW_HUDSCALE once the right size is found vs period footage.
|
||||
HUDSCALE = [float(os.environ.get('VRVIEW_HUDSCALE', '1.0'))]
|
||||
|
||||
# Scene-pass wireframe (debug): VRVIEW_WIREFRAME=1 or the bridge's 'w' key.
|
||||
# Scoped to the 3D instance/particle passes only -- global GL wireframe would
|
||||
# also line-ify the fullscreen present blit and blank the window. (The period
|
||||
# equivalent, dpl wireframe / ALT-W, is dead code in shipped BTL4OPT.)
|
||||
WIREFRAME = [os.environ.get('VRVIEW_WIREFRAME', '0') != '0']
|
||||
|
||||
HUD_FS = """
|
||||
#version 330
|
||||
uniform vec3 u_col;
|
||||
@@ -499,6 +505,8 @@ class GLRenderer(vrview.Renderer):
|
||||
FIX = np.eye(4)
|
||||
FIX[:3, :3] = [[0, 0, -1], [0, 1, 0], [1, 0, 0]]
|
||||
|
||||
ctx.wireframe = bool(WIREFRAME[0]) # scene pass only (see WIREFRAME)
|
||||
|
||||
for inst in c.instances:
|
||||
if not vrview.inst_visible(board.nodes, inst):
|
||||
continue
|
||||
@@ -536,6 +544,7 @@ class GLRenderer(vrview.Renderer):
|
||||
|
||||
self._draw_particles(board, V, vp, self.skip / 60.0)
|
||||
self._draw_psfx(board, V)
|
||||
ctx.wireframe = False # HUD + present stay solid
|
||||
self._draw_hud2d_gl(board, vp)
|
||||
|
||||
# present: FBO -> window with the DAC gamma
|
||||
|
||||
Reference in New Issue
Block a user