On 9/20/20 11:52 AM, realhet wrote:
On Sunday, 20 September 2020 at 14:54:09 UTC, Steven Schveighoffer wrote:
On 9/20/20 9:30 AM, realhet wrote:
ref inout(int) x() inout { return array[0]; }
This doesn't work when I type:
v.x++;
It should, as long as v is mutable.
I want to make a similar type like the GLSL vectors. Where the following
thing is valid:
vec4 a, b;
a.yzw = b.xzy;
This should be straight-up opDispatch I would think. You might need a
helper return that reroutes the correct items.
The only thing I don't want to implement from the GLSL spec is those
non-contigous swizzle assignments like:
a.zyx = vec3(1,2,3) ***
but
a.xyz = vec3(1,2,3) should work.
What you could do, in this case, is make your return type either a
helper type that uses a slice of the original, or one that contains a
copy of the data in the right order, but is not assignable.
*** maybe with a struct that refers to the original vector and the
swizzle code it could be also possible. :D
Yeah, I think this might work.
-Steve