comp.lang.ada
 help / color / mirror / Atom feed
From: "Steve Doiel" <steved@pacifier.com>
Subject: Re: help with pointerproblem.
Date: 1998/09/10
Date: 1998-09-10T00:00:00+00:00	[thread overview]
Message-ID: <35f88e65.0@news.pacifier.com> (raw)
In-Reply-To: 35f7f673.0@newsfeed.uu.se

Roger Carlsson wrote in message <35f7f673.0@newsfeed.uu.se>...
>Hello.
>
>I'm writing a program in ada95 with opengl on W95.
>
>I have the following definitions in GL.ads:
>
>type GLubyte     is new C.unsigned_char;
>type GLpointer   is access all GLubyte;  -- our substitute for "void *"
>
>and
>
>procedure (.......; x : GLpointer);
>
>
>My own types:
>
>type VertexArray is array (NATURAL range <>) of aliased GLfloat;
>type VertexArrayPtr is access VertexArray;
>
>
>and in the program:
>VPtr : VertexArrayPtr;
>.....
>
>VPtr := new VertexArray(0 .. n);
>
>
>procedure(....., GLpointer(VPtr));
>
>I want to give the procedure my VertexArray as argument x.
>My question is: How do i convert my VertexarrayPtr to a GLpointer?
>I have tried different solutions but the compiler complains like:
>Target designated type not compatible with type VertexArray.
>
>If i can not. Can i rewrite my own types so it works?
>The VertexArray must hold GLfloat's.
>


You could give the following a shot.

with System.Address_To_Access_Conversions;
.
.
package ToGlPointerPackage is new
  System.Address_To_Access_Conversions( GLUbyte );

function ToGLpointer( vPtr : VertexArrayPtr) return GLPointer IS
begin
  return GLPointer( ToGlPointerPackage.To_Pointer( vPtr.ALL'ADDRESS ) );
end ToGLpointer;

I'm not sure about correctness, but it makes the compiler happy.

I hope this helps,
SteveD







  reply	other threads:[~1998-09-10  0:00 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1998-09-10  0:00 help with pointerproblem Roger Carlsson
1998-09-10  0:00 ` Steve Doiel [this message]
1998-09-11  0:00   ` Wayne Magor
1998-09-11  0:00     ` Mats Weber
1998-09-12  0:00     ` dewarr
1998-09-17  0:00       ` Matthew Heaney
1998-09-11  0:00 ` Mats Weber
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox