Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Work in Progress / Latest work on the C++ Interface library

Author
Message
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 5th Mar 2004 21:48
Good news for all of you Dev-C++ users out there ...

The interface library is currently being trialed for Dev-C++ using the GCC 3.2 compiler.

All is currently going well and I hope to have a final release on my site by next Friday (as long as things are still going well ...)

If you would like to assist with the testing of it, and you already know how to set up Dev-C++ to use extra header files and libraries then just drop me an email.

If you can't set this up yourself then I'm afraid that you are going to have to wait for the official release which will have the instructions included

For free Plug-ins, source and the DBPro Interface library for Visual C++ 6 and .NET
http://www.matrix1.demon.co.uk
Mussi
21
Years of Service
User Offline
Joined: 27th Jan 2003
Location: Netherlands
Posted: 5th Mar 2004 21:59
I love you



Specs: AMD Athlon 1800, 256 DDRRam 266mhz, 80GB HD 7200rmp U133, Geforce 4 Ti4400 128mb
Proteus 1935
20
Years of Service
User Offline
Joined: 7th Oct 2003
Location: Brazil
Posted: 7th Mar 2004 14:59
Nice work once again IanM

Currently coding: MAG
Recent coding: Video Capture Plug-in
Pharos, Time traveling since 2025
walaber
20
Years of Service
User Offline
Joined: 22nd Oct 2003
Location: Los Angeles, CA
Posted: 10th Mar 2004 07:28
well I've decided to bite the bullet and get Visual C++ .net...

this library seems *really* cool... I would think programs written this way would be faster in general than program written entirely in DBPro... would this assumption be correct?

I'm planning on purchasing the software today... I probably won't be able to get anything running with the library for a week or so

Go Go Gadget DBPRO!

Athlon XP 2400+ || DDR-SDRAM 1GB || Nvidia GeForce 4 Ti4200 AGP 8x 128MB
OSX Using Happy Dude
20
Years of Service
User Offline
Joined: 21st Aug 2003
Location: At home
Posted: 10th Mar 2004 15:20
Quote: "this library seems *really* cool... I would think programs written this way would be faster in general than program written entirely in DBPro... would this assumption be correct?"

Oh yes indeedly. Slightly less so if you get VS .Net Standard (as that wont let you optimise too much), but any speed decrease wont be noticable.

I think (and its only a wild guess), that the DBPro Interface can make your program run 150+% faster than if you did it natively.

I get a solid 89/90 FPS in my game, which uses linked lists and updates all these objects in one go.


The place for all great plug-ins.
XP3000+,1Gb RAM,FX5600,1Mb ADSL,Router,.Net 2003 Pro & me
walaber
20
Years of Service
User Offline
Joined: 22nd Oct 2003
Location: Los Angeles, CA
Posted: 10th Mar 2004 16:12
yeah, a shame I can't afford the professional edition, I'll have to make do with the "unoptimizing" standard edition...

amazingly I got the AppDLL example program up and running with little to no difficulty!!

I even followed the TGC sdk, and made a simple TPC

fun fun

Go Go Gadget DBPRO!

Athlon XP 2400+ || DDR-SDRAM 1GB || Nvidia GeForce 4 Ti4200 AGP 8x 128MB
OSX Using Happy Dude
20
Years of Service
User Offline
Joined: 21st Aug 2003
Location: At home
Posted: 10th Mar 2004 16:40
I doubt you'll notice any speed difference. When I had the standard version I couldn't...

Its a very fine thing, the DBPro Interface is...


The place for all great plug-ins.
XP3000+,1Gb RAM,FX5600,1Mb ADSL,Router,.Net 2003 Pro & me
walaber
20
Years of Service
User Offline
Joined: 22nd Oct 2003
Location: Los Angeles, CA
Posted: 10th Mar 2004 17:10
some real quick tests showed the interface running at about the same speed as DBPro.

however the ability to code in C++ seems like it will open lost of windows

Go Go Gadget DBPRO!

Athlon XP 2400+ || DDR-SDRAM 1GB || Nvidia GeForce 4 Ti4200 AGP 8x 128MB
OSX Using Happy Dude
20
Years of Service
User Offline
Joined: 21st Aug 2003
Location: At home
Posted: 10th Mar 2004 17:15
Did you have are you using SyncRate(0) ?


The place for all great plug-ins.
XP3000+,1Gb RAM,FX5600,1Mb ADSL,Router,.Net 2003 Pro & me
Rob K
Retired Moderator
21
Years of Service
User Offline
Joined: 10th Sep 2002
Location: Surrey, United Kingdom
Posted: 10th Mar 2004 23:09
Quote: " some real quick tests showed the interface running at about the same speed as DBPro."


