Changesets: DarkRadiant

renderer2 c4468258

11.12.2021 05:16

greebo


Details Diff
0005584: Fix speaker and light volumes not always being rendered on selection status change Affected Issues
0005584
mod - radiantcore/entity/light/LightNode.cpp Diff File
mod - radiantcore/entity/light/LightNode.h Diff File
mod - radiantcore/entity/speaker/SpeakerNode.cpp Diff File
mod - radiantcore/entity/speaker/SpeakerNode.h Diff File

renderer2 dad2ec13

11.12.2021 05:07

greebo


Details Diff
0005584: WIP commit, working on getting the circle geometry Affected Issues
0005584
mod - libs/render.h Diff File
mod - radiantcore/entity/speaker/SpeakerNode.cpp Diff File
mod - radiantcore/entity/speaker/SpeakerNode.h Diff File
mod - radiantcore/entity/speaker/SpeakerRenderables.cpp Diff File

renderer2 fce184ca

11.12.2021 04:26

greebo


Details Diff
0005584: Refactor circle render methods to accept VertexCb and ArbitraryMeshVertex.
The actual Vertex3f& reference is resolved by using template specialisations.
Affected Issues
0005584
mod - libs/pivot.h Diff File
mod - libs/render.h Diff File
mod - radiantcore/entity/speaker/SpeakerNode.cpp Diff File
mod - radiantcore/entity/speaker/SpeakerNode.h Diff File
mod - radiantcore/entity/speaker/SpeakerRenderables.cpp Diff File
mod - radiantcore/entity/speaker/SpeakerRenderables.h Diff File
mod - radiantcore/selection/manipulators/RotateManipulator.cpp Diff File
mod - radiantcore/selection/textool/TextureToolRotateManipulator.cpp Diff File

renderer2 a5851240

11.12.2021 03:21

greebo


Details Diff
0005584: Use a const AABB reference to construct the RenderableEntityBox.
This might cause troubles when the RenderableEntityBox owner is changed to a base class, or if virtualness is added to some signatures.
In this case, an approach to pass an interface or function object to retrieve the bounds and the world position on demand is probably safer.
Affected Issues
0005584
mod - radiantcore/entity/RenderableEntityBox.cpp Diff File
mod - radiantcore/entity/RenderableEntityBox.h Diff File
mod - radiantcore/entity/generic/GenericEntityNode.cpp Diff File
mod - radiantcore/entity/speaker/SpeakerNode.cpp Diff File
mod - radiantcore/entity/speaker/SpeakerNode.h Diff File
mod - radiantcore/entity/speaker/SpeakerRenderables.cpp Diff File
mod - radiantcore/entity/speaker/SpeakerRenderables.h Diff File

renderer2 5d2a1e1a

10.12.2021 12:49

greebo


Details Diff
0005584: Highlight rendering of GenericEntityNodes Affected Issues
0005584
mod - radiantcore/entity/generic/GenericEntityNode.cpp Diff File
mod - radiantcore/entity/generic/GenericEntityNode.h Diff File

renderer2 e891d90b

10.12.2021 12:41

greebo


Details Diff
0005584: Cleanup round in GenericEntityNode Affected Issues
0005584
mod - radiantcore/entity/RenderableEntityBox.cpp Diff File
mod - radiantcore/entity/generic/GenericEntityNode.cpp Diff File
mod - radiantcore/entity/generic/GenericEntityNode.h Diff File

renderer2 28320960

10.12.2021 12:28

greebo


Details Diff
0005584: Draw entity angle arrows Affected Issues
0005584
mod - radiantcore/CMakeLists.txt Diff File
add - radiantcore/entity/RenderableArrow.cpp Diff File
add - radiantcore/entity/RenderableArrow.h Diff File
mod - radiantcore/entity/RenderableEntityBox.cpp Diff File
mod - radiantcore/entity/generic/GenericEntityNode.cpp Diff File
mod - radiantcore/entity/generic/GenericEntityNode.h Diff File
mod - tools/msvc/DarkRadiantCore.vcxproj Diff File
mod - tools/msvc/DarkRadiantCore.vcxproj.filters Diff File

renderer2 7b2f1dd2

10.12.2021 10:36

greebo


Details Diff
0005584: Draw solid and hollow entity boxes Affected Issues
0005584
mod - radiantcore/CMakeLists.txt Diff File
mod - radiantcore/entity/RenderableEntityBox.cpp Diff File
mod - radiantcore/entity/RenderableEntityBox.h Diff File
mod - radiantcore/entity/generic/GenericEntityNode.cpp Diff File
mod - radiantcore/rendersystem/backend/OpenGLShader.cpp Diff File

master 9d7fe174

09.12.2021 14:48

orbweaver


Details Diff
Implement auto-disconnection for KeyObserver class

