MCPcopy Create free account
hub / github.com/NazaraEngine/NazaraEngine / Draw

Method Draw

src/Nazara/Graphics/SkyboxBackground.cpp:53–85  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

51 */
52
53 void SkyboxBackground::Draw(const AbstractViewer* viewer) const
54 {
55 Matrix4f skyboxMatrix(viewer->GetViewMatrix());
56 skyboxMatrix.SetTranslation(Vector3f::Zero());
57
58 float zNear = viewer->GetZNear();
59
60 constexpr float movementLimit = 0.05f;
61
62 Vector3f offset = (viewer->GetEyePosition() - m_movementOffset) * -m_movementScale;
63 offset.x = Clamp(offset.x, -movementLimit, movementLimit);
64 offset.y = Clamp(offset.y, -movementLimit, movementLimit);
65 offset.z = Clamp(offset.z, -movementLimit, movementLimit);
66 offset *= zNear;
67
68 Matrix4f world;
69 world.MakeIdentity();
70 world.SetScale(Vector3f(zNear));
71 world.SetTranslation(offset);
72
73 Renderer::SetIndexBuffer(s_indexBuffer);
74 Renderer::SetMatrix(MatrixType_View, skyboxMatrix);
75 Renderer::SetMatrix(MatrixType_World, world);
76 Renderer::SetRenderStates(s_renderStates);
77 Renderer::SetShader(s_shader);
78 Renderer::SetTexture(0, m_texture);
79 Renderer::SetTextureSampler(0, m_sampler);
80 Renderer::SetVertexBuffer(s_vertexBuffer);
81
82 Renderer::DrawIndexedPrimitives(PrimitiveMode_TriangleList, 0, 36);
83
84 Renderer::SetMatrix(MatrixType_View, viewer->GetViewMatrix());
85 }
86
87 /*!
88 * \brief Gets the background type

Callers

nothing calls this directly

Calls 3

GetZNearMethod · 0.80
GetEyePositionMethod · 0.80
SetScaleMethod · 0.45

Tested by

no test coverage detected