digitalmars.D.learn - size of C enum
- Trevor Parscal (33/33) Jun 27 2005 I am still working on FreeType for D, and I am having trouble, of course...
- Unknown W. Brackets (18/54) Jun 27 2005 I would personally just do this:
-
Stewart Gordon
(18/39)
Jul 01 2005
I am still working on FreeType for D, and I am having trouble, of course.
Sooo, if FreeType is in C, and I am writing a binding... And there is an
enum in the headers, which is refered to by the name of the enumeration...
I should take this...
/* C Code */
typedef enum FT_Glyph_Format_
{
FT_GLYPH_FORMAT_NONE = 0,
FT_GLYPH_FORMAT_COMPOSITE = 1668246896,
FT_GLYPH_FORMAT_BITMAP = 1651078259,
FT_GLYPH_FORMAT_OUTLINE = 1869968492,
FT_GLYPH_FORMAT_PLOTTER = 1886154612
} FT_Glyph_Format;
/* */
and write this?
/* D Code */
alias int FT_Glyph_Format;
const int FT_GLYPH_FORMAT_NONE = 0;
const int FT_GLYPH_FORMAT_COMPOSITE = 1668246896;
const int FT_GLYPH_FORMAT_BITMAP = 1651078259;
const int FT_GLYPH_FORMAT_OUTLINE = 1869968492;
const int FT_GLYPH_FORMAT_PLOTTER = 1886154612;
/* */
The reason I am asking, is because I am getting an error that the
FT_Glyph_Format is invalid, which to me hints wrong data type, but I
have tried everything I feel like...
How big is a C enumeration in D? Am I doing this all wrong? ANY Help
would be really great!
--
Thanks,
Trevor Parscal
www.trevorparscal.com
trevorparscal hotmail.com
Jun 27 2005
I would personally just do this:
enum FT_Glyph_Format
{
FT_GLYPH_FORMAT_NONE = 0,
FT_GLYPH_FORMAT_COMPOSITE = 1668246896,
FT_GLYPH_FORMAT_BITMAP = 1651078259,
FT_GLYPH_FORMAT_OUTLINE = 1869968492,
FT_GLYPH_FORMAT_PLOTTER = 1886154612
}
But you could do this:
alias int FT_Glyph_Format;
const FT_Glyph_Format FT_GLYPH_FORMAT_NONE = 0;
const FT_Glyph_Format FT_GLYPH_FORMAT_COMPOSITE = 1668246896;
const FT_Glyph_Format FT_GLYPH_FORMAT_BITMAP = 1651078259;
const FT_Glyph_Format FT_GLYPH_FORMAT_OUTLINE = 1869968492;
const FT_Glyph_Format FT_GLYPH_FORMAT_PLOTTER = 1886154612;
An enum will be, afaik, an int by default.
-[Unknown]
I am still working on FreeType for D, and I am having trouble, of course.
Sooo, if FreeType is in C, and I am writing a binding... And there is an
enum in the headers, which is refered to by the name of the enumeration...
I should take this...
/* C Code */
typedef enum FT_Glyph_Format_
{
FT_GLYPH_FORMAT_NONE = 0,
FT_GLYPH_FORMAT_COMPOSITE = 1668246896,
FT_GLYPH_FORMAT_BITMAP = 1651078259,
FT_GLYPH_FORMAT_OUTLINE = 1869968492,
FT_GLYPH_FORMAT_PLOTTER = 1886154612
} FT_Glyph_Format;
/* */
and write this?
/* D Code */
alias int FT_Glyph_Format;
const int FT_GLYPH_FORMAT_NONE = 0;
const int FT_GLYPH_FORMAT_COMPOSITE = 1668246896;
const int FT_GLYPH_FORMAT_BITMAP = 1651078259;
const int FT_GLYPH_FORMAT_OUTLINE = 1869968492;
const int FT_GLYPH_FORMAT_PLOTTER = 1886154612;
/* */
The reason I am asking, is because I am getting an error that the
FT_Glyph_Format is invalid, which to me hints wrong data type, but I
have tried everything I feel like...
How big is a C enumeration in D? Am I doing this all wrong? ANY Help
would be really great!
Jun 27 2005
Unknown W. Brackets wrote:
I would personally just do this:
enum FT_Glyph_Format
{
FT_GLYPH_FORMAT_NONE = 0,
FT_GLYPH_FORMAT_COMPOSITE = 1668246896,
FT_GLYPH_FORMAT_BITMAP = 1651078259,
FT_GLYPH_FORMAT_OUTLINE = 1869968492,
FT_GLYPH_FORMAT_PLOTTER = 1886154612
}
But you could do this:
alias int FT_Glyph_Format;
const FT_Glyph_Format FT_GLYPH_FORMAT_NONE = 0;
const FT_Glyph_Format FT_GLYPH_FORMAT_COMPOSITE = 1668246896;
const FT_Glyph_Format FT_GLYPH_FORMAT_BITMAP = 1651078259;
const FT_Glyph_Format FT_GLYPH_FORMAT_OUTLINE = 1869968492;
const FT_Glyph_Format FT_GLYPH_FORMAT_PLOTTER = 1886154612;
An enum will be, afaik, an int by default.
<snip>
How about this?
enum FT_Glyph_Format {
NONE = 0,
COMPOSITE = 1668246896,
BITMAP = 1651078259,
OUTLINE = 1869968492,
PLOTTER = 1886154612
}
No point forcing yourself to write such redundancies as
FT_Glyph_Format.FT_GLYPH_FORMAT_COMPOSITE all the time. This way, the
final underscore effectively turns into a dot. This is how, in SDWF, I
create enums from Windows API constants.
Stewart.
--
My e-mail is valid but not my primary mailbox. Please keep replies on
the 'group where everyone may benefit.
Jul 01 2005








Stewart Gordon <smjg_1998 yahoo.com>