Depends what you're doing with it. Just calling DBPro functions isn't likely to be any faster. Try working with arrays, doing parsing, AI / physics calculations etc. and you'll see the difference.

BlueGUI:Windows UI Plugin - All the power of the windows interface in your DBPro games. - Plus URL download, win dialogs.
Over 140 new commands
walaber
20
Years of Service
User Offline
Joined: 22nd Oct 2003
Location: Los Angeles, CA
Posted: 11th Mar 2004 02:22
indeed. If I weren't so deep into my current project (Snowball Fight), I'd try converting the whole source over to C++ and see what happens!

but alas, i'm not quite knowledgeable enough in C++ yet to recreate all of my DBPro code... I know a fair amout of C, so it shouldn't take long to get the basics down...

I'll keep working on C++ alongside developing my game, maybe by the time the engine is complete I can try to port it over to C++, and compare speeds

Go Go Gadget DBPRO!

Athlon XP 2400+ || DDR-SDRAM 1GB || Nvidia GeForce 4 Ti4200 AGP 8x 128MB
SoulMan
21
Years of Service
User Offline
Joined: 22nd Nov 2002
Location: In a house somewhere on the planet earth
Posted: 11th Mar 2004 07:05
I'm curious. What is this project all about?
Thanks.
SoulMan

This is as backwards as is This
OSX Using Happy Dude
20
Years of Service
User Offline
Joined: 21st Aug 2003
Location: At home
Posted: 11th Mar 2004 20:35
You are being serious, right ?


The place for all great plug-ins.
XP3000+,1Gb RAM,FX5600,1Mb ADSL,Router,.Net 2003 Pro & me
Rob K
Retired Moderator
21
Years of Service
User Offline
Joined: 10th Sep 2002
Location: Surrey, United Kingdom
Posted: 12th Mar 2004 13:48
Hi Soulman,

All of DBPro's commands are contained in a set of DLL libraries (files with a .dll extension which basically contain code that can be used by any application - eg: DBProBasic3D.dll), this means that you can create programs using the DBPro engine without using the DBPro language, but using the more powerful C++ language. IanM's interface library provides an easy way for people with C++ compilers to write DBPro apps/games using C++ rather than BASIC.

BlueGUI:Windows UI Plugin - All the power of the windows interface in your DBPro games. - Plus URL download, win dialogs.
Over 140 new commands
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 12th Mar 2004 19:44
All uploaded - Now lets see what all you Dev-C++ users can do

If you use Visual Studio/C++ then don't bother upgrading - there are no functional changes for you.


... and while this thread is active, I'm thinking ahead for Update 6.
I'm planning on breaking up the download into separate packs:

- C++ Header files
- Visual studio 7+ libraries
- Visual studio 6 libraries
- Dev-C++ V5 library
- Examples

The idea is that it makes it easier for me to update individual libraries and add new ones. It also reduces the size of the download for you.

I'm also going to drop the 3.1 and 4.1 versions of the library.

Any thoughts, suggestions or objections?

*** Coming soon - Network Plug-in - Check my site for info ***
For free Plug-ins, source and the Interface library for Visual C++ 6, .NET and now for Dev-C++ http://www.matrix1.demon.co.uk
OSX Using Happy Dude
20
Years of Service
User Offline
Joined: 21st Aug 2003
Location: At home
Posted: 12th Mar 2004 19:49
Sounds a good idea...


The place for all great plug-ins.
XP3000+,1Gb RAM,FX5600,1Mb ADSL,Router,.Net 2003 Pro & me
APEXnow
Retired Moderator
21
Years of Service
User Offline
Joined: 15th Apr 2003
Location: On a park bench
Posted: 12th Mar 2004 19:53
IanM, I take it there's no major difference to the stuff we played with?


Mattman
20
Years of Service
User Offline
Joined: 5th Jun 2003
Location: East Lansing
Posted: 12th Mar 2004 20:10
is there a way to do it with DBC?
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 12th Mar 2004 20:41
@APEXnow,
No, it's identical.

@Mattman,
Not a chance. There is simply no way to access DBC internals.

*** Coming soon - Network Plug-in - Check my site for info ***
For free Plug-ins, source and the Interface library for Visual C++ 6, .NET and now for Dev-C++ http://www.matrix1.demon.co.uk
Mattman
20
Years of Service
User Offline
Joined: 5th Jun 2003
Location: East Lansing
Posted: 12th Mar 2004 22:57
ok, thats what i thought
Philip
20
Years of Service
User Offline
Joined: 15th Jun 2003
Location: United Kingdom
Posted: 13th Mar 2004 10:35
I'm struck by a slight sense of unease.

