Metadatas.hpp
1 #pragma once
2 
3 #include <Crousti/Attributes.hpp>
4 #include <Crousti/Concepts.hpp>
5 
6 #include <ossia/dataflow/safe_nodes/port.hpp>
7 
8 #include <boost/mp11/algorithm.hpp>
9 #include <boost/pfr.hpp>
10 
11 #include <avnd/introspection/input.hpp>
12 #include <avnd/introspection/output.hpp>
13 namespace oscr
14 {
15 template <typename T>
16 concept GpuNode = avnd::texture_input_introspection<T>::size >
17 0 || avnd::texture_output_introspection<T>::size > 0;
18 
19 template <typename T>
20 concept GpuGraphicsNode2 = requires
21 {
22  T::layout::graphics;
23 };
24 
25 template <typename T>
26 concept GpuComputeNode2 = requires
27 {
28  T::layout::compute;
29 };
30 
31 template <typename T>
32 concept is_gpu = GpuNode<T> || GpuGraphicsNode2<T> || GpuComputeNode2<T>;
33 }