Collection of objects needed for rendering. Since not all tests require rendering, these objects are in an auxiliary fixture created when needed rather than part of the EntityTest fixture used by every test. This class also implements scene::NodeVisitor enabling it to visit trees of nodes for rendering.
| 329 | // also implements scene::NodeVisitor enabling it to visit trees of nodes |
| 330 | // for rendering. |
| 331 | struct RenderFixture: public scene::NodeVisitor |
| 332 | { |
| 333 | RenderSystemPtr backend = GlobalRenderSystemFactory().createRenderSystem(); |
| 334 | render::NopVolumeTest volumeTest; |
| 335 | TestRenderableCollector collector; |
| 336 | |
| 337 | // Keep track of nodes visited |
| 338 | int nodesVisited = 0; |
| 339 | |
| 340 | // Construct |
| 341 | RenderFixture(bool solid = false) : |
| 342 | collector(solid) |
| 343 | {} |
| 344 | |
| 345 | // Convenience method to set render backend and traverse a node and its |
| 346 | // children for rendering |
| 347 | void renderSubGraph(const scene::INodePtr& node) |
| 348 | { |
| 349 | node->setRenderSystem(backend); |
| 350 | node->traverse(*this); |
| 351 | } |
| 352 | |
| 353 | // NodeVisitor implementation |
| 354 | bool pre(const scene::INodePtr& node) override |
| 355 | { |
| 356 | // Count the node itself |
| 357 | ++nodesVisited; |
| 358 | |
| 359 | // Render the node in appropriate mode |
| 360 | node->onPreRender(volumeTest); |
| 361 | |
| 362 | // Continue traversing |
| 363 | return true; |
| 364 | } |
| 365 | }; |
| 366 | } |
| 367 | |
| 368 | TEST_F(EntityTest, LightLocalToWorldFromOrigin) |
nothing calls this directly
no test coverage detected