comp.lang.ada
 help / color / mirror / Atom feed
From: Ron Wills <ron.rwsoft@gmail.com>
Subject: Interfacing C type, unconstrained array with record
Date: Sat, 16 Oct 2010 10:35:39 -0700 (PDT)
Date: 2010-10-16T10:35:39-07:00	[thread overview]
Message-ID: <fb2bbb15-1aff-408e-bada-3b7f4d81fa74@t8g2000yqk.googlegroups.com> (raw)

Hi all

I've started learning Ada and started porting some software I had in C/
C++ as a learning exercise. The software uses SDL, so I started a thin
wrapper around it. I've been very successful with it, but with the
exception of the palette structure which in C is defined as:

typedef struct {
  int ncolors;
  SDL_Color colors[]; // Actually is SDL_Color *colors but this is how
it is laid out in memory
} SDL_Palette;

In Ada I'm trying to do something like:

type SDL_Color is
  record
    r, g, b, unused : Uint8;
  end;
type SDL_Color_Array is array(Positive range <>) of Color;
type SDL_Palette is
  record
    ncolors : Integer;
    colors : SDL_Color_Array;
  end;

 Now Ada (GNAT) won't compile this because the colors component is
unconstrained, which is understandable. I've been googling for a
couple of days for a way of modeling this in Ada and still having
access to all the colors in the colors component. In other SDL
interface implementations, all I've seen is that the colors component
is made into a type of "Dummy" component and made more or less
useless. I've also been combing the reference manual, but nothing I've
noticed seems to solve this issue. I'm sure I'm not the only one that
has come across this problem and was wondering what solutions are
available.

Thanks



             reply	other threads:[~2010-10-16 17:35 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-16 17:35 Ron Wills [this message]
2010-10-16 18:36 ` Interfacing C type, unconstrained array with record Dmitry A. Kazakov
2010-10-16 19:19   ` Ron Wills
2010-10-16 22:15     ` Jeffrey Carter
2010-10-17 10:20       ` Simon Wright
2010-10-17 12:38         ` Robert A Duff
2010-10-17  8:35     ` Dmitry A. Kazakov
2010-10-17 12:30       ` Robert A Duff
2010-10-16 21:41   ` Robert A Duff
2010-10-16 23:34     ` tmoran
2010-10-17  6:59     ` J-P. Rosen
2010-10-17 12:34       ` Robert A Duff
2010-10-17  7:45     ` Dmitry A. Kazakov
replies disabled

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