Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion include/nbl/builtin/hlsl/emulated/vector_t.hlsl
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,16 @@ NBL_CONSTEXPR_FUNC this_t operator OP (this_t other) NBL_CONST_MEMBER_FUNC \
return output;\
}

#define NBL_EMULATED_VECTOR_SCALAR_BITWISE_OPERATOR(OP)\
NBL_CONSTEXPR_FUNC this_t operator OP (component_t val) NBL_CONST_MEMBER_FUNC \
{\
this_t output;\
[[unroll]]\
for (uint32_t i = 0u; i < CRTP::Dimension; ++i)\
output.setComponent(i, CRTP::getComponent(i) OP val);\
return output;\
}

#define NBL_EMULATED_FUNDAMENTAL_TYPE_VECTOR_ARITHMETIC_OPERATOR(OP) NBL_EMULATED_VECTOR_ARITHMETIC_OPERATOR(OP)\
NBL_CONSTEXPR_FUNC this_t operator OP(vector<component_t, CRTP::Dimension> other) NBL_CONST_MEMBER_FUNC \
{\
Expand Down Expand Up @@ -257,6 +267,9 @@ struct emulated_vector<ComponentType, CRTP NBL_PARTIAL_REQ_BOT(is_fundamental_v<
NBL_EMULATED_FUNDAMENTAL_TYPE_VECTOR_ARITHMETIC_OPERATOR(&)
NBL_EMULATED_FUNDAMENTAL_TYPE_VECTOR_ARITHMETIC_OPERATOR(|)
NBL_EMULATED_FUNDAMENTAL_TYPE_VECTOR_ARITHMETIC_OPERATOR(^)
NBL_EMULATED_VECTOR_SCALAR_BITWISE_OPERATOR(&)
NBL_EMULATED_VECTOR_SCALAR_BITWISE_OPERATOR(|)
NBL_EMULATED_VECTOR_SCALAR_BITWISE_OPERATOR(^)
NBL_EMULATED_VECTOR_UNARY_OPERATOR(-)
NBL_EMULATED_FUNDAMENTAL_TYPE_VECTOR_ARITHMETIC_OPERATOR(+)
NBL_EMULATED_FUNDAMENTAL_TYPE_VECTOR_ARITHMETIC_OPERATOR(-)
Expand Down Expand Up @@ -321,6 +334,9 @@ struct emulated_vector<ComponentType, CRTP NBL_PARTIAL_REQ_BOT(!is_fundamental_v
NBL_EMULATED_VECTOR_ARITHMETIC_OPERATOR(&)
NBL_EMULATED_VECTOR_ARITHMETIC_OPERATOR(|)
NBL_EMULATED_VECTOR_ARITHMETIC_OPERATOR(^)
NBL_EMULATED_VECTOR_SCALAR_BITWISE_OPERATOR(&)
NBL_EMULATED_VECTOR_SCALAR_BITWISE_OPERATOR(|)
NBL_EMULATED_VECTOR_SCALAR_BITWISE_OPERATOR(^)
NBL_EMULATED_VECTOR_UNARY_OPERATOR(-)
NBL_EMULATED_VECTOR_ARITHMETIC_OPERATOR(+)
NBL_EMULATED_VECTOR_ARITHMETIC_OPERATOR(-)
Expand Down Expand Up @@ -390,6 +406,7 @@ struct emulated_vector<ComponentType, CRTP NBL_PARTIAL_REQ_BOT(!is_fundamental_v
#undef NBL_EMULATED_VECTOR_COMPARISON_OPERATOR
#undef NBL_EMULATED_FUNDAMENTAL_TYPE_VECTOR_ARITHMETIC_OPERATOR
#undef NBL_EMULATED_VECTOR_ARITHMETIC_OPERATOR
#undef NBL_EMULATED_VECTOR_SCALAR_BITWISE_OPERATOR
#undef NBL_EMULATED_VECTOR_UNARY_OPERATOR
#undef DEFINE_OPERATORS_FOR_TYPE

Expand Down Expand Up @@ -563,4 +580,4 @@ NBL_EMULATED_VEC_TO_EMULATED_VEC_STATIC_CAST(4)

}
}
#endif
#endif
Loading