Thread overview | |||||||||
---|---|---|---|---|---|---|---|---|---|
|
June 17, 2015 Convert std.container.array to void[] and/or pass to OpenGL functions like glBuffer(Sub)Data | ||||
---|---|---|---|---|
| ||||
I use wrapper functions taking void[] arrays to forward them comfortably to mentioned OpenGL functions. This works with static and dynamic build in arrays, but I don't see a way how I could access (cast) the raw data of a std.container.array to forward it to these wrapper functions. std.array(Range)(Range r) does a copy which I would like to avoid. Any advice ? |
June 17, 2015 Re: Convert std.container.array to void[] and/or pass to OpenGL functions like glBuffer(Sub)Data | ||||
---|---|---|---|---|
| ||||
Posted in reply to ParticlePeter | On Wednesday, 17 June 2015 at 13:04:28 UTC, ParticlePeter wrote:
> I use wrapper functions taking void[] arrays to forward them comfortably to mentioned OpenGL functions. This works with static and dynamic build in arrays, but I don't see a way how I could access (cast) the raw data of a std.container.array to forward it to these wrapper functions. std.array(Range)(Range r) does a copy which I would like to avoid. Any advice ?
Try slicing it: `array[]`
|
June 17, 2015 Re: Convert std.container.array to void[] and/or pass to OpenGL functions like glBuffer(Sub)Data | ||||
---|---|---|---|---|
| ||||
Posted in reply to Alex Parrill | On Wednesday, 17 June 2015 at 13:07:11 UTC, Alex Parrill wrote:
> On Wednesday, 17 June 2015 at 13:04:28 UTC, ParticlePeter wrote:
>> I use wrapper functions taking void[] arrays to forward them comfortably to mentioned OpenGL functions. This works with static and dynamic build in arrays, but I don't see a way how I could access (cast) the raw data of a std.container.array to forward it to these wrapper functions. std.array(Range)(Range r) does a copy which I would like to avoid. Any advice ?
>
> Try slicing it: `array[]`
That gives me a range, which I could convert to an array with std.array(Range)(Range
r) which I want to avoid.
|
June 17, 2015 Re: Convert std.container.array to void[] and/or pass to OpenGL functions like glBuffer(Sub)Data | ||||
---|---|---|---|---|
| ||||
Posted in reply to ParticlePeter | On Wednesday, 17 June 2015 at 13:04:28 UTC, ParticlePeter wrote:
> I use wrapper functions taking void[] arrays to forward them comfortably to mentioned OpenGL functions. This works with static and dynamic build in arrays, but I don't see a way how I could access (cast) the raw data of a std.container.array to forward it to these wrapper functions. std.array(Range)(Range r) does a copy which I would like to avoid. Any advice ?
Would this work?
(&arr.front)[0 .. arr.length]
|
June 17, 2015 Re: Convert std.container.array to void[] and/or pass to OpenGL functions like glBuffer(Sub)Data | ||||
---|---|---|---|---|
| ||||
Posted in reply to Marc Schütz | On Wednesday, 17 June 2015 at 13:31:21 UTC, Marc Schütz wrote:
> On Wednesday, 17 June 2015 at 13:04:28 UTC, ParticlePeter wrote:
>> I use wrapper functions taking void[] arrays to forward them comfortably to mentioned OpenGL functions. This works with static and dynamic build in arrays, but I don't see a way how I could access (cast) the raw data of a std.container.array to forward it to these wrapper functions. std.array(Range)(Range r) does a copy which I would like to avoid. Any advice ?
>
> Would this work?
>
> (&arr.front)[0 .. arr.length]
Unfortunately not:
Error: Vector!(float, 3) delegate() pure nothrow @property ref @safe cannot be sliced with []
Fyi, its an std.container.array!( gl3n.Vector!(float, 3) ) array.
|
June 17, 2015 Re: Convert std.container.array to void[] and/or pass to OpenGL functions like glBuffer(Sub)Data | ||||
---|---|---|---|---|
| ||||
Posted in reply to ParticlePeter | (&arr.front())[0 .. arr.length] ? |
June 17, 2015 Re: Convert std.container.array to void[] and/or pass to OpenGL functions like glBuffer(Sub)Data | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kagamin | On Wednesday, 17 June 2015 at 13:58:09 UTC, Kagamin wrote:
> (&arr.front())[0 .. arr.length] ?
Yes, this works, nice, thanks :-)
|
Copyright © 1999-2021 by the D Language Foundation