summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/glm/test/external/gli/transform.hpp
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/glm/test/external/gli/transform.hpp')
-rw-r--r--3rdparty/glm/test/external/gli/transform.hpp87
1 files changed, 87 insertions, 0 deletions
diff --git a/3rdparty/glm/test/external/gli/transform.hpp b/3rdparty/glm/test/external/gli/transform.hpp
new file mode 100644
index 00000000000..1ee90e54173
--- /dev/null
+++ b/3rdparty/glm/test/external/gli/transform.hpp
@@ -0,0 +1,87 @@
+/// @brief Include to perform arithmetic per texel between two textures.
+/// @file gli/transform.hpp
+
+#pragma once
+
+#include "texture1d.hpp"
+#include "texture1d_array.hpp"
+#include "texture2d.hpp"
+#include "texture2d_array.hpp"
+#include "texture3d.hpp"
+#include "texture_cube.hpp"
+#include "texture_cube_array.hpp"
+
+namespace gli
+{
+ template <typename vec_type>
+ struct transform_func
+ {
+ typedef vec_type(*type)(vec_type const & A, vec_type const & B);
+ };
+
+ /// Compute per-texel operations using a user defined function.
+ ///
+ /// @param Out Output texture.
+ /// @param In0 First input texture.
+ /// @param In1 Second input texture.
+ /// @param TexelFunc Pointer to a binary function.
+ template <typename vec_type>
+ void transform(texture1d & Out, texture1d const & In0, texture1d const & In1, typename transform_func<vec_type>::type TexelFunc);
+
+ /// Compute per-texel operations using a user defined function.
+ ///
+ /// @param Out Output texture.
+ /// @param In0 First input texture.
+ /// @param In1 Second input texture.
+ /// @param TexelFunc Pointer to a binary function.
+ template <typename vec_type>
+ void transform(texture1d_array & Out, texture1d_array const & In0, texture1d_array const & In1, typename transform_func<vec_type>::type TexelFunc);
+
+ /// Compute per-texel operations using a user defined function.
+ ///
+ /// @param Out Output texture.
+ /// @param In0 First input texture.
+ /// @param In1 Second input texture.
+ /// @param TexelFunc Pointer to a binary function.
+ template <typename vec_type>
+ void transform(texture2d & Out, texture2d const & In0, texture2d const & In1, typename transform_func<vec_type>::type TexelFunc);
+
+ /// Compute per-texel operations using a user defined function.
+ ///
+ /// @param Out Output texture.
+ /// @param In0 First input texture.
+ /// @param In1 Second input texture.
+ /// @param TexelFunc Pointer to a binary function.
+ template <typename vec_type>
+ void transform(texture2d_array & Out, texture2d_array const & In0, texture2d_array const & In1, typename transform_func<vec_type>::type TexelFunc);
+
+ /// Compute per-texel operations using a user defined function.
+ ///
+ /// @param Out Output texture.
+ /// @param In0 First input texture.
+ /// @param In1 Second input texture.
+ /// @param TexelFunc Pointer to a binary function.
+ template <typename vec_type>
+ void transform(texture3d & Out, texture3d const & In0, texture3d const & In1, typename transform_func<vec_type>::type TexelFunc);
+
+ /// Compute per-texel operations using a user defined function.
+ ///
+ /// @param Out Output texture.
+ /// @param In0 First input texture.
+ /// @param In1 Second input texture.
+ /// @param TexelFunc Pointer to a binary function.
+ template <typename vec_type>
+ void transform(texture_cube & Out, texture_cube const & In0, texture_cube const & In1, typename transform_func<vec_type>::type TexelFunc);
+
+ /// Compute per-texel operations using a user defined function.
+ ///
+ /// @param Out Output texture.
+ /// @param In0 First input texture.
+ /// @param In1 Second input texture.
+ /// @param TexelFunc Pointer to a binary function.
+ template <typename vec_type>
+ void transform(texture_cube_array & Out, texture_cube_array const & In0, texture_cube_array const & In1, typename transform_func<vec_type>::type TexelFunc);
+
+}//namespace gli
+
+#include "./core/transform.inl"