|
KiCad PCB EDA Suite
|
Per-window state owned by the render thread. More...
#include <render_thread_window_state.h>
Classes | |
| struct | FRAME_UNIFORMS |
| One window's uniforms for one frame. More... | |
| struct | PASS_UNIFORMS |
| Uniform buffers owned by one geometry target. More... | |
| struct | RENDERED_CONTENT |
| What a geometry target holds, so a frame asking for the same content at the same camera can reuse it. More... | |
Public Types | |
| using | Clock = std::chrono::steady_clock |
Public Member Functions | |
| uint32_t | RenderWidth () const |
| uint32_t | RenderHeight () const |
| RHI_FramebufferHandle | ShownStaticFBO () const |
| int32_t | ShownStaticX () const |
| Where the view starts in the shown static target, in texels. | |
| int32_t | ShownStaticY () const |
| uint32_t | StaticWidth () const |
| uint32_t | StaticHeight () const |
| FRAME_UNIFORMS & | Uniforms () |
Public Attributes | |
| RHI_WINDOW_ID | windowId = 0 |
| RHI_NATIVE_WINDOW_HANDLE | nativeHandle |
| RHI_SurfaceHandle | surface |
| RHI_SwapchainHandle | swapchain |
| uint32_t | width = 0 |
| uint32_t | height = 0 |
| float | dpiScale = 1.0f |
| uint32_t | backingWidth = 0 |
| uint32_t | backingHeight = 0 |
| uint32_t | supersampleFactor = 1 |
| Supersampling factor. | |
| RHI_FramebufferHandle | staticFBO |
| RHI_FramebufferHandle | dynamicFBO |
| uint32_t | staticMargin = 0 |
| Frame pixels the static target holds beyond each view edge so a pan within them is only a shift. | |
| RHI_FramebufferHandle | staticTempFBO |
| The static target's temp target, made when a static layer first needs one. | |
| RHI_FramebufferHandle | staticViewFBO |
| Static content drawn without the margin, as during a zoom, goes into this view sized target so the zoom does not clear and store an empty margin. | |
| bool | staticInMargin = true |
| the content shown is in staticFBO | |
| RHI_VIEW_SHIFT | staticShift |
| How far the view has moved since the static target was drawn. | |
| RHI_VIEW_SHIFT | overlayShift |
| How far the view has moved since overlayMarginFBO was drawn. | |
| RHI_FramebufferHandle | tempFBO |
| RHI_FramebufferHandle | diffBelowFBO |
| Copies of what lies under a difference layer, for the view sized targets and the static one. | |
| RHI_FramebufferHandle | staticDiffBelowFBO |
| RHI_FramebufferHandle | overlayGeometryFBO |
| Overlay content, drawn from a transparent start and composited over the dynamic target (see RHI_GAL_PIPELINES::GetOverlayVariant). | |
| bool | overlayGeometryDrawn = false |
| RHI_FramebufferHandle | overlayMarginFBO |
| Overlay content that stayed the same through a pan, drawn with the static target's margin. | |
| bool | overlayInMargin = false |
| bool | dynamicGeometryDrawn = true |
| An empty dynamicFBO is neither drawn nor composited. | |
| RHI_FramebufferHandle | accumulationFBO |
| Color only, without depth or stencil. | |
| FRAME_UNIFORMS | uniformSets [UNIFORM_GENERATIONS] |
| size_t | uniformGeneration = 0 |
| FRAME_DRAW_DESC | drawDesc |
| FRAME_DRAW_DESC | staticDrawDesc |
| Static and dynamic pool descriptions, each drawn into its own target. | |
| FRAME_DRAW_DESC | dynamicDrawDesc |
| bool | staticChanged = true |
| bool | dynamicChanged = true |
| uint64_t | staticEpoch = 0 |
| uint64_t | dynamicEpoch = 0 |
| RENDERED_CONTENT | renderedStatic |
| RENDERED_CONTENT | renderedDynamic |
| RENDERED_CONTENT | renderedOverlay |
| the overlay target keeps the static target's margin | |
| uint64_t | staticPasses = 0 |
| times staticFBO was re-rendered | |
| uint64_t | geometryRenderPasses = 0 |
| render passes begun while drawing geometry | |
| uint64_t | dynamicPasses = 0 |
| times dynamicFBO was re-rendered | |
| uint64_t | requestedGeneration = 0 |
| uint64_t | lastRenderedGeneration = 0 |
| bool | needsStaticInvalidate = false |
| bool | active = false |
| bool | frameResultPending = false |
| uint64_t | framesProcessed = 0 |
| Clock::time_point | lastActivityTime |
| Clock::time_point | lastFrameRequestTime |
| Clock::time_point | lastRenderStartTime |
| Clock::time_point | lastRenderCompleteTime |
| Clock::time_point | lastPresentAttemptTime |
| Clock::time_point | lastPresentSuccessTime |
| Clock::time_point | lastPresentFailureTime |
| Clock::time_point | nextPresentRetryAt |
| Clock::time_point | lastSwapchainCreateAttemptTime |
| Clock::time_point | lastLagLogTime |
| float | refreshHz = 0.0f |
| A swapchain that presents immediately is drawn at most once per refresh unless the frame answers input the last drawn frame had not seen. | |
| Clock::time_point | nextFrameAt |
| earliest time such a window may be drawn again | |
| uint64_t | drawnInputSerial = 0 |
| FRAME_PACKET::inputSerial of the last packet loaded. | |
| uint64_t | presentSuccessCount = 0 |
| uint64_t | presentFailureCount = 0 |
| uint32_t | consecutivePresentFailures = 0 |
| uint64_t | swapchainCreateAttempts = 0 |
| uint64_t | lastPresentedGeneration = 0 |
| FRAME_MAILBOX * | mailbox = nullptr |
| Owned by the panel. | |
Static Public Attributes | |
| static constexpr size_t | UNIFORM_GENERATIONS = 3 |
| A frame's passes are still queued when the next frame is built, so frames rotate through several uniform sets rather than waiting on the previous one. | |
Per-window state owned by the render thread.
It is created and destroyed by the SWAPCHAIN_CREATE/RESIZE/DESTROY control commands and touched by no other thread.
Definition at line 43 of file render_thread_window_state.h.
| using KIGFX::WINDOW_STATE::Clock = std::chrono::steady_clock |
Definition at line 221 of file render_thread_window_state.h.
|
inline |
Definition at line 65 of file render_thread_window_state.h.
References backingHeight, and supersampleFactor.
Referenced by KIGFX::RENDER_THREAD::CreateWindowFBOs(), layerFramebufferDesc(), marginLayer(), KIGFX::RENDER_THREAD::ReadbackWindowPixels(), KIGFX::RENDER_THREAD::RenderGeometryInto(), KIGFX::RENDER_THREAD::RenderWindow(), StaticHeight(), and staticMarginFor().
|
inline |
Definition at line 64 of file render_thread_window_state.h.
References backingWidth, and supersampleFactor.
Referenced by KIGFX::RENDER_THREAD::CreateWindowFBOs(), layerFramebufferDesc(), marginLayer(), KIGFX::RENDER_THREAD::ReadbackWindowPixels(), KIGFX::RENDER_THREAD::RenderGeometryInto(), KIGFX::RENDER_THREAD::RenderWindow(), staticMarginFor(), and StaticWidth().
|
inline |
Definition at line 86 of file render_thread_window_state.h.
References staticFBO, staticInMargin, and staticViewFBO.
Referenced by KIGFX::RENDER_THREAD::ReadbackWindowPixels(), KIGFX::RENDER_THREAD::RenderGeometryInto(), and KIGFX::RENDER_THREAD::RenderWindow().
|
inline |
Where the view starts in the shown static target, in texels.
Definition at line 92 of file render_thread_window_state.h.
References staticInMargin, staticMargin, staticShift, and supersampleFactor.
Referenced by KIGFX::RENDER_THREAD::RenderGeometryInto(), and KIGFX::RENDER_THREAD::RenderWindow().
|
inline |
Definition at line 99 of file render_thread_window_state.h.
References staticInMargin, staticMargin, staticShift, and supersampleFactor.
Referenced by KIGFX::RENDER_THREAD::RenderGeometryInto(), and KIGFX::RENDER_THREAD::RenderWindow().
|
inline |
Definition at line 113 of file render_thread_window_state.h.
References RenderHeight(), staticMargin, and supersampleFactor.
Referenced by marginFramebufferDesc(), marginLayer(), and KIGFX::RENDER_THREAD::RenderGeometryInto().
|
inline |
Definition at line 112 of file render_thread_window_state.h.
References RenderWidth(), staticMargin, and supersampleFactor.
Referenced by marginFramebufferDesc(), marginLayer(), and KIGFX::RENDER_THREAD::RenderGeometryInto().
|
inline |
Definition at line 174 of file render_thread_window_state.h.
References uniformGeneration, and uniformSets.
Referenced by KIGFX::RENDER_THREAD::drawCursor(), KIGFX::RENDER_THREAD::prepareCursor(), and KIGFX::RENDER_THREAD::RenderGeometryInto().
| RHI_FramebufferHandle KIGFX::WINDOW_STATE::accumulationFBO |
Color only, without depth or stencil.
Definition at line 141 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::CreateWindowFBOs(), KIGFX::RENDER_THREAD::DestroyWindowFBOs(), and KIGFX::RENDER_THREAD::RenderWindow().
| bool KIGFX::WINDOW_STATE::active = false |
Definition at line 216 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::HandleFrameRequest().
| uint32_t KIGFX::WINDOW_STATE::backingHeight = 0 |
Definition at line 56 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::CreateWindowFBOs(), KIGFX::RENDER_THREAD::EnsureSwapchain(), fitSupersampleFactor(), KIGFX::RENDER_THREAD::HandleSwapchainCreate(), KIGFX::RENDER_THREAD::HandleSwapchainResize(), KIGFX::RENDER_THREAD::ReadbackWindowPixels(), RenderHeight(), KIGFX::RENDER_THREAD::RenderWindow(), and staticMarginFor().
| uint32_t KIGFX::WINDOW_STATE::backingWidth = 0 |
Definition at line 55 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::CreateWindowFBOs(), KIGFX::RENDER_THREAD::EnsureSwapchain(), fitSupersampleFactor(), KIGFX::RENDER_THREAD::HandleSwapchainCreate(), KIGFX::RENDER_THREAD::HandleSwapchainResize(), KIGFX::RENDER_THREAD::ReadbackWindowPixels(), RenderWidth(), KIGFX::RENDER_THREAD::RenderWindow(), and staticMarginFor().
| uint32_t KIGFX::WINDOW_STATE::consecutivePresentFailures = 0 |
Definition at line 243 of file render_thread_window_state.h.
| RHI_FramebufferHandle KIGFX::WINDOW_STATE::diffBelowFBO |
Copies of what lies under a difference layer, for the view sized targets and the static one.
Dropped once no difference layer is left.
Definition at line 120 of file render_thread_window_state.h.
Referenced by destroyDiffCopies(), KIGFX::RENDER_THREAD::RenderGeometryInto(), and KIGFX::RENDER_THREAD::RenderWindow().
| float KIGFX::WINDOW_STATE::dpiScale = 1.0f |
Definition at line 53 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::EnsureSwapchain(), KIGFX::RENDER_THREAD::HandleSwapchainCreate(), and KIGFX::RENDER_THREAD::HandleSwapchainResize().
| FRAME_DRAW_DESC KIGFX::WINDOW_STATE::drawDesc |
Definition at line 176 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::prepareCursor(), KIGFX::RENDER_THREAD::ReadbackWindowPixels(), KIGFX::RENDER_THREAD::RenderGeometry(), and KIGFX::RENDER_THREAD::RenderWindow().
| uint64_t KIGFX::WINDOW_STATE::drawnInputSerial = 0 |
FRAME_PACKET::inputSerial of the last packet loaded.
Definition at line 239 of file render_thread_window_state.h.
| bool KIGFX::WINDOW_STATE::dynamicChanged = true |
Definition at line 185 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::RenderWindow().
| FRAME_DRAW_DESC KIGFX::WINDOW_STATE::dynamicDrawDesc |
Definition at line 183 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::RenderWindow().
| uint64_t KIGFX::WINDOW_STATE::dynamicEpoch = 0 |
Definition at line 188 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::RenderWindow().
| RHI_FramebufferHandle KIGFX::WINDOW_STATE::dynamicFBO |
| bool KIGFX::WINDOW_STATE::dynamicGeometryDrawn = true |
An empty dynamicFBO is neither drawn nor composited.
Definition at line 138 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::ReadbackWindowPixels(), and KIGFX::RENDER_THREAD::RenderWindow().
| uint64_t KIGFX::WINDOW_STATE::dynamicPasses = 0 |
times dynamicFBO was re-rendered
Definition at line 210 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::RenderWindow().
| bool KIGFX::WINDOW_STATE::frameResultPending = false |
Definition at line 217 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::HandleFrameRequest().
| uint64_t KIGFX::WINDOW_STATE::framesProcessed = 0 |
Definition at line 219 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::RenderGeometryInto().
| uint64_t KIGFX::WINDOW_STATE::geometryRenderPasses = 0 |
render passes begun while drawing geometry
Definition at line 209 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::RenderGeometryInto(), and KIGFX::RENDER_THREAD::RenderWindow().
| uint32_t KIGFX::WINDOW_STATE::height = 0 |
Definition at line 52 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::HandleSwapchainCreate(), and KIGFX::RENDER_THREAD::HandleSwapchainResize().
| Clock::time_point KIGFX::WINDOW_STATE::lastActivityTime |
Definition at line 222 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::HandleFrameRequest().
| Clock::time_point KIGFX::WINDOW_STATE::lastFrameRequestTime |
Definition at line 223 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::HandleFrameRequest(), and KIGFX::RENDER_THREAD::RenderWindow().
| Clock::time_point KIGFX::WINDOW_STATE::lastLagLogTime |
Definition at line 231 of file render_thread_window_state.h.
| Clock::time_point KIGFX::WINDOW_STATE::lastPresentAttemptTime |
Definition at line 226 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::RenderWindow().
| uint64_t KIGFX::WINDOW_STATE::lastPresentedGeneration = 0 |
Definition at line 245 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::RenderWindow().
| Clock::time_point KIGFX::WINDOW_STATE::lastPresentFailureTime |
Definition at line 228 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::RenderWindow().
| Clock::time_point KIGFX::WINDOW_STATE::lastPresentSuccessTime |
Definition at line 227 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::RenderWindow().
| Clock::time_point KIGFX::WINDOW_STATE::lastRenderCompleteTime |
Definition at line 225 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::RenderWindow().
| uint64_t KIGFX::WINDOW_STATE::lastRenderedGeneration = 0 |
Definition at line 213 of file render_thread_window_state.h.
| Clock::time_point KIGFX::WINDOW_STATE::lastRenderStartTime |
Definition at line 224 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::RenderWindow().
| Clock::time_point KIGFX::WINDOW_STATE::lastSwapchainCreateAttemptTime |
Definition at line 230 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::EnsureSwapchain(), and ShouldRetrySwapchainCreate().
| FRAME_MAILBOX* KIGFX::WINDOW_STATE::mailbox = nullptr |
Owned by the panel.
Definition at line 248 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::HandleSwapchainCreate().
| RHI_NATIVE_WINDOW_HANDLE KIGFX::WINDOW_STATE::nativeHandle |
Definition at line 46 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::EnsureSwapchain(), and KIGFX::RENDER_THREAD::HandleSwapchainCreate().
| bool KIGFX::WINDOW_STATE::needsStaticInvalidate = false |
Definition at line 215 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::EnsureSwapchain(), KIGFX::RENDER_THREAD::HandleSwapchainResize(), and KIGFX::RENDER_THREAD::RenderWindow().
| Clock::time_point KIGFX::WINDOW_STATE::nextFrameAt |
earliest time such a window may be drawn again
Definition at line 238 of file render_thread_window_state.h.
| Clock::time_point KIGFX::WINDOW_STATE::nextPresentRetryAt |
Definition at line 229 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::HandleFrameRequest(), and KIGFX::RENDER_THREAD::HandleSwapchainResize().
| bool KIGFX::WINDOW_STATE::overlayGeometryDrawn = false |
Definition at line 128 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::DestroyWindowFBOs(), and KIGFX::RENDER_THREAD::RenderWindow().
| RHI_FramebufferHandle KIGFX::WINDOW_STATE::overlayGeometryFBO |
Overlay content, drawn from a transparent start and composited over the dynamic target (see RHI_GAL_PIPELINES::GetOverlayVariant).
Definition at line 127 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::DestroyWindowFBOs(), and KIGFX::RENDER_THREAD::RenderWindow().
| bool KIGFX::WINDOW_STATE::overlayInMargin = false |
Definition at line 135 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::DestroyWindowFBOs(), and KIGFX::RENDER_THREAD::RenderWindow().
| RHI_FramebufferHandle KIGFX::WINDOW_STATE::overlayMarginFBO |
Overlay content that stayed the same through a pan, drawn with the static target's margin.
Changing content goes to the view sized overlayGeometryFBO so a drag never pays for the margin.
Definition at line 134 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::DestroyWindowFBOs(), KIGFX::RENDER_THREAD::RenderGeometryInto(), and KIGFX::RENDER_THREAD::RenderWindow().
| RHI_VIEW_SHIFT KIGFX::WINDOW_STATE::overlayShift |
How far the view has moved since overlayMarginFBO was drawn.
Definition at line 110 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::CreateWindowFBOs(), and KIGFX::RENDER_THREAD::RenderWindow().
| uint64_t KIGFX::WINDOW_STATE::presentFailureCount = 0 |
Definition at line 242 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::RenderWindow().
| uint64_t KIGFX::WINDOW_STATE::presentSuccessCount = 0 |
Definition at line 241 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::RenderWindow().
| float KIGFX::WINDOW_STATE::refreshHz = 0.0f |
A swapchain that presents immediately is drawn at most once per refresh unless the frame answers input the last drawn frame had not seen.
0 when unknown, which lifts the limit
Definition at line 237 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::HandleFrameRequest().
| RENDERED_CONTENT KIGFX::WINDOW_STATE::renderedDynamic |
Definition at line 205 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::RenderWindow().
| RENDERED_CONTENT KIGFX::WINDOW_STATE::renderedOverlay |
the overlay target keeps the static target's margin
Definition at line 206 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::CreateWindowFBOs(), and KIGFX::RENDER_THREAD::RenderWindow().
| RENDERED_CONTENT KIGFX::WINDOW_STATE::renderedStatic |
Definition at line 204 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::CreateWindowFBOs(), and KIGFX::RENDER_THREAD::RenderWindow().
| uint64_t KIGFX::WINDOW_STATE::requestedGeneration = 0 |
Definition at line 212 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::HandleFrameRequest(), and KIGFX::RENDER_THREAD::RenderWindow().
| bool KIGFX::WINDOW_STATE::staticChanged = true |
Definition at line 184 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::RenderWindow().
| RHI_FramebufferHandle KIGFX::WINDOW_STATE::staticDiffBelowFBO |
Definition at line 121 of file render_thread_window_state.h.
Referenced by destroyDiffCopies(), KIGFX::RENDER_THREAD::RenderGeometryInto(), and KIGFX::RENDER_THREAD::RenderWindow().
| FRAME_DRAW_DESC KIGFX::WINDOW_STATE::staticDrawDesc |
Static and dynamic pool descriptions, each drawn into its own target.
The changed flags say whether that target must be redrawn this frame.
Definition at line 182 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::RenderWindow().
| uint64_t KIGFX::WINDOW_STATE::staticEpoch = 0 |
Definition at line 187 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::RenderWindow().
| RHI_FramebufferHandle KIGFX::WINDOW_STATE::staticFBO |
Definition at line 67 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::CreateWindowFBOs(), KIGFX::RENDER_THREAD::DestroyWindowFBOs(), KIGFX::RENDER_THREAD::ReadbackWindowPixels(), KIGFX::RENDER_THREAD::RenderGeometry(), KIGFX::RENDER_THREAD::RenderGeometryInto(), KIGFX::RENDER_THREAD::RenderWindow(), and ShownStaticFBO().
| bool KIGFX::WINDOW_STATE::staticInMargin = true |
the content shown is in staticFBO
Definition at line 84 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::DestroyWindowFBOs(), KIGFX::RENDER_THREAD::ReadbackWindowPixels(), KIGFX::RENDER_THREAD::RenderGeometry(), KIGFX::RENDER_THREAD::RenderWindow(), ShownStaticFBO(), ShownStaticX(), and ShownStaticY().
| uint32_t KIGFX::WINDOW_STATE::staticMargin = 0 |
Frame pixels the static target holds beyond each view edge so a pan within them is only a shift.
0 when the static target is the view's size.
Definition at line 74 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::CreateWindowFBOs(), marginLayer(), KIGFX::RENDER_THREAD::RenderGeometryInto(), KIGFX::RENDER_THREAD::RenderWindow(), ShownStaticX(), ShownStaticY(), StaticHeight(), and StaticWidth().
| uint64_t KIGFX::WINDOW_STATE::staticPasses = 0 |
times staticFBO was re-rendered
Definition at line 208 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::RenderWindow().
| RHI_VIEW_SHIFT KIGFX::WINDOW_STATE::staticShift |
How far the view has moved since the static target was drawn.
Definition at line 107 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::CreateWindowFBOs(), KIGFX::RENDER_THREAD::ReadbackWindowPixels(), KIGFX::RENDER_THREAD::RenderWindow(), ShownStaticX(), and ShownStaticY().
| RHI_FramebufferHandle KIGFX::WINDOW_STATE::staticTempFBO |
The static target's temp target, made when a static layer first needs one.
Definition at line 77 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::DestroyWindowFBOs(), and KIGFX::RENDER_THREAD::RenderGeometryInto().
| RHI_FramebufferHandle KIGFX::WINDOW_STATE::staticViewFBO |
Static content drawn without the margin, as during a zoom, goes into this view sized target so the zoom does not clear and store an empty margin.
Definition at line 83 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::DestroyWindowFBOs(), KIGFX::RENDER_THREAD::RenderGeometryInto(), KIGFX::RENDER_THREAD::RenderWindow(), and ShownStaticFBO().
| uint32_t KIGFX::WINDOW_STATE::supersampleFactor = 1 |
Supersampling factor.
Layer and compositor targets are the backing size times this and the present blit downsamples to the swapchain, which stays at the backing size.
Definition at line 62 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::CreateWindowFBOs(), marginLayer(), KIGFX::RENDER_THREAD::RenderGeometryInto(), RenderHeight(), RenderWidth(), ShownStaticX(), ShownStaticY(), StaticHeight(), staticMarginFor(), and StaticWidth().
| RHI_SurfaceHandle KIGFX::WINDOW_STATE::surface |
Definition at line 48 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::destroyWindow(), KIGFX::RENDER_THREAD::EnsureSwapchain(), KIGFX::RENDER_THREAD::HandleSwapchainCreate(), KIGFX::RENDER_THREAD::HandleSwapchainResize(), and KIGFX::RENDER_THREAD::recreateSwapchainAfterOutOfDate().
| RHI_SwapchainHandle KIGFX::WINDOW_STATE::swapchain |
| uint64_t KIGFX::WINDOW_STATE::swapchainCreateAttempts = 0 |
Definition at line 244 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::EnsureSwapchain().
| RHI_FramebufferHandle KIGFX::WINDOW_STATE::tempFBO |
Definition at line 114 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::CreateWindowFBOs(), KIGFX::RENDER_THREAD::DestroyWindowFBOs(), and KIGFX::RENDER_THREAD::RenderGeometryInto().
|
staticconstexpr |
A frame's passes are still queued when the next frame is built, so frames rotate through several uniform sets rather than waiting on the previous one.
Definition at line 169 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::RenderWindow().
| size_t KIGFX::WINDOW_STATE::uniformGeneration = 0 |
Definition at line 172 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::RenderWindow(), and Uniforms().
| FRAME_UNIFORMS KIGFX::WINDOW_STATE::uniformSets[UNIFORM_GENERATIONS] |
Definition at line 171 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::DestroyWindowUniforms(), and Uniforms().
| uint32_t KIGFX::WINDOW_STATE::width = 0 |
Definition at line 51 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::HandleSwapchainCreate(), and KIGFX::RENDER_THREAD::HandleSwapchainResize().
| RHI_WINDOW_ID KIGFX::WINDOW_STATE::windowId = 0 |
Definition at line 45 of file render_thread_window_state.h.
Referenced by KIGFX::RENDER_THREAD::EnsureSwapchain(), KIGFX::RENDER_THREAD::HandleSwapchainCreate(), KIGFX::RENDER_THREAD::RenderGeometryInto(), and KIGFX::RENDER_THREAD::RenderWindow().