VisuTwin Canvas
C++ 3D Engine — Metal Backend
Loading...
Searching...
No Matches
immediate.h
Go to the documentation of this file.
1
// SPDX-License-Identifier: Apache-2.0
2
// Copyright 2025-2026 Arnis Lektauers
3
//
4
// Created by Arnis Lektauers on 11.10.2025.
5
//
6
#pragma once
7
8
#include <vector>
9
10
#include "
core/math/color.h
"
11
#include "
core/math/vector3.h
"
12
#include "
core/objectPool.h
"
13
14
namespace
visutwin::canvas
15
{
19
class
Immediate
20
{
21
public
:
22
struct
OverlayCommand
23
{
24
Vector3
start
=
Vector3
(0.0f);
25
Vector3
end
=
Vector3
(0.0f);
26
Color
color
=
Color
(1.0f, 1.0f, 1.0f, 1.0f);
27
float
thickness
= 1.0f;
28
};
29
30
// DEVIATION: this C++ port exposes a pooled overlay command API for debug instrumentation workflows.
31
OverlayCommand
*
addOverlayLine
(
const
Vector3
& start,
const
Vector3
& end,
const
Color
& color,
float
thickness = 1.0f);
32
33
const
std::vector<OverlayCommand*>&
overlays
()
const
{
return
_overlayCommands; }
34
35
// Called after the frame was rendered, clears data
36
void
onPostRender
();
37
38
private
:
39
ObjectPool<OverlayCommand>
_overlayPool =
ObjectPool<OverlayCommand>
(64);
40
std::vector<OverlayCommand*> _overlayCommands;
41
};
42
}
visutwin::canvas::Immediate
Definition
immediate.h:20
visutwin::canvas::Immediate::addOverlayLine
OverlayCommand * addOverlayLine(const Vector3 &start, const Vector3 &end, const Color &color, float thickness=1.0f)
Definition
immediate.cpp:10
visutwin::canvas::Immediate::onPostRender
void onPostRender()
Definition
immediate.cpp:21
visutwin::canvas::Immediate::overlays
const std::vector< OverlayCommand * > & overlays() const
Definition
immediate.h:33
visutwin::canvas::ObjectPool
Definition
objectPool.h:13
color.h
visutwin::canvas
Definition
eventHandler.cpp:9
objectPool.h
visutwin::canvas::Color
RGBA color with floating-point components in [0, 1].
Definition
color.h:18
visutwin::canvas::Immediate::OverlayCommand
Definition
immediate.h:23
visutwin::canvas::Immediate::OverlayCommand::color
Color color
Definition
immediate.h:26
visutwin::canvas::Immediate::OverlayCommand::start
Vector3 start
Definition
immediate.h:24
visutwin::canvas::Immediate::OverlayCommand::end
Vector3 end
Definition
immediate.h:25
visutwin::canvas::Immediate::OverlayCommand::thickness
float thickness
Definition
immediate.h:27
visutwin::canvas::Vector3
3D vector for positions, directions, and normals with multi-backend SIMD acceleration.
Definition
vector3.h:29
vector3.h
scene
immediate
immediate.h
Generated by
1.16.1