Cogs.Core
Blur.h
1#pragma once
2
3#include <glm/glm.hpp>
4
5namespace Cogs
6{
7 namespace Core
8 {
9 class Context;
10
11 namespace Blur
12 {
13
14 float boxFilterWidthFromStdDev(const float stddev,
15 const uint32_t quality);
16
17 void boxFilterIterations3D(Context* context,
18 float* output,
19 const float* input,
20 const glm::uvec3 size,
21 const float radius,
22 const uint32_t iterations);
23
25 {
26 const float * src;
27 float * dst;
28 float * ptrA;
29 float * ptrB;
30 glm::uvec3 size;
31 float radius;
32 uint32_t iterations;
33 uint32_t a, b;
34
35 void operator()();
36 };
37
39 {
40 const float * src;
41 float * dst;
42 float * ptrA;
43 float * ptrB;
44 glm::uvec3 size;
45 float radius;
46 uint32_t iterations;
47 uint32_t a, b;
48
49 void operator()();
50 };
51
53 {
54 const float * src;
55 float * dst;
56 float * ptrA;
57 float * ptrB;
58 glm::uvec3 size;
59 float radius;
60 uint32_t iterations;
61 uint32_t a, b;
62
63 void operator()();
64 };
65
66#ifdef EMSCRIPTEN
67#define BoxFilterPassXTaskSSE BoxFilterPassXTask
68#define BoxFilterPassYTaskSSE BoxFilterPassYTask
69#define BoxFilterPassZTaskSSE BoxFilterPassZTask
70#else
72 {
73 const float * src;
74 float * dst;
75 float * ptrA;
76 float * ptrB;
77 glm::uvec3 size;
78 float radius;
79 uint32_t iterations;
80 uint32_t a, b;
81
82 void operator()();
83 };
84
86 {
87 const float * src;
88 float * dst;
89 float * ptrA;
90 float * ptrB;
91 glm::uvec3 size;
92 float radius;
93 uint32_t iterations;
94 uint32_t a, b;
95
96 void operator()();
97 };
98
100 {
101 const float * src;
102 float * dst;
103 float * ptrA;
104 float * ptrB;
105 glm::uvec3 size;
106 float radius;
107 uint32_t iterations;
108 uint32_t a, b;
109
110 void operator()();
111 };
112#endif
113
114 }
115 }
116}
Contains all Cogs related functionality.
Definition: FieldSetter.h:23