GPU: add negated normal conversion functions

Saves having to negate to a temporary variable.
This commit is contained in:
Campbell Barton
2019-01-03 16:56:16 +11:00
parent 6cb3972063
commit d28b29d428
2 changed files with 14 additions and 0 deletions

View File

@@ -112,6 +112,8 @@ typedef struct GPUPackedNormal {
} GPUPackedNormal;
GPUPackedNormal GPU_normal_convert_i10_v3(const float data[3]);
GPUPackedNormal GPU_normal_convert_i10_v3_negated(const float data[3]);
GPUPackedNormal GPU_normal_convert_i10_s3(const short data[3]);
GPUPackedNormal GPU_normal_convert_i10_s3_negated(const short data[3]);
#endif /* __GPU_VERTEX_FORMAT_H__ */

View File

@@ -478,8 +478,20 @@ GPUPackedNormal GPU_normal_convert_i10_v3(const float data[3])
return n;
}
GPUPackedNormal GPU_normal_convert_i10_v3_negated(const float data[3])
{
GPUPackedNormal n = { .x = quantize(-data[0]), .y = quantize(-data[1]), .z = quantize(-data[2]) };
return n;
}
GPUPackedNormal GPU_normal_convert_i10_s3(const short data[3])
{
GPUPackedNormal n = { .x = convert_i16(data[0]), .y = convert_i16(data[1]), .z = convert_i16(data[2]) };
return n;
}
GPUPackedNormal GPU_normal_convert_i10_s3_negated(const short data[3])
{
GPUPackedNormal n = { .x = convert_i16(-data[0]), .y = convert_i16(-data[1]), .z = convert_i16(-data[2]) };
return n;
}