MCPcopy Create free account
hub / github.com/codereader/DarkRadiant / RenderFixture

Class RenderFixture

test/Entity.cpp:331–365  ·  view source on GitHub ↗

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.

Source from the content-addressed store, hash-verified

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
368TEST_F(EntityTest, LightLocalToWorldFromOrigin)

Callers

nothing calls this directly

Calls 1

createRenderSystemMethod · 0.80

Tested by

no test coverage detected