Amigaanywhere - About The Api Modules


Status
Not open for further replies.

Wildstar

Still Fresh
Joined
Jun 24, 2009
Messages
48
This message is just a insert message for discussing the API modules of AA v2.0.0 from the AmigaAnywhere SDK documentation.

I signed an SDA not an NDA. There is nothing illegal about discussing the SDK internals.
For starters - AmigaAnywhere is a copyrighted API/middle-ware technology of Amiga Inc.

Ok, if you don't like Amiga Inc., please don't waste time debating the evils of Amiga Inc. There is two sides to every story and no one's a saint so there.
AA can be supported in much the same way as anything else. (Proving the system compile works on Pandora. That will be tested at a later time and I will assist anyone willing to assist in the compiling to whatever extent needed but that can be discussed in private.

I'll start with the API module listing. (There is also the include files that apparently corresponds to the API Module.) Does AA support 2D yes. Does it support 3D modeling and rendering? There is an FPS that demonstrates it. The API modules can be said to be like a hardware abstraction layer. 3D stuff is a little higher up in the application but displays are still technically 2d and matrixing 3D is silly your monitor is still 2D and 3D virtual information has to be rasterized anyway. You should find a way to rasterize your 3D in the individual application itself or add to the API modules for specific hardware that sports 3D Hardware and rasterization OR is an actual holographic projection display card.

Anyway, these basic modules are for giving you the mechanism needed to create content for a wide range of hardware devices.

For those who are interested in producing open-ware games / PD games, look at like this, you can sign the SDA and their 40% of $0 is still $0. You publish. You don't have to use their publishing mechanism.

Enough rambling.... What will follow in the next post by me is an Index of the API modules.
 
Index of AA2 modules:

AA Core Library API
Audio Library API
Bob Library API
Config Library API
Display Library API
Event Library API
Font Library API
HTML Library API
Imageset Library API
Linked List Library API
Mathematics Library API
Memory Library API
Message Port Library API
Pixmap Library API
Preferences Library API
Pthreads Library API
String Library API
Time Library API
Filesystem Library API
 
Index of AA2 modules:
AA Core Library API
Audio Library API
Bob Library API
Config Library API
Display Library API
Event Library API
Font Library API
HTML Library API
Imageset Library API
Linked List Library API
Mathematics Library API
Memory Library API
Message Port Library API
Pixmap Library API
Preferences Library API
Pthreads Library API
String Library API
Time Library API
Filesystem Library API

So can we place bets on how fast this post will be closed?

Actually, let's move it to the Developer's Forum (where it should have been) and THEN close it!
sounds like fun.
 
Last edited by a moderator:
I was probably the one who caused the original thread to be locked. I'm refraining from posting opinions in this thread. But I suggest the OP is a troll (I give permission for any mods to view my private messages if needs me) and that this thread should be locked.

I also believe it is against the forum rules to start a new thread when a similar one has been locked.
 
and THEN close it!
sounds like fun.
No need, I chose to keep it out of there for now. If the Moderators are acceptable with moving it to Developer's forum then okay.
I'm just doing my part in the initial works in AA supporting Pandora which means - it running on Pandora and that inadvertantly means
Pandora supporting AA just by the very element of it running on Pandora. No additional support then successful compile and operation
of AA on Pandora which should be easy. After that, it is up to developers to use it or not use it.

Closing it, no need. Lets just use the thread to place AA info in and then people can read about it for information purposes. I'm doing that
and if Amiga Inc. don't like it, tough shit. I'm opening info about it. Maybe then there can be more steam behind development. (Not Bill McEwen's hot air or gas.)

Amiga Inc., I'll keep to as factual about it as possible with the official Developer's Reference Manual as a Bibliographical source.

Thank You. Not trying to "troll" or cause problems. Not my intent. Lets leave Amiga Inc.'s business politics out of it and the surrounding politics.

Pleng, you appear to have personal issues about Amiga Inc. First, I don't work for Amiga Inc. I am totally independent of them. I suggested it because I want to see it running on Pandora and that it be supported just as UAE, AROS and others. Be open. Lastly, I am not trying to "Troll".
 
Last edited by a moderator:
Excerpt from AA2 SDK API Reference Manual (original author/publisher: Amiga Inc.)

CODE
AA Core Library API
The Amiga Anywhere API is a cross platform, multimedia, software library that creates a thin layer of
abstraction over a given host platform native APIs, allowing a developer to write a game or multimedia
application once, then compile and run it on many different operating systems.

Data Structures
struct AaSize
Object size.
struct AaVector
Object vector.

Defines
#define AA_TRACE
#define amitracef(format_string,...)
#define amitracefptr(ptr)
#define MAX(a, B) (((a) > (B)) ? (a) : (B))
#define MIN(a, B) (((a) < (B)) ? (a) : (B))

Typedefs
typedef AaVector AaPoint
typedef uint32 AaTableIndex

Functions
void aaExit (int32 exitcode)
int aaMain (int argc, char **argv)
int32 aaVersion ()

Detailed Description
The Amiga Anywhere API is a cross platform, multimedia, software library that creates a thin layer of
abstraction over a given host platform native APIs, allowing a developer to write a game or multimedia
application once, then compile and run it on many different operating systems.

Start-up and Shutdown
The aaMain() function is the entry point for all Amiga Anywhere based applications. It is analogous to the
’main()’ entry point function of a standard ANSI C application.
The following example demonstrates a simple ’Hello World’ style application.
#include <aa.h>
int aaMain(int argc, char **argv)
{
const char *msg = "Hello, world!";
int32 color = RGBGREEN;
aaOpenDisplay(200, 200, 16, "My Window", FAA_DISPLAY_WINDOW);
aaDrawString(AA_DISPLAY_PIXMAP, msg, 20, 20, AA_DEFAULT_FONT, color, 0, FAA_FONT_INK, -1);
aaUpdate();
aaWaitInput();
return 0;
}

Amiga Anywhere Index Table
Amiga Anywhere uses an internally managed indexed table system to track many core resources, such as
Bobs, Imagesets and Pixmaps. This often allows all resources of a particular type to be operated on with
a single function call, for example aaRemoveAllBobs() removes all bobs and frees the memory used, or
aaHideBobs() hides all the bobs.
In practice this means index numbers are used to reference resources where addresses (pointers or resource
handles) might have otherwise been used in a traditional environment.

Primitive Exact-Width Types
Different hardware platforms will sometimes represent the standard ANSI C data types using different
storage sizes. For example, personal computers typically have 32-bit integer registers, and fit an int into
that size. Now that personal computers are moving towards 64-bit processors, this may not always be
true, and older computers will have stored an int in a 16-bit integer register. For this reason, the Amiga
Anywhere Core library provides a set of clearly identifiable exact-width primative data types, guaranteeing
the amount of storage space allocated to a data type regardless of the underlying hardware platform. The
full list is available in the appendix here.

Define Documentation

#define AA_TRACE
Enables amitracef() output.
The amitracef() and amitracefptr() output macros are enabled when this symbol is defined. These macros
are also automatically enabled when the DEBUG or _DEBUG symbol is defined.

#define amitracef(format_string, ...)
A macro that outputs a formatted string to the trace device.
This macro behaves similarly to the standard ANSI C printf() function, replacing conversion specifications
in the format_string with values from the argument list. It is preferable to use this macro for
outputting error messages rather than using a custom solution because all errors are written to a known
location, usually a file in the same directory as the application on most platforms (or the current device root
on Windows Mobile). Additionally, this macro is enabled only when the AA_TRACE symbol is defined,
making it easy to strip or include debug output in any Amiga Anywhere application.

Parameters:
format_string: Pointer to a string to output with formatting information.
...: Variable argument list (0, 1 or more arguments to match format_string).
Example:
int error = -1;
amitracef("An error occurred (code: %d)\n", error);
Result:
An error occurred (code: -1)

#define amitracefptr(ptr)
A macro that outputs a pointer address to the trace device.
Please see amitracef() for more details on using the amitracef macros.

#define MAX(a, B) (((a) > (B)) ? (a) : (B))
A macro that returns the largest of the two values, a or b.

#define MIN(a, B) (((a) < (B)) ? (a) : (B))
A macro that returns the smallest of the two values, a or b.

Typedef Documentation

typedef AaVector AaPoint
Object Position.
This structure describes the x,y position coordinates of a generic object

typedef uint32 AaTableIndex
Amiga Anywhere Index Table.
Please see the Amiga Anywhere Index Table section for more information.

Function Documentation

void aaExit (int32 exitcode)
Signals the Amiga Anywhere main thread to quit and then exits.
This function can be called to successfully exit an Amiga Anywhere application. Note that this function
never returns to the caller.
Parameters:
exitcode Exit code to return the the parent thread.
Returns:
None.
See also:
aaMain()

int aaMain (int argc, char **argv)
The entry point for all Amiga Anywhere applications.
This function is analogous to the ’main()’ entry point function of a standard ANSI C application.
Parameters:
argc Number of command-line arguments.
argv Pointer to command-line arguments.
Returns:
Returns exit status.
See also:
aaExit()

int32 aaVersion (void)
Returns the version number of the currently installed Amiga Anywhere tools.
Returns:
Returns the Amiga Anywhere version number



-----------------------------------------------------------------------------------------------

End of the excerpt of the first module.
 
Last edited by a moderator:
I registered a few months ago at Amiga Inc., but never completed signing the SDA (or was it a NDA) because i didn't actually have anything to release. But i am interested in where the platform is actually being used (if anywhere)? How does it work, how many people can i release software for, and how are you going to get AA to run on pandora?

Can you tell a little about that, or am i completely off topic here?
 
? How does it work, how many people can i release software for, and how are you going to get AA to run on pandora?

Can you tell a little about that, or am i completely off topic here?
If PMing works would be great. Anyway, it's a SDA (Software Developer's Agreement). The SDA doesn't limit the number of releases. It should with ease be ported to Pandora. AA is able to run on top of existing OSs such as Windows & Linux and on x86 & ARM CPU (from what I can tell in the 2.0.0 SDK package.

You only have to worry about the 40% rule for AA releases that you "sell". Stuff put up for $0.00 (which you decide to put up for PD or Freeware) equates to $0 to Amiga Inc., anyway.

I believe it is possible to install the SDK package to the suited platform. Some of the OSs underlying hardware abstraction layer mechanisms will provide the AA player/SDK (and the game/app ultimately). AA structure would get that out of the underlying OS. (Some of the technical aspects, I am not fully knowledgeable on).

How many people can release sw for it? Hmm... no number limitation. Amiga Inc. has had some trouble on things but it has been operated on desktop, PDAs, cellphones, ect. Its use has been very limited due to limited development as of current. I've heard of stuff with it on AT&T mobile phone downloads and stuff. More content (games, apps,ect.) needs to be produced.

Yes, you can sign an SDA and not worry about if/when you plan to release anything. I'm learning more and more about AA as I toy around with it and read about it. The trick is figuring it out.

There is no annual fees to maintain the SDA nor do they even bother/push you to release anything. You are in control of that.

You get access to the SDK and there is some developer news and access areas and you can find out about some of the stuff that is not released on public news by Amiga Inc. before hand. With more activity, things will become more effective there. I try to release some of the info.

How does it work? I'll answer that in a follow-up post to clearly and hopefully accurately explained.

Stay tune, I believe this thread can be used to cover that. It goes hand in hand with how the API modules work. Keep it from sprawling into a bunch of threads.
 
Last edited by a moderator:
QUOTE
Lets just use the thread to place AA info in and then people can read about it for information purposes. I'm doing that
and if Amiga Inc. don't like it, tough shit


and then the forum can be closed by AA`s lawyers, right?

I think you are trying to stir up trouble, AA isn`t needed, there are a whole bundle of libs out there, many run on all the MAIN platforms.

I`m pretty sure you are trolling, I am totally sure the only thing that would shut you up is a ban, almost everyone is disinterested in AA, including me, there is no interest co it does nothing interesting, end of story.
 
QUOTE
Lets just use the thread to place AA info in and then people can read about it for information purposes. I'm doing that
and if Amiga Inc. don't like it, tough shit
and then the forum can be closed by AA`s lawyers, right?

I think you are trying to stir up trouble, AA isn`t needed, there are a whole bundle of libs out there, many run on all the MAIN platforms.

I`m pretty sure you are trolling, I am totally sure the only thing that would shut you up is a ban, almost everyone is disinterested in AA, including me, there is no interest co it does nothing interesting, end of story.


If you are not interested in the topic, please be civil and not read the topic. You don't have to click on the topic. There is 100s and 1000s of topics that you can read. No trouble. Be civil and speak only for yourself.
 
Last edited by a moderator:
"Trolling" because you don't like AA? Hobbyman, maybe the world doesn't evolve around you. It looks like you are deliberately trying to stir up trouble so this gets closed. If you have nothing of value to add, please don't post on this thread. Everyone interested in AA will appreciate it if we could get some info.

RickAstoria, isn't AA a virtual machine? Is there a package available for ARM that can be installed? I thought it was closed source and would require Amiga Inc. to port it to Pandora.
 
I'm curious: why all the controversy over this framework? Why would Amiga sue over talking about it? Sorry if this was discussed before.
I agree. I would hope folks would talk about the framework of their choice. Amiga won't. They really don't care.

It would be in their benefit to let people discuss it. Share information that can help people learn to program for it and develop for it.
 
Last edited by a moderator:
"Trolling" because you don't like AA? Hobbyman, maybe the world doesn't evolve around you. It looks like you are deliberately trying to stir up trouble so this gets closed. If you have nothing of value to add, please don't post on this thread. Everyone interested in AA will appreciate it if we could get some info.

RickAstoria, isn't AA a virtual machine? Is there a package available for ARM that can be installed? I thought it was closed source and would require Amiga Inc. to port it to Pandora.
API / VM - yes.

I'll have to read on how we can set it up for compiling native binary for ARM-Linux from GCC as that is the compiler mechanism used by AA SDK (MinGW).
 
Last edited by a moderator:
You can take your Amiga inc shit and shove it up your arse. I've been contacted enough times and warned about your suspect and devious behavior to know how to react to you. Go away, we are only interested in genuine open software.

Etc. Etc. Etc.

(everyone else do a deep Google on these people, they have nothing to do with the A500/600/1200 you remember)
 
I didn't claim it was.

PS: If you are truly open and want only truly open software then it must be PUBLIC DOMAIN not GPL or any form of Public License. You don't retain any right or credit over the work.
 
Last edited by a moderator:
<SNIP>
(everyone else do a deep Google on these people, they have nothing to do with the A500/600/1200 you remember"]
I didn't claim it was.[/quote]PS: If you are truly open and want only truly open software then it must be PUBLIC DOMAIN not GPL or any form of Public License. You don't retain any right or credit over the work.

now you're just being ridiculous. craig didn't say you claimed they had anything to do with the A500/600/1200, he said that so anyone who happened to be reading wouldn't get confused. and you're attacking him about open software because you can't defend why anyone one here should even consider being interested in this.
 
Last edited by a moderator:
Why is this guy even still here advertising this crap that nobody would ever use, you'd figure after how almost every reply he's gotten is negative feedback he'd realize nobody cares
 
Status
Not open for further replies.
Back
Top