MCPcopy Create free account
hub / github.com/FlaxEngine/FlaxEngine / Bind

Method Bind

Source/Engine/Graphics/Materials/PostFxMaterialShader.cpp:28–72  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

26 });
27
28void PostFxMaterialShader::Bind(BindParameters& params)
29{
30 // Prepare
31 auto context = params.GPUContext;
32 auto& view = params.RenderContext.View;
33 Span<byte> cb(_cbData.Get(), _cbData.Count());
34 ASSERT_LOW_LAYER(cb.Length() >= sizeof(PostFxMaterialShaderData));
35 auto materialData = reinterpret_cast<PostFxMaterialShaderData*>(cb.Get());
36 cb = cb.Slice(sizeof(PostFxMaterialShaderData));
37 int32 srv = 0;
38
39 // Setup parameters
40 MaterialParameter::BindMeta bindMeta;
41 bindMeta.Context = context;
42 bindMeta.Constants = cb;
43 bindMeta.Input = params.Input;
44 bindMeta.Buffers = params.RenderContext.Buffers;
45 bindMeta.CanSampleDepth = true;
46 bindMeta.CanSampleGBuffer = true;
47 MaterialParams::Bind(params.ParamsLink, bindMeta);
48
49 // Setup material constants
50 {
51 Matrix::Transpose(view.View, materialData->ViewMatrix);
52 Matrix::Transpose(view.IVP, materialData->InverseViewProjectionMatrix);
53 materialData->ViewPos = view.Position;
54 materialData->ViewFar = view.Far;
55 materialData->ViewDir = view.Direction;
56 materialData->TimeParam = params.Time;
57 materialData->ScaledTimeParam = params.ScaledTime;
58 materialData->ViewInfo = view.ViewInfo;
59 materialData->ScreenSize = view.ScreenSize;
60 materialData->TemporalAAJitter = view.TemporalAAJitter;
61 }
62
63 // Bind constants
64 if (_cb)
65 {
66 context->UpdateCB(_cb, _cbData.Get());
67 context->BindCB(0, _cb);
68 }
69
70 // Bind pipeline
71 context->SetState(_cache.Default);
72}
73
74void PostFxMaterialShader::Unload()
75{

Callers

nothing calls this directly

Calls 9

BindFunction · 0.85
SliceMethod · 0.80
TransposeFunction · 0.50
GetMethod · 0.45
CountMethod · 0.45
LengthMethod · 0.45
UpdateCBMethod · 0.45
BindCBMethod · 0.45
SetStateMethod · 0.45

Tested by

no test coverage detected