forked from Blinue/Magpie
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Anime4KDarkLinesPass5Transform.h
58 lines (47 loc) · 1.11 KB
/
Anime4KDarkLinesPass5Transform.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#pragma once
#include "pch.h"
#include <SimpleDrawTransform.h>
#include "EffectDefines.h"
class Anime4KDarkLinesPass5Transform : public SimpleDrawTransform<2> {
private:
Anime4KDarkLinesPass5Transform() : SimpleDrawTransform<2>(GUID_MAGPIE_ANIME4K_DARKLINES_PASS5_SHADER) {}
public:
static HRESULT Create(
_In_ ID2D1EffectContext* d2dEC,
_Outptr_ Anime4KDarkLinesPass5Transform** ppOutput
) {
*ppOutput = nullptr;
HRESULT hr = LoadShader(
d2dEC,
MAGPIE_ANIME4K_DARKLINES_PASS5_SHADER,
GUID_MAGPIE_ANIME4K_DARKLINES_PASS5_SHADER
);
if (FAILED(hr)) {
return hr;
}
*ppOutput = new Anime4KDarkLinesPass5Transform();
return S_OK;
}
void SetStrength(float value) {
assert(value > 0);
_strength = value;
}
float GetStrength() {
return _strength;
}
protected:
void _SetShaderConstantBuffer(const SIZE& srcSize) override {
struct {
INT32 srcWidth;
INT32 srcHeight;
FLOAT strength;
} shaderConstants{
srcSize.cx,
srcSize.cy,
_strength
};
_drawInfo->SetPixelShaderConstantBuffer((BYTE*)&shaderConstants, sizeof(shaderConstants));
}
private:
float _strength = 1.0f;
};