31#ifndef BRAINRENDERER_H
32#define BRAINRENDERER_H
51class QRhiCommandBuffer;
52class QRhiRenderTarget;
53class QRhiRenderPassDescriptor;
54class QRhiResourceUpdateBatch;
56class QRhiRenderBuffer;
57class QRhiTextureRenderTarget;
122 void initialize(QRhi* rhi, QRhiRenderPassDescriptor* rp,
int sampleCount);
147 QRhiRenderTarget*
rtClear()
const;
181 void beginFrame(QRhiCommandBuffer* cb, QRhiResourceUpdateBatch* updates =
nullptr);
191 void beginPreservingPass(QRhiCommandBuffer* cb, QRhiResourceUpdateBatch* updates =
nullptr);
304 QRhiResourceUpdateBatch* u,
349 QRhiResourceUpdateBatch* u,
384 void endPass(QRhiCommandBuffer* cb);
389 std::unique_ptr<Impl> d;
Library export/import macros and namespace marker for the disp3D library.
#define DISP3DSHARED_EXPORT
Lightweight render-related enums (ShaderMode, VisualizationMode) shared across disp3D.
3-D brain visualisation using the Qt RHI rendering backend.
Renderable cortical surface mesh with per-vertex color, curvature data, and GPU buffer management.
Renderable dipole arrow set with instanced GPU rendering.
Renderable sEEG / ECoG electrodes: contact spheres plus lead bodies.
Renderable connectivity network visualization.
Connected line segments through an ordered list of points.
Data model for a single 2-D MRI volume slice.
Camera-facing textured quad rendered at a focus point in the 3-D scene.
int prepareDipoleDraw(QRhiResourceUpdateBatch *u, const SceneData &data, DipoleObject *dipoles)
static constexpr ShaderMode Dipole
int preparePolylineDraw(QRhiResourceUpdateBatch *u, const SceneData &data, PolylineObject *polyline)
void issuePolylineDraw(QRhiCommandBuffer *cb, PolylineObject *polyline, int uniformOffset)
int prepareElectrodeDraw(QRhiResourceUpdateBatch *u, const SceneData &data, ElectrodeObject *electrodes)
void issueElectrodeDraw(QRhiCommandBuffer *cb, ElectrodeObject *electrodes, int uniformOffset)
void prepareSlice(QRhi *rhi, QRhiResourceUpdateBatch *u, DISP3DLIB::SliceObject *slice, int slotIndex)
int cachedMeshCount() const
void ensureRenderTargets(QRhi *rhi, QRhiTexture *colorTex, const QSize &pixelSize)
int prepareSliceDraw(QRhiResourceUpdateBatch *u, const SceneData &data, int slotIndex)
void issueSliceDraw(QRhiCommandBuffer *cb, int slotIndex, int uniformOffset)
void beginFrame(QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *updates=nullptr)
static constexpr ShaderMode ShowNormals
QRhiRenderTarget * rtPreserve() const
void initialize(QRhi *rhi, QRhiRenderPassDescriptor *rp, int sampleCount)
void issueSurfaceDraw(QRhiCommandBuffer *cb, BrainSurface *surface, ShaderMode mode, int uniformOffset)
QRhiRenderTarget * rtClear() const
int prepareNetworkDraw(QRhiResourceUpdateBatch *u, const SceneData &data, NetworkObject *network)
static constexpr ShaderMode Standard
void endPass(QRhiCommandBuffer *cb)
void beginPreservingPass(QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *updates=nullptr)
int prepareSurfaceDraw(QRhiResourceUpdateBatch *u, const SceneData &data, BrainSurface *surface)
static constexpr ShaderMode Holographic
static constexpr ShaderMode Anatomical
void issueNetworkDraw(QRhiCommandBuffer *cb, NetworkObject *network, int uniformOffset)
void issueDipoleDraw(QRhiCommandBuffer *cb, DipoleObject *dipoles, int uniformOffset)
void prepareVideoOverlay(QRhi *rhi, QRhiResourceUpdateBatch *u, DISP3DLIB::VideoOverlay *overlay)
static constexpr ShaderMode XRay
void issueVideoOverlayDraw(QRhiCommandBuffer *cb, DISP3DLIB::VideoOverlay *overlay, BrainSurface *surface, int uniformOffset)
DISP3DLIB::ShaderMode ShaderMode
int prepareVideoOverlayDraw(QRhiResourceUpdateBatch *u, const SceneData &data, DISP3DLIB::VideoOverlay *overlay, BrainSurface *surface)
Per-draw scene uniforms: camera matrices, light and overlay mode.