string to char array?
Kyoji Klyden via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Jun 3 03:21:19 PDT 2015
On Wednesday, 3 June 2015 at 08:11:16 UTC, Kagamin wrote:
> On Tuesday, 2 June 2015 at 16:41:38 UTC, Kyoji Klyden wrote:
>> src:
>>
>> string source = readText("test.glvert");
>>
>> const string sources = source.toStringz;
>> const int len = source.length;
>>
>> GLuint vertShader = glCreateShader( GL_VERTEX_SHADER );
>>
>> glShaderSource(vertShader, 1, &sources, &len);
>
> Judging by the docs, you don't need null-terminated strings and
> can use native D strings, just pass their lengths:
>
> string source = readText("test.glvert");
>
> const char* sources = source.ptr;
> const GLint len = cast(GLint)source.length;
>
> GLuint vertShader = glCreateShader( GL_VERTEX_SHADER );
>
> glShaderSource(vertShader, 1, &sources, &len);
Oh that also works quite well!
Is casting necessary there though? DerelictGL treats GL types as
D types, and .length is size_t so wouldn't it just turn into an
int regardless??
Also the one part I don't understand is with &sources. So is this
passing sources as a reference, but sources itself is a pointer
to a pointer? I'm just a tad confused on how this part works :S
More information about the Digitalmars-d-learn
mailing list