Now that KeyObserverMap is using sigc::signals internally to allow
auto-disconnection, we can make use of this to implement auto-disconnection
when explicit KeyObserver classes are used instead of pure slots. This is
achieved by changing insert() to call observeKey() to attach to
onKeyValueChanged() directly, rather than storing the actual KeyObserver
pointer internally. KeyObserver now inherits from sigc::trackable to enable
auto-disconnection in this case.

This required some internal changes to handle explicit disconnection using
erase(). We now store a sigc::connection object, indexed by KeyObserver
pointer, to remove the connection if requested. This is actually a minor change
in behaviour: erase() now disconnects the given KeyObserver from *all* keys,
rather than just a specific key, but this would only matter if the same
KeyObserver was connected to multiple keys and the calling code wanted to
disconnect it from just one of them. As far as I can see there are no cases
where this behaviour would be needed — it's a 1:1 mapping between keys and
KeyObserver objects everywhere.
mod - radiantcore/entity/EntityNode.cpp Diff File
mod - radiantcore/entity/KeyObserverMap.h Diff File
mod - radiantcore/entity/ShaderParms.cpp Diff File
mod - test/Entity.cpp Diff File

master 763655ef

09.12.2021 13:32

orbweaver


Details Diff
Use auto-disconnecting slots for observeKey in StaticGeometryNode

Use sigc::mem_fun with a sigc::trackable destination object to enable
auto-disconnection, rather than unsafe lambdas binding to subclass members
which will be destroyed before EntityNode clears out its KeyObserverMap.
mod - radiantcore/entity/RotationKey.h Diff File
mod - radiantcore/entity/doom3group/StaticGeometryNode.cpp Diff File

master 0242f774

09.12.2021 13:12

orbweaver


Details Diff
Improve safety of KeyObserverMap::observeKey()

Although the use of lambdas instead of KeyObserver references is cleaner and
*appears* safer, it actually introduces potential undefined behaviour of its
own: the lambda might capture variables which are destroyed before the observer
is disconnected in the EntityNode/KeyObserverMap destructor. This is actually
the case in live code, for example in StaticGeometryNode where observeKey() is
called with lambdas that refer to m_rotationKey, which is a subclass member
which will be destroyed before EntityNode itself.

KeyObserverMap's internal implementation is now changed to use sigc::signals
(one per observed key), and the KeyObserverFunc is upgraded from an
std::function into a sigc::slot. This allows the use of auto-disconnection if
the slot is set up using sigc::mem_fun instead of a lambda. The
auto-disconnection behaviour is now confirmed with a new unit test.
mod - include/ientity.h Diff File
mod - radiantcore/entity/KeyObserverMap.h Diff File
mod - test/Entity.cpp Diff File

renderer2 33a6c52a

08.12.2021 10:32

greebo


Details Diff
0005584: Infrastructure to render the generic entity boxes (with and without arrows) Affected Issues
0005584
add - radiantcore/entity/RenderableEntityBox.cpp Diff File
add - radiantcore/entity/RenderableEntityBox.h Diff File
mod - radiantcore/entity/generic/GenericEntityNode.cpp Diff File
mod - radiantcore/entity/generic/GenericEntityNode.h Diff File
mod - tools/msvc/DarkRadiantCore.vcxproj Diff File
mod - tools/msvc/DarkRadiantCore.vcxproj.filters Diff File

master 966d6b1a

07.12.2021 20:53

orbweaver


Details Diff
Move LitObject implementation up to scene::Node

Every major renderable node class had its own implementation of
LitObject::intersectsLight, but all of these implementations were identical.
This method is now implemented at the Node level, and inherited by all
subclasses.
mod - libs/scene/Node.cpp Diff File
mod - libs/scene/Node.h Diff File
mod - radiantcore/brush/BrushNode.cpp Diff File
mod - radiantcore/brush/BrushNode.h Diff File
mod - radiantcore/model/StaticModelNode.cpp Diff File
mod - radiantcore/model/StaticModelNode.h Diff File
mod - radiantcore/model/md5/MD5ModelNode.cpp Diff File
mod - radiantcore/model/md5/MD5ModelNode.h Diff File
mod - radiantcore/patch/PatchNode.cpp Diff File
mod - radiantcore/patch/PatchNode.h Diff File

renderer2 b62f0b22

05.12.2021 13:47

greebo


Details Diff
0005584: Remove old wireframe renderables from LightNode. Affected Issues
0005584
mod - radiantcore/entity/light/Light.h Diff File
mod - radiantcore/entity/light/LightNode.cpp Diff File
mod - radiantcore/entity/light/LightNode.h Diff File
mod - radiantcore/entity/light/Renderables.cpp Diff File
mod - radiantcore/entity/light/Renderables.h Diff File

renderer2 eda8f3f8

05.12.2021 13:03

greebo


