Generic (void *)int
Jorn Vernee
jbvernee at xs4all.nl
Mon Feb 18 09:56:20 UTC 2019
Hi Giuseppe,
You should be able to use this trick:
long pointerValue = 12L; // e.g.
Scope scope = Scope.newNativeScope; // or Scope.globalScope().fork()
depending on which version you are
Pointer<Long> ptr = scope.allocate(NativeTypes.UINT64);
ptr.set(pointerValue);
Pointer<?> result =
ptr.cast(NativeTypes.VOID).cast(NativeTypes.VOID.pointer()).get();
// use 'result'
Be aware that this does do an allocation of a 64 bit int, so you might
want to reuse the allocated space if you create a lot of pointers from
literals.
Maybe in the future we can add an API for creating pointers from long
literals directly.
Jorn
Giuseppe Barbieri schreef op 2019-02-18 10:44:
> Thanks Sundar,
>
> that works flawless for `(void *)0`
>
> But now I also would need a generic solution, for example:
>
> (void *)12
>
> There is a sill opengl call ( glVertexPointer ) requesting explicitely
> that: https://stackoverflow.com/a/8283855/1047713
>
> Signature:
>
> void glVertexAttribPointer(int index, int size, int type, byte
> normalized, int stride, Pointer<?> pointer);
>
>
> is there actually a way?
>
>
>
>
>
>
> You can use Pointer.nullPointer() method.
>
> -Sundar
>
> On 18/02/19, 8:09 AM, Giuseppe Barbieri wrote:
>> Hi,
>>
>> I'm looking for a way to convert this:
>>
>> (void*)0
>>
>> in Java.
>>
>> I tried to allocate a pointer and set its value to 0, but it didnt
>> work
>>
>> Any ideas, guys?
>>
>> Thanks in advance
More information about the panama-dev
mailing list