MCPcopy Create free account
hub / github.com/davideberly/GeometricTools / SMUnlitEffect

Method SMUnlitEffect

GTE/Samples/Graphics/ShadowMaps/SMUnlitEffect.cpp:10–46  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8#include "SMUnlitEffect.h"
9
10SMUnlitEffect::SMUnlitEffect(
11 std::shared_ptr<ProgramFactory> const& factory,
12 std::string const& vsPath,
13 std::string const& psPath,
14 Geometry const& geometry,
15 Screen const& screen,
16 std::shared_ptr<Texture2> const& shadowTexture)
17 :
18 mGeometryBuffer{},
19 mScreenBuffer{},
20 mShadowTexture(shadowTexture),
21 mSampler{}
22{
23 mProgram = factory->CreateFromFiles(vsPath, psPath, "");
24 LogAssert(
25 mProgram,
26 "Cannot compile " + vsPath + " or " + psPath);
27
28 mGeometryBuffer = std::make_shared<ConstantBuffer>(sizeof(Geometry), true);
29 *mGeometryBuffer->Get<Geometry>() = geometry;
30
31 mScreenBuffer = std::make_shared<ConstantBuffer>(sizeof(Screen), true);
32 *mScreenBuffer->Get<Screen>() = screen;
33
34 mSampler = std::make_shared<SamplerState>();
35 mSampler->filter = SamplerState::Filter::MIN_P_MAG_L_MIP_P;
36 mSampler->mode[0] = SamplerState::Mode::CLAMP;
37 mSampler->mode[1] = SamplerState::Mode::CLAMP;
38
39 auto const& vshader = mProgram->GetVertexShader();
40 vshader->Set("PVWMatrix", mPVWMatrixConstant);
41 vshader->Set("Geometry", mGeometryBuffer);
42
43 auto const& pshader = mProgram->GetPixelShader();
44 pshader->Set("Screen", mScreenBuffer);
45 pshader->Set("shadowTexture", mShadowTexture, "shadowSampler", mSampler);
46}
47
48

Callers

nothing calls this directly

Calls 2

CreateFromFilesMethod · 0.80
SetMethod · 0.45

Tested by

no test coverage detected