Details Diff
0005584: Point light wireframe volume Affected Issues
0005584
mod - radiantcore/entity/light/LightNode.cpp Diff File
mod - radiantcore/entity/light/LightNode.h Diff File
mod - radiantcore/entity/light/Renderables.cpp Diff File

renderer2 155214de

05.12.2021 08:23

greebo


Details Diff
0005584: The complex case (light_start defined) of projected light volumes is displayed Affected Issues
0005584
mod - radiantcore/entity/light/LightNode.cpp Diff File
mod - radiantcore/entity/light/LightNode.h Diff File
mod - radiantcore/entity/light/Renderables.cpp Diff File

renderer2 f7129bdd

05.12.2021 07:58

greebo


Details Diff
0005584: The simpler case (without start/end) of projected light volumes is displayed Affected Issues
0005584
mod - radiantcore/entity/light/LightNode.cpp Diff File
mod - radiantcore/entity/light/LightNode.h Diff File
mod - radiantcore/entity/light/Renderables.cpp Diff File
mod - radiantcore/entity/light/Renderables.h Diff File

renderer2 2e32d593

05.12.2021 07:35

greebo


Details Diff
0005584: Prepare for light volume rendering. Affected Issues
0005584
mod - radiantcore/entity/light/LightNode.cpp Diff File
mod - radiantcore/entity/light/LightNode.h Diff File
mod - radiantcore/entity/light/Renderables.cpp Diff File
mod - radiantcore/entity/light/Renderables.h Diff File

renderer2 6da7470f

05.12.2021 05:59

greebo


Details Diff
0005584: Renderable light geometry is now respecting the node's orientation.
The transformation is baked into the vertices on transformation change, which the cost of being able to submit all geometry of the same shader in one single draw call.
Affected Issues
0005584
mod - radiantcore/entity/EntityModule.cpp Diff File
mod - radiantcore/entity/light/LightNode.cpp Diff File
mod - radiantcore/entity/light/Renderables.h Diff File

renderer2 803d5118

05.12.2021 05:36

greebo


Details Diff
0005584: Notify LightNodes when entity settings change.
All LightNodes could subscribe to the settings signal themselves, but the house-keeping code on scene insertion/removal for every single node is not worth the trouble.
Affected Issues
0005584
mod - radiantcore/entity/EntityModule.cpp Diff File
mod - radiantcore/entity/EntityModule.h Diff File
mod - radiantcore/entity/light/LightNode.cpp Diff File
mod - radiantcore/entity/light/LightNode.h Diff File

renderer2 db61a5da

05.12.2021 04:44

greebo


Details Diff
0005584: LightNode's highlight rendering restored Affected Issues
0005584
mod - radiantcore/entity/light/LightNode.cpp Diff File
mod - radiantcore/entity/light/LightNode.h Diff File

renderer2 239332bb

05.12.2021 04:41

greebo


Details Diff
0005584: The light diamond is now rendered using the RenderableGeometry base. It's updated only when the light transform has been changed. Affected Issues
0005584
mod - libs/render/RenderableGeometry.h Diff File
mod - radiantcore/entity/ColourKey.h Diff File
mod - radiantcore/entity/light/LightNode.cpp Diff File
mod - radiantcore/entity/light/LightNode.h Diff File
mod - radiantcore/entity/light/Renderables.h Diff File

renderer2 6244508c

04.12.2021 18:51

greebo


Details Diff
0005584: Make the client code slimmer, the size changes are detected by the base class now Affected Issues
0005584
mod - libs/render/RenderableGeometry.h Diff File
mod - radiantcore/entity/target/RenderableTargetLines.h Diff File
mod - radiantcore/patch/PatchRenderables.h Diff File

renderer2 35132bb7

04.12.2021 18:40

greebo


Details Diff
0005584: More refactoring to move the shader-specific update routines to the base class. Subclasses should only care about vertices and indices at best. Affected Issues
0005584
mod - libs/render/RenderableGeometry.h Diff File
mod - radiantcore/entity/target/RenderableTargetLines.h Diff File
mod - radiantcore/entity/target/TargetLineNode.cpp Diff File
mod - radiantcore/patch/PatchRenderables.h Diff File

renderer2 1afccd0b

04.12.2021 15:43

greebo


Details Diff
0005584: Move some common code to a RenderableGeometry base class Affected Issues
0005584
add - libs/render/RenderableGeometry.h Diff File
mod - radiantcore/entity/target/RenderableTargetLines.h Diff File
mod - radiantcore/patch/PatchRenderables.h Diff File
mod - tools/msvc/libs.vcxproj Diff File
mod - tools/msvc/libs.vcxproj.filters Diff File
 First  Prev  1 2 3 ... 30 ... 60 ... 78 79 80 81 82 83 84 ... 90 ... 120 ... 150 ... 180 ... 210 ... 240 ... 261 262 263  Next  Last