Anybody can download the free trial version of DBPro. That comes with all the dll libraries, right? So if they use IanM's interface library, won't they be able to use DBPro effectively for free without ever having to pay for it? Or is there some technical reason why this is impossible?

If this is so, I've got to say I'm not sure that TGC will be pleased to see the appearance of the interface library.

Philip

What do you mean, bears aren't supposed to wear hats and a tie? P1.3ghz / 384 megs / GeForce MX 5200 128meg / WinXP home
APEXnow
Retired Moderator
21
Years of Service
User Offline
Joined: 15th Apr 2003
Location: On a park bench
Posted: 13th Mar 2004 11:10
Phillip, no, because even though you're hooking to the DLLs directly, you still need a DBPro application to launch it, and the Demo logo will always still appear on the refresh.

Paul.


Philip
20
Years of Service
User Offline
Joined: 15th Jun 2003
Location: United Kingdom
Posted: 13th Mar 2004 11:17
Ah ok. Everyone please excuse my question. Asked out of ignorance on my part I'm afraid. Also, thanks to APEX for answering my question.

Philip

What do you mean, bears aren't supposed to wear hats and a tie? P1.3ghz / 384 megs / GeForce MX 5200 128meg / WinXP home
flibX0r
21
Years of Service
User Offline
Joined: 14th Feb 2003
Location: Western Australia
Posted: 13th Mar 2004 16:16
@Philip

Yeah, IanM is a smart one, so he made it so yo still have to include the dll in your DBPro application and compile from DBPro.

Current Project: Interactive DBPro Showcase Example
Project Status: Game COde Structure Done
http://www.w3th.tk <-- Soon to have some content
Philip
20
Years of Service
User Offline
Joined: 15th Jun 2003
Location: United Kingdom
Posted: 13th Mar 2004 16:49
I've always said that IanM is smarter than the average bear.

Philip (an average bear)

What do you mean, bears aren't supposed to wear hats and a tie? P1.3ghz / 384 megs / GeForce MX 5200 128meg / WinXP home
the_winch
21
Years of Service
User Offline
Joined: 1st Feb 2003
Location: Oxford, UK
Posted: 13th Mar 2004 18:14 Edited at: 13th Mar 2004 18:15
I noticed this in the instructions.
Quote: "What extras have been added
The list of extras is small at the moment, but I hope to allow a lot of extra functionality to be exposed as this library matures.
ï‚· ImageWidth() and ImageHeight() have been exposed.
Currently, workarounds using sprites are used to get image dimensions. These two functions have been included to allow that workaround to be bypassed.
ï‚· MakeImage() and GetImageTexturePtr() have also been exposed.
Because I was looking at the Image library already, I decided to also expose these two functions. The first creates a texture of the specified size, and returns a pointer to the DirectX9 texture created. The second is a way to retrieve the DirectX9 pointer to an existing texture."


I edited the DBProInputDebug.dll string table to get image width/height working in dbpro easerly enough but is there a way to use GetImageTexturePtr() within dbpro and get direct access to the image avoiding doing it all via memblocks like you have to now? Or is it a pointer to some directX structure that would be no use in dbpro?

Also why do tgc have commands like image width/height in the dlls but not leave them off the string table? Are they not tested or unstable or not fully working?
It appears people have to either create a sprite or a memblock to get the image dimensions just because someone at tgc didn't take 30sec to edit the string table.

Sorry about the off-topic post, I don't know enough c++ to use the interface libary yet.
OSX Using Happy Dude
20
Years of Service
User Offline
Joined: 21st Aug 2003
Location: At home
Posted: 13th Mar 2004 22:21
I would think the image width/height commands were just forgotten - they seems to work very well. Or perhaps they dont want Joe Bloggs to use them yet...

You only be able to use GetImageTexturePtr() if either the string is present, or you load the DBPro DLL using LOAD DLL and call the function from that.


The place for all great plug-ins.
XP3000+,1Gb RAM,FX5600,1Mb ADSL,Router,.Net 2003 Pro & me
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 13th Mar 2004 22:36
Quote: "I've always said that IanM is smarter than the average bear"


Gee! Thanks

It was a deliberate decision on my part to not investigate the initialisation sequence of a DBPro app and to continue to require the DBPro compiler to produce the apps. I certainly don't want to contribute to the piracy problem.

Quote: "If this is so, I've got to say I'm not sure that TGC will be pleased to see the appearance of the interface library"


