comp.lang.ada
 help / color / mirror / Atom feed
From: BrianG <briang000@gmail.com>
Subject: Re: OpenGL in Ada
Date: Mon, 12 Jul 2010 20:45:42 -0400
Date: 2010-07-12T20:45:42-04:00	[thread overview]
Message-ID: <i1gcp9$7br$1@news.eternal-september.org> (raw)
In-Reply-To: <d3608f61-d766-4a26-a431-890ba560d9b7@b35g2000yqi.googlegroups.com>

Shark8 wrote:
> On Jul 11, 2:46 pm, a...@att.net wrote:
>> In <i1bktn$uc...@speranza.aioe.org>, tmo...@acm.org writes:
>>>>>>>  Procedure Color    ( red, green, blue : in double );
>>>>>>>  Procedure Color    ( red, green, blue : in float );
>>>> One problem you'll have is if a user wants to make a call with all
>>>> literals, i.e. Color(1, 2, 3) or Color(1.0, 2.0, 3.0), the compiler
>>>> won't know which version to use.  The best solution I've found (besides
>>>> making users specify a type)
>>> And what's wrong with requiring the user to be unambiguous by specifying
>>> a type?  It's unlikely there will be a lot of calls with all literals
>>> (unless generated by some program) so it shouldn't be onerous.  And
>>> "Float'(1.0)" is clearer to the person reading the code five years
>> >from now than "Color_F".
>>
>> What your are forgetting is the openGL is a specification from the openGL
>> group ( opengl.org ), it is just like the Ada RM in that respect.  For a
>> program or package, to be classified as openGL it must comply with "openGL
>> group" openGL specification.  Changing any API part nullify the use of
>> openGL in any part of your system.

I'm sorry, I wasn't aware we had a member of the OpenGL police present. 
  Where do I go to pay my fine?  BTW, it appears the proper name is 
OpenGL, not openGL :-).  Not that I'm picky.

Maybe you ('Anon') ought to actually read the spec you mentioned.  The 
following is a direct quote from that document:
"The declarations shown in this document apply to ANSI C. Languages such 
as C++ and Ada that allow passing of argument type information admit 
simpler declarations and fewer entry points."
(with reference to the GLxxxTypeInterface naming convention.)
[http://www.opengl.org/registry/doc/glspec40.core.20100311.pdf]

>>
>> So, adding or altering any definitions about the given API must comply with
>> the openGL specification. Names of the API functions and procedures with
>> the API defined types are set by this openGL group.
> 
> That seems, on its face, to contradict BrianG's claim:
> 
>> What you have is a way to do it, but that's not what the OP posted.  He had
>> all procedures named Color, so the user doesn't need to worry about
>> implementation.  (If I use Color for Double and want to change my program to
>> use Float, I have to change the names of all calls, even if I use calls where
>> the compiler could determine what I want - and not just calls to Color, many
>> routines would have the same issue.)  This is also what the OpenGL
>> documentation implies should be done in a language like Ada.
> 
> But, if he's correct in this earlier post:
>> (I've tried starting a similar effort, but never got very far.  I was using
>> the OpenGL "red book" as a basis; I find it interesting that the OpenGL
>> definition recognizes that "some languages like Ada and C++" could implement
>> names this way, but every Ada library I've seen follows the C naming scheme.)
> 
> Then my renaming (to get rid of the gl- prefix and parameter-type-
> postfix) and
> overloading them all is a valid OpenGL API.
> 
Not only is it valid, it looks like it's what was expected.  I've never 
seen an implementation that does that.

>> visitwww.opengl.org
>> for more information on openGL and the "openGL group"
>>
>> Also, you may find the API specifications predefined with examples in C that
>> you can alter to Ada there as well.
> 
What I've been using is the online v1.1 "Redbook" 
[http://www.glprogramming.com/red/] - since ObjectAda (from Barnes' 
book) uses that version (last I looked, GNAT/GTKAda didn't provide 
OpenGL on windows).

I've never tried figuring out OpenGL versions - right now the "current 
edition of the Redbook" is version 2.1, but the same page points to 
          a "Specification Version 4.0".  Whatever.



  reply	other threads:[~2010-07-13  0:45 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-08  2:42 OpenGL in Ada Shark8
2010-07-08 14:15 ` John B. Matthews
2010-07-09  2:18   ` anon
2010-07-12 16:51   ` Warren
2010-07-13 12:26     ` Ludovic Brenta
2010-07-13 13:13       ` Warren
2010-07-09 11:43 ` Gautier write-only
2010-07-09 15:11 ` Gene
2010-07-09 17:38   ` Shark8
2010-07-09 20:54     ` Gene
2010-07-12 17:04       ` Warren
2010-07-10  4:00     ` BrianG
2010-07-10 11:47       ` Gautier write-only
2010-07-11  2:45         ` BrianG
2010-07-11  4:10           ` Gautier write-only
2010-07-11  5:30       ` tmoran
2010-07-11 20:46         ` anon
2010-07-12 14:17           ` Shark8
2010-07-13  0:45             ` BrianG [this message]
2010-07-13 17:50               ` anon
2010-07-13 18:37                 ` Shark8
2015-01-15  7:11 ` OpenGL in Ada #2 JillRivas
2015-01-30 14:45 ` OpenGL in Ada Lucretia
2015-01-30 18:41   ` David Botton
  -- strict thread matches above, loose matches on Subject: below --
2010-10-05 21:23 Yves Bailly
2010-10-06  3:45 ` anon
2010-10-06  5:10   ` Yves Bailly
2010-10-06  9:51     ` Alex R. Mosteo
2010-10-06 10:38       ` Yves Bailly
2010-10-06 10:59         ` Ludovic Brenta
2010-10-06 16:07           ` Pascal Obry
2010-10-06 17:32             ` Yves Bailly
2010-10-06  8:38 ` Gautier write-only
2010-10-07  1:52   ` BrianG
2010-10-07 22:06     ` Yves Bailly
2010-10-08 17:11     ` Shark8
2010-10-08 15:02 ` Lucretia
2010-10-08 20:42   ` Yves Bailly
2010-10-10 19:49     ` Vadim Godunko
2009-10-28 17:12 Opengl " Pablo
2009-10-28 18:01 ` Pascal Obry
2009-10-28 19:04   ` John B. Matthews
2009-10-29  6:11 ` Gautier write-only
2000-04-27  0:00 OpenGl in ADA Anderson
2000-04-27  0:00 ` Pascal Obry
replies disabled

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