-
backgroundColor
Color backgroundColor
The background color of the view.
-
bufferStrategy
BufferStrategy bufferStrategy
The buffer strategy for page-flipping rendering (also read by the present thread).
-
bufferStrategyInitialized
boolean bufferStrategyInitialized
Whether the buffer strategy has been initialized.
-
camera
Camera camera
The camera representing the viewer's position and orientation.
-
debugLogBuffer
DebugLogBuffer debugLogBuffer
Debug log buffer for capturing diagnostic output.
-
developerTools
DeveloperTools developerTools
Developer tools for this view panel.
-
developerToolsPanel
DeveloperToolsPanel developerToolsPanel
The developer tools panel popup, or null if not currently shown.
-
fpsWindowFrames
int fpsWindowFrames
Frames blitted in the current FPS measurement window (render thread only).
-
fpsWindowStartNanos
long fpsWindowStartNanos
Start of the current FPS measurement window, nanoseconds (render thread only).
-
frameContexts
RenderingContext[] frameContexts
Double-buffered frame contexts, indexed by frame parity. While frame N
is still being painted from one buffer, frame N+1 already transforms
into the other, so paint threads never idle waiting for the transform
phase and transform threads never wait for the last tile.
-
frameListeners
Set<FrameListener> frameListeners
The set of frame listeners notified before each frame.
-
frameParity
int frameParity
Parity (0/1) of the frame currently being prepared.
-
globalIllumination
GlobalIllumination globalIllumination
-
inputManager
InputManager inputManager
The input manager handling mouse and keyboard events.
-
keyboardFocusStack
KeyboardFocusStack keyboardFocusStack
The stack managing keyboard focus for GUI components.
-
lastUpdateMillis
long lastUpdateMillis
Stores milliseconds when the last frame was updated. This is needed to calculate the time delta between frames.
Time delta is used to calculate smooth animation.
-
lightingManager
LightingManager lightingManager
Global lighting manager for the scene.
Contains all light sources and ambient light settings. Shaded polygons
access this via the RenderingContext during paint(). Add lights here
to illuminate the world.
-
mailboxFrame
AtomicReference<eu.svjatoslav.sixth.e3d.gui.ViewPanel.PresentJob> mailboxFrame
Mailbox holding the newest completed frame awaiting presentation.
Only the latest frame is kept: when the display path (X server at
4K, tens of MB per blit) is slower than production, stale frames
are dropped instead of piling up latency — swapchain "mailbox
mode". The render thread never blocks on the display: it deposits
here and the dedicated present thread does the blitting.
-
measuredFPS
double measuredFPS
Most recently measured display rate (frames blitted per second).
-
nextFrameTime
long nextFrameTime
Timestamp for the next scheduled frame.
-
numRenderThreads
int numRenderThreads
-
passCounter
long passCounter
Counts render passes (one per eye in stereo). A pass's projection
buffer slot is passCounter % 3: with three slots, transform
of pass P only conflicts with paint of pass P-3, so it can run
while the two previous passes' paints are still in flight.
-
pendingPaints
ArrayDeque<eu.svjatoslav.sixth.e3d.gui.ViewPanel.PendingPaint> pendingPaints
Paint passes that were submitted to the shared executor but not yet
awaited, oldest first. Depth stays at most 2: the pass being
transformed now overlaps the previously submitted one, and freed
workers flow from the tail of the older pass's tiles straight into
the newer pass's tiles — consecutive passes' paints overlap on
purpose (they write different parity framebuffers and read
different parity vertex slots, so no ordering between them is
required).
-
pipelineEnabled
boolean pipelineEnabled
When false, each paint pass is awaited immediately after submission,
restoring the old strictly-sequential phase order. Kill switch for
benchmarking and regression hunting; also toggled at runtime from
developer tools if needed.
-
presentSignal
Semaphore presentSignal
Signals the present thread that a frame was deposited.
-
presentThread
Thread presentThread
Daemon thread performing all BufferStrategy blits.
-
presentThreadRunning
boolean presentThreadRunning
Run flag for the present thread.
-
renderExecutor
ExecutorService renderExecutor
The executor service for parallel rendering.
-
renderingContext
RenderingContext renderingContext
The current rendering context for the active frame.
-
renderThread
Thread renderThread
Render thread that runs the continuous frame generation loop.
-
renderThreadRunning
boolean renderThreadRunning
Flag to control whether the render thread should keep running.
-
rootShapeCollection
ShapeCollection rootShapeCollection
The root shape collection containing all 3D shapes in the scene.
-
stereoIPD
double stereoIPD
Inter-pupillary distance in world units, configurable at runtime.
-
stereoModeEnabled
boolean stereoModeEnabled
Whether side-by-side stereoscopic rendering is enabled.
-
targetFPS
int targetFPS
Currently target frames per second rate for this view. Target FPS can be changed at runtime.
3D engine tries to be smart and only repaints screen when there are visible changes.
A value of 0 or less means unlimited FPS (benchmark mode).
-
transformExecutor
ExecutorService transformExecutor
Executor for the parallel transform phase, sized to all available cores.
Created lazily on the render thread; daemon threads so it never blocks JVM exit.
-
viewRepaintNeeded
boolean viewRepaintNeeded
Set to true if it is known than next frame needs to be painted. Flag is cleared
immediately after frame got updated.