The interface library has been generally available from my site since mid may of last year, with Rich, Lee and Mike all aware of it - they can't mind too much

Especially now, as they are committed to opening up the internals of the DBPro engine anyway, the interface library can only make things easier. As a part of that, whatever information Lee and Mike pass out about the internals, I'm planning on including with the interface library, and hopefully making the new stuff easier to use as well.

@the_winch,
There is currently a lot of non-working fluff in some of the DLLs. For example there is a rotate command in the Matrix DLL (it doesn't work BTW). This makes it difficult to spot when a resource string for a command is missing. There are so many commands anyway that it is easy to miss a few.

Quote: "Or is it a pointer to some directX structure that would be no use in dbpro?"


Spot on
It is this pointer that Dostej used to gain access to the image data within his image plug-in. I have a small piece of source code (about 2k) that I was working on some time back for him to prove the idea. I couldn't find the time to develop it further, so he did his own plug-in when he got tired of waiting ... ah, all the little ways in which we contribute ...

*** Coming soon - Network Plug-in - Check my site for info ***
For free Plug-ins, source and the Interface library for Visual C++ 6, .NET and now for Dev-C++ http://www.matrix1.demon.co.uk
WoW is WOW
20
Years of Service
User Offline
Joined: 21st Jun 2003
Location: Australia
Posted: 18th Mar 2004 09:16
I'm a little lost, so does this mean that when it's finished I can make dbpro stuff in my C++ compiler, using only DBpro commands? So using C++ compiler instead of DBpro right?
OSX Using Happy Dude
20
Years of Service
User Offline
Joined: 21st Aug 2003
Location: At home
Posted: 18th Mar 2004 09:52
Thats right.


The place for all great plug-ins.
XP3000+,1Gb RAM,FX5600,1Mb ADSL,Router,.Net 2003 Pro & me
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 18th Mar 2004 21:33
Quote: "when it's finished"


Actually, it is finished ... until the next update when it will be updated again. I guess it could be classed as a continual work in progress.

*** Coming soon - Network Plug-in - Check my site for info ***
For free Plug-ins, source and the Interface library for Visual C++ 6, .NET and now for Dev-C++ http://www.matrix1.demon.co.uk
WoW is WOW
20
Years of Service
User Offline
Joined: 21st Jun 2003
Location: Australia
Posted: 19th Mar 2004 12:32
will it work for C++ 5 Professional Edition?
And where do I download?
Rob K
Retired Moderator
21
Years of Service
User Offline
Joined: 10th Sep 2002
Location: Surrey, United Kingdom
Posted: 19th Mar 2004 15:33
Quote: "Phillip, no, because even though you're hooking to the DLLs directly, you still need a DBPro application to launch it, and the Demo logo will always still appear on the refresh."


On that note Lee should look into making it harder to remove the splash screen. I'm not going into details suffice to say that it is far too easy.

BlueGUI:Windows UI Plugin - All the power of the windows interface in your DBPro games. - Plus URL download, win dialogs.
Over 140 new commands
APEXnow
Retired Moderator
21
Years of Service
User Offline
Joined: 15th Apr 2003
Location: On a park bench
Posted: 19th Mar 2004 18:05
Good point


IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 19th Mar 2004 20:39
Quote: "will it work for C++ 5 Professional Edition?"


Dunno - never tried it because I don't have it. Your best bet is to use the VC++6 libraries and see.

You can find the library on my site - just follow the link in my sig or the WWW button.

*** Coming soon - Network Plug-in - Check my site for info ***
For free Plug-ins, source and the Interface library for Visual C++ 6, .NET and now for Dev-C++ http://www.matrix1.demon.co.uk
Code Ninja
20
Years of Service
User Offline
Joined: 17th Dec 2003
Location: AZ, U.S.
Posted: 29th Mar 2004 23:25
Pardon my asking, but is this an alternative DBPro editor?

PC: Pentium II, 333Mhz, 128 Mb SDRAM, 20 & 4Gb hard drives, 8Mb Videocard, Windows XP, Direct X 9, half-dead CD burner, crappy moniter (15inch), DBC 1.13
~Dragael Software
Wik
20
Years of Service
User Offline
Joined: 21st May 2003
Location: CT, United States
Posted: 29th Mar 2004 23:33
Nope. look up a few posts.


Code Ninja
20
Years of Service
User Offline
Joined: 17th Dec 2003
Location: AZ, U.S.
Posted: 29th Mar 2004 23:42
okay, thanx

Dragael Software
Current Project: 2D RPG Editor (DragnEdit 2D)
Wik
20
Years of Service
User Offline
Joined: 21st May 2003
Location: CT, United States
Posted: 30th Mar 2004 06:09
Arg..I can't get it to work in Dev-CPP, I cant buuuy anything...

How long would it take to make a DJGPP version as I am happy with that compiler??


IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 30th Mar 2004 20:00
Hmmm, you mean DJGPP FOR DOS ...

Anyway, why can't you get it to work? What have you tried? What went wrong? With a little more info I may be able to help get it working.

*** Coming soon - Network Plug-in - Check my site for info ***
For free Plug-ins, source and the Interface library for Visual C++ 6, .NET and now for Dev-C++ http://www.matrix1.demon.co.uk
APEXnow
Retired Moderator
21
Years of Service
User Offline
Joined: 15th Apr 2003
Location: On a park bench
Posted: 30th Mar 2004 22:16
That's odd because the current version has the project file ready for compiling under Dev-Cpp. Works for me anyway.

Paul.


IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 30th Mar 2004 22:53
The instructions included in the documentation are also fairly clear ... at least I though so

*** Coming soon - Network Plug-in - Check my site for info ***
For free Plug-ins, source and the Interface library for Visual C++ 6, .NET and now for Dev-C++ http://www.matrix1.demon.co.uk
Wik
20
Years of Service
User Offline
Joined: 21st May 2003
Location: CT, United States
Posted: 30th Mar 2004 23:26
Wait, My fault i think. I could probably get it to work.


OSX Using Happy Dude
20
Years of Service
User Offline
Joined: 21st Aug 2003
Location: At home
Posted: 31st Mar 2004 11:27
Quote: "Wait, My fault i think. I could probably get it to work"

Dont tell me - you didn't have the latest version ??


The place for all great plug-ins.
XP3000+,1Gb RAM,FX5600,1Mb ADSL,Router,.Net 2003 Pro & me
APEXnow
Retired Moderator
21
Years of Service
User Offline
Joined: 15th Apr 2003
Location: On a park bench
Posted: 31st Mar 2004 17:56 Edited at: 1st Apr 2004 02:36
lol, /\ /\ - Mystic Megg?

\/ \/ - Forget what?


OSX Using Happy Dude
20
Years of Service
User Offline
Joined: 21st Aug 2003
Location: At home
Posted: 31st Mar 2004 18:22
I predict that everyone will forget about her in a few minutes...


The place for all great plug-ins.
Department Head of keeping it Unreal.
OSX Using Happy Dude
20
Years of Service
User Offline
Joined: 21st Aug 2003
Location: At home
Posted: 1st Apr 2004 14:41
By the way, did you ever look at PB?


The place for all great plug-ins.
Keeping it Unreal since 2004
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 1st Apr 2004 19:37
Yes, and the basic language is easy enough - after all, I managed to help Dostej with his plug-in

The problem is that the demo cannot pproduce DLLs for me to test specifics. I'll get around to buying a full copy soon.

*** Coming soon - Network Plug-in - Check my site for info ***
For free Plug-ins, source and the Interface library for Visual C++ 6, .NET and now for Dev-C++ http://www.matrix1.demon.co.uk
waffle
21
Years of Service
User Offline
Joined: 9th Sep 2002
Location: Western USA
Posted: 1st Apr 2004 19:49 Edited at: 1st Apr 2004 19:53
PB should be much simpler than the others, except for the hasle of manually creating the string tables and linking them in externally to the compiler....

no windows header files to include.

------------------------------------
off topic question, but related a bit;

When DBPro calls a DLL function,
is it called by address or is the DLL scanned for
the function name on each call?
I was curious as PB offers the option of both.

internet gaming group
current project http://home.comcast.net/~norman.perry/Archon.html
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 1st Apr 2004 20:06
Quote: "PB should be much simpler than the others"


Actually, no. I'm going to have to do some fast-footwork with the code. With C++ that all happens automatically.

Also, I'm going to have to convert the globstruct by hand as well ... and maintain it if Lee changes it in future.


For each DLL (TPC or built-in) ...
- The DLL is loaded into memory.
- The address of each called function is located
- The virtual.dat file is fixed up with the addresses
- The program starts ...

or something like that. So the answer is 'by address'

*** Coming soon - Network Plug-in - Check my site for info ***
For free Plug-ins, source and the Interface library for Visual C++ 6, .NET and now for Dev-C++ http://www.matrix1.demon.co.uk

Login to post a reply

Server time is: 2024-04-20 05:57:23
Your offset time is: 2024-04-20 05:57:23