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.

Dark GDK .NET / [STICKY] [DarkGDK.NET] Bugs report

Author
Message
Yoda Master
16
Years of Service
User Offline
Joined: 23rd Feb 2008
Location: Genova
Posted: 10th Dec 2008 20:55 Edited at: 10th Dec 2008 20:59
I think I've found 2 bugs (or maybe I'm using classes in a wrong way) in the new toolkit and I would like to inform APEXnow about them:

Sound Class: Calling Clone function ALWAYS throw an InvalidCastException


Dim sound1 As New DarkGDK.Audio.Sound("test.wav")
sound1.Clone() ' Throws an InvalidCastException
[\code]

AdditionalLight Class:
- Calling SetDirectionalLight sets the Type property to "LightType.Point"
- Calling SetPointLight sets Type property to "LightType.Spot"
- Calling SetSpotLight maintain the current value of Type property


Dim l as new DarkGDK.Lighting.AdditionalLight
l.SetDirectionalLight(0.0F,0.0F,0.0F)
MsgBox(l.Type) ' "LightType.Point"
l.SetPointLight(0.0F,0.0F,0.0F)
MsgBox(l.Type) ' "LightType.Spot"
l.SetSpotLight(30.0F,60.0F)
MsgBox(l.Type) ' "LightType.Spot"

' And it seems that the light isn't modified correctly.

[code\]

Please tell me if I'm doing something wrong or if I have to workaround these problems until the next release is ready!

Thanks

Fear leads to anger
Anger leads to hate
Hate leads to suffering
APEXnow
Retired Moderator
20
Years of Service
User Offline
Joined: 15th Apr 2003
Location: On a park bench
Posted: 11th Dec 2008 00:55
Yoda, I've added your list to my TODO file. Thanks for pointing out how to replicate the problems.

As for using the classes wrong, I don't think this is the case. With the huge number of classes and functions that have been added into this new version, I may have overlooked certain parts. As mentioned, I'll check out any and all reported bugs before releasing the next version.

Paul.

Yoda Master
16
Years of Service
User Offline
Joined: 23rd Feb 2008
Location: Genova
Posted: 11th Dec 2008 11:56
Don't worry, I know that you had to do a lot of work! You have done a great job, indeed!

I (and anybody else who finds other bugs) will post here their discover.

Another thing is confusing me about the CurveValue function...In the previous release I could do something like this:

Core.CurveValue(20.0F,-20.0F,1.01F)

And the resulting value go towards -20.0F

In this release if I execute the previous line I get 20.0F as result. Why I can curve my values towards negative destinations no more?

Fear leads to anger
Anger leads to hate
Hate leads to suffering
Yoda Master
16
Years of Service
User Offline
Joined: 23rd Feb 2008
Location: Genova
Posted: 11th Dec 2008 12:23
This time I'm not talking about a bug...

What about implementing the memoryblock class with functions and methods next time? like:

.ToArray() As Byte()
.Stream() As System.IO.Stream
.Write() <- Overloaded like System.IO.BinaryWriter
- No more size-fixed block

And things like that? It will be a great .NET-like implementation.

Fear leads to anger
Anger leads to hate
Hate leads to suffering
APEXnow
Retired Moderator
20
Years of Service
User Offline
Joined: 15th Apr 2003
Location: On a park bench
Posted: 11th Dec 2008 12:28
Ok, noted. The CurveValue one is odd though, I'll need to look at why this is happening, could be paremeter casting or something daft.

Paul.

Yoda Master
16
Years of Service
User Offline
Joined: 23rd Feb 2008
Location: Genova
Posted: 11th Dec 2008 15:25
The Box command has an overloaded version which accept colors as UInteger. I think it has to accept System.Drawing.Color structures instead.

Fear leads to anger
Anger leads to hate
Hate leads to suffering
APEXnow
Retired Moderator
20
Years of Service
User Offline
Joined: 15th Apr 2003
Location: On a park bench
Posted: 11th Dec 2008 16:39 Edited at: 11th Dec 2008 16:46
I've sticked this thread just for now so that I can track additions quickly. But, for people adding to this, can they please following similiar guidelines to the actual Bug Report Guidelines. I will endeviour to fix as many issues as I can, but if your bug is not reproducable, I cannot fix it.

Thanks.

Paul.

Yoda Master
16
Years of Service
User Offline
Joined: 23rd Feb 2008
Location: Genova
Posted: 11th Dec 2008 17:05
Got it!

Fear leads to anger
Anger leads to hate
Hate leads to suffering
RanQor
16
Years of Service
User Offline
Joined: 8th Jun 2007
Location:
Posted: 11th Dec 2008 21:46
DarkGDK.Core.SyncRate(0)

SyncRate does not work correctly, you can set the SyncRate to any number, and it will still only be 60 fps.
Niels Henriksen
19
Years of Service
User Offline
Joined: 27th Sep 2004
Location: Behind you breathing heavely
Posted: 11th Dec 2008 22:30
@RanQor - its an old error. The problem is also in GDK C++ and we dont know when they will fix it.

It could be good to be fixed so we could use that as a guide for looking for speed fixes.

Niels Henriksen
www.tales-of-the-realms.com
if Microsoft can sell software with bugs, so can I.
Yoda Master
16
Years of Service
User Offline
Joined: 23rd Feb 2008
Location: Genova
Posted: 12th Dec 2008 09:45 Edited at: 12th Dec 2008 10:03
I'm really disappointed about Multiplayer functions this time! With the previous version of the toolkit, including this release too, I couldn't get my game working. I'll describe my situation...Maybe I'm doing something wrong:



My app is splitted in a Console project and in a library class project. I Initialize the toolkit in the main (console) project and I set connection and perform checklist for connections there, but I call Join or Create game methods in my library.

At this point my HOST app notifies on the screen that a player called "Matteo" has joined the session, so I can assume that I've done everything correctly. But my CLIENT game is totally unstable. For example if I execute this code immediately after the execution of JoinGame method:



I get an AccessViolationException!!! At this point I could assume that I'm doing something wrong but on some machines this code doesn't throw any exception. It seems that the module fault is Ntdll.dll.

Even if on some machine the same code works there is the possibility that the app chrashes during the execution of any "GetMessage" functions. :-(

What makes me disappointed is the fear of having to pay the next release of the toolkit again to see this (possible) bug fixed!

Fear leads to anger
Anger leads to hate
Hate leads to suffering
APEXnow
Retired Moderator
20
Years of Service
User Offline
Joined: 15th Apr 2003
Location: On a park bench
Posted: 12th Dec 2008 12:54
Quote: "What makes me disappointed is the fear of having to pay the next release of the toolkit again to see this (possible) bug fixed!
"


Why do you think you're going to pay again when you've already bought the toolkit? Bug fixes to this version of the toolkit will not cost you anything.

As for the network problem, this will need to be looked into. Also, DarkGDK.NET has yet to be updated with the Novemeber 2008 release of the GDK binaries, and this may resolve several problems that were in previous versions.

Paul.

Yoda Master
16
Years of Service
User Offline
Joined: 23rd Feb 2008
Location: Genova
Posted: 12th Dec 2008 13:33
I talked about "fear", not "statement"!

Quote: "
Why do you think you're going to pay again when you've already bought the toolkit? Bug fixes to this version of the toolkit will not cost you anything.
"


If so....I'm happy!!

About GDK binaries: Is it possible that DarkGDK for C++ influences DarkGDK.NET in any way? Because I noticed that on my two computers the only one who doesn't have this problem is the one with DarkGDK for C++ installed! Is this possible?

Fear leads to anger
Anger leads to hate
Hate leads to suffering
Yoda Master
16
Years of Service
User Offline
Joined: 23rd Feb 2008
Location: Genova
Posted: 12th Dec 2008 13:42
About Light Class bug:

If execute these lines



I hope this will guide you faster to the solution.

Fear leads to anger
Anger leads to hate
Hate leads to suffering
APEXnow
Retired Moderator
20
Years of Service
User Offline
Joined: 15th Apr 2003
Location: On a park bench
Posted: 12th Dec 2008 14:23
DarkGDK.NET is based completely on the DarkGDK C++ binaries. All updates that are made to the C++ version, will inevitably find their way into the DarkGDK.NET updates.

At the moment, DarkGDK.NET is one release behind the C++ one. And hence, I'm waiting until we have resolved all initial issues arising from the first release of DarkGDK.NET before I release an update.

Paul.

Yoda Master
16
Years of Service
User Offline
Joined: 23rd Feb 2008
Location: Genova
Posted: 14th Dec 2008 15:27 Edited at: 14th Dec 2008 15:33
It's a pity that I can't have a matrix textured with a texture made of more than 1 tile!

Can you fix the ugly lines which appears in distance when matrix filtering is performed? SetMatrixTrim can't help because it breaks the texture tiling!

I know that .NET GDK is based on C++ GDK so....would someone fix this where it has to be fixed?

Thanks

[EDIT]

What happens if I install DarkGDK C++ November 2008 on my machine? Does it update my .NET GDK or does DarkGDK.NET has to be recompiled to gain the benefits of the new release?

Fear leads to anger
Anger leads to hate
Hate leads to suffering
jason p sage
16
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 15th Dec 2008 02:24
Yoda - I thought that I read somewhere that because the DarkGDK was linked to DirectX 9 SDK Aug 2007 - you need that one. DarkGDK.Net is based on DarkGDK.. so I'd guess you can have Nov2008Sdk, if you don't uninstall Aug2007Sdk

Juergen
15
Years of Service
User Offline
Joined: 14th Dec 2008
Location: Germany
Posted: 15th Dec 2008 16:31
I dont now wat is wrong, but whitout calling DarkGDK.Engine.InitializeGDK();
DarkGDK.IO.Keyboard and DarkGDK.IO.Mouse doesen't work.
only DarkGDK.ctlDarkGDKViewport.MousePosition works.
Is the code from the wizard and the geting Startet Tutorial wrong? Or is something in DarkGDK.Net wrong?
hackinc 2000
19
Years of Service
User Offline
Joined: 2nd Dec 2004
Location: Puerto Rico
Posted: 15th Dec 2008 20:06
Juergen tha's the same thing i was going to post!

Her's an example



Yoda Master
16
Years of Service
User Offline
Joined: 23rd Feb 2008
Location: Genova
Posted: 16th Dec 2008 12:25
I believe that InitializeGDK needs to be called ALWAYS...

Fear leads to anger
Anger leads to hate
Hate leads to suffering
hackinc 2000
19
Years of Service
User Offline
Joined: 2nd Dec 2004
Location: Puerto Rico
Posted: 16th Dec 2008 13:36
if DarkGDK.Engine.InitializeGDK() its used when using a ctlDarkGDKviewport control, the Main Window never becomes the child of the ctlDarkGDKviewport, and just remain as a a new Window pop out.

APEXnow
Retired Moderator
20
Years of Service
User Offline
Joined: 15th Apr 2003
Location: On a park bench
Posted: 16th Dec 2008 20:54
InitializeGDK, is called by the control when instanciated on your form. If you are not using the control at all, you do need to call the InitializeGDK function.

Paul.

Gervais
20
Years of Service
User Offline
Joined: 11th Mar 2004
Location: Canada
Posted: 17th Dec 2008 19:01
I am using the DarkDGK in advance mode not the oop wrapper and at the end of any program I make it always crash telling me that the program has stopped responding.

That is not so bad because it crash at the very end when existing then program but I was wandering if I am the only one with this problem.

I am using VB.net 2008 express on vista and don’t tell me it is a vista problem all the programs that I was making with the previous version did work correctly.
APEXnow
Retired Moderator
20
Years of Service
User Offline
Joined: 15th Apr 2003
Location: On a park bench
Posted: 17th Dec 2008 20:40
Gervais, so to clarify, this problem only occurs with this version of DarkGDK.NET under Vista?

Paul.

Gervais
20
Years of Service
User Offline
Joined: 11th Mar 2004
Location: Canada
Posted: 17th Dec 2008 21:50
Exact I did try this with my Desktop PC and with my portable both have Vista and I have the same problem. This append at the very end of the programs I can't debug it because of it. In both case I end up with the message “This programs have stop working” I have the same problem when using the old sample from the installed application.

Both have chipset with sheered memory not real vide card with dedicated memory I don’t know if this could have an impact
jason p sage
16
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 17th Dec 2008 22:20
Well.. Gervais.. If you can make a tiny EXE that reproduces the problem, I'd be happy to execute on Windows XP to maybe shed light for APEXNow. It might not be a "Vista" problem but a problem on "Vista" Seriously.. He might have a "bug" or something that does or doesn't happen on XP to. It might help him/us/you figure it out.

Nothing is worse than a GPF where you can't debug or see why its crashing.

--Jason

Gervais
20
Years of Service
User Offline
Joined: 11th Mar 2004
Location: Canada
Posted: 17th Dec 2008 23:40 Edited at: 17th Dec 2008 23:46
Ok Jason Here is one program that I am working on I have included the project just in case there is something in the configuration hope this help found the problem
Thanks

The upload did not work i did send to you an email
jason p sage
16
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 18th Dec 2008 01:27
I received you email - sent you a personal email to give you a heads up.

Results on:
XP Pro SP3 2002, nVidia 9600GT, 2 gig pc ram, 256meg Video I think , AMD Athton Dual Core 2.? GHz

I ran both debug and release exe’s (didn’t have VB Express – downloading it now – started downloading before I realized you shipped the EXE’s)

SUCCESSFUL

So perhaps APEXNow needs to do something OS Specific during the "cleanup" .. if xp do as it does now.. if Vista.. do x,y,z or what have you.

--Jason

Diggsey
17
Years of Service
User Offline
Joined: 24th Apr 2006
Location: On this web page.
Posted: 18th Dec 2008 11:20
Is GDK.net actually released now then? On the purchase page it still says that it is not released yet, but will be released "Early December" (Not sure how that works when it's already over half-way through!)

[b]Yuor signutare was aresed by a deslyxic mud...
BOX2D V2 HAS HELP FILES! AND A WIKI!
jason p sage
16
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 18th Dec 2008 14:53
DarkGDK.Net for dx9, version 1.1.0.0 has been released... I just bought mine a week ago I guess...

--Jason

APEXnow
Retired Moderator
20
Years of Service
User Offline
Joined: 15th Apr 2003
Location: On a park bench
Posted: 18th Dec 2008 16:16
This Vista issue is elusive at best. I don't have a PC with Vista on it so development testing is difficult. I will need to use my Work PC for this one.

Paul.

jason p sage
16
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 18th Dec 2008 16:49 Edited at: 18th Dec 2008 16:49
This might sound silly, and you probably have thought about virtualization, but I just read that for 64bit OS as a base, the Sun Open Source Virtual Box is making waves - partly due to it being a "virtual machine" capable of hardware accerated gfx... I just find it nice that you can install a whole OS, back it up, then do whatever and restore it back to a clean starting point.

I know this might not help you.. but putting Vista in a Virtual machine I thought might be better than no Vista Machine. I only mention Virtual Box because of some nice write ups about it I receieved from CodeProject.

Of course there is VirtualPC from microsoft and VMWare(not free) too... those may run on 32bit machines - allowing you to keep xp intact at home.

Just a thought.

--Jason

Gervais
20
Years of Service
User Offline
Joined: 11th Mar 2004
Location: Canada
Posted: 18th Dec 2008 18:32 Edited at: 18th Dec 2008 18:33
After some research on the net it look it has something to do with the nvidia driver I did found lots of users that have a similar problem with game using the same chipset but so far it look like it is a battle from nvidia and Microsoft on how is responsible for this and who will fix it

The only thing is that the previous version of GDK.net did not have this problem but apparently it has something to do with memory sharing validation it is possible that you are not releasing some object when closing is it possible to add to the main object of the API A dispose method that will release all object so that we could release it manually when we end the game
jason p sage
16
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 18th Dec 2008 20:54
Forgive me if this seems off topic - but.. I had pretty RECENT nVidia drivers.. and I noticed Jitter in the LeadWerks Game Engine demo. I upgraded my pretty recent drivers to 180.??v and the jitters went away. Furthermore, discussing this on the LeadWerks site, someone responded with acknowledgement of the fix followed by mentioning that there are quite of few quirks in pre 180.?? drivers.. and how that update fixes alot of them.

Hate to toss out the broken record: Try updating your video drivers (Even though you may have a month ago)

--Jason

Gervais
20
Years of Service
User Offline
Joined: 11th Mar 2004
Location: Canada
Posted: 18th Dec 2008 21:50
I did it last night with the most recent driver it did do some thing the first time I start the program after a reboot it do not crash but all other run after do crash so it did fix some thing but not permanently so it look like something geting stuck in memory

That is why i suggested the dispose so that I could tell the engine that I want to exit the game.

In VB I did have problem like this before and it was that i did forget to delicate resource before the end

sorry if I am bugging you guys but it is the first time that i end up with some thing like that and I can do nothing to pinpoint the source of the problem using one of the product from TGC usually it work pretty well or there a way around the problem
APEXnow
Retired Moderator
20
Years of Service
User Offline
Joined: 15th Apr 2003
Location: On a park bench
Posted: 19th Dec 2008 01:03
Keep it to bugs folks.

I've also resolved the program issues mentioned earlier and will be available upon the next release.

Paul.

Gervais
20
Years of Service
User Offline
Joined: 11th Mar 2004
Location: Canada
Posted: 19th Dec 2008 02:14 Edited at: 19th Dec 2008 02:16
Paul

i just found a resolution to the problem all i did need to add to the code was an extra sync commande after exiting the main loop and it did stop from crashing ?????????????????

Hope it help you to see what may be needed to be change in the engen to avoid the problem

and thanks for the help
Hope it is not to cold on your park bench
Gervais
Yoda Master
16
Years of Service
User Offline
Joined: 23rd Feb 2008
Location: Genova
Posted: 19th Dec 2008 11:25
Hi Paul,

Could you add an overloaded version to all LoadXXX() functions so they accept System.IO.Stream objects?? It will be another great .NET implementation, allowing us to load objects in memory easily, compressing and uncompressing as we wish!



Bye

Fear leads to anger
Anger leads to hate
Hate leads to suffering
APEXnow
Retired Moderator
20
Years of Service
User Offline
Joined: 15th Apr 2003
Location: On a park bench
Posted: 19th Dec 2008 19:47
Yoda, I'm not entirely sure why you would need that, since the majority of the classes support loading of files from your embedded resource file. What would be the reason behind using Streams when you load files from resources anyway?

Paul.

smaas
15
Years of Service
User Offline
Joined: 29th Oct 2008
Location: Edam, Netherlands
Posted: 24th Dec 2008 20:52
I have a problem saving terrains.
If I add -- oTerrain.Save("test.dbt") -- to the terrain tutorial I get an error message

System.AccessViolationException was unhandled


Steven
jason p sage
16
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 25th Dec 2008 03:35
possibly its choking on dbt versus dbo... also if that proves a dead end... I THINK you can parse the verts and save a heightmap or something - though I'm aware this would not be close to ideal.

--Jason

Yoda Master
16
Years of Service
User Offline
Joined: 23rd Feb 2008
Location: Genova
Posted: 30th Dec 2008 10:18 Edited at: 30th Dec 2008 10:20
@Paul:

Because I personally don't use embedded resources as I prefer loading then from other places and it would be great creating my own memory stream and make it loading by GDK!!

About classes implementation: Why you haven't used interfaces? Like IDisposable instead of Delete method, and interfaces for moving and rotating an object?

Fear leads to anger
Anger leads to hate
Hate leads to suffering
Molex
16
Years of Service
User Offline
Joined: 11th Mar 2008
Location:
Posted: 30th Dec 2008 16:09
Is this place to suggest things for next version of darkgdk.net? Or that somewhere else?
APEXnow
Retired Moderator
20
Years of Service
User Offline
Joined: 15th Apr 2003
Location: On a park bench
Posted: 1st Jan 2009 23:26 Edited at: 1st Jan 2009 23:38
smaas,

I'll investigate this to see if this is solved with the new binaries. Thanks.

Yoda Master

The IDisposable interface is only required for removing non managed resources. The classes in the toolkit remove objects upon destruction and usually the GC will deal with the class itself. If you feel that a need is required for using the Disposable interface, I will endevour to add it to classes that need it. I can see a possibility of using it on the Object3D classes if it's required.

Paul.

Palace
15
Years of Service
User Offline
Joined: 5th Jan 2009
Location:
Posted: 8th Jan 2009 20:49
Greetings

I have found a bit of a quirk while playing around with the Dark Invaders code.
I wanted to manually animate a sprite by increasing the frame number, which seems to work if you only start with frame number 1. If you say start with frame 7 and begin incrementing it seems to go back to 1 then 7 then 2 then 8 rather than 7, 8 9 etc. I have attached a small project that shows the problem.



Cheers

Attachments

Login to view attachments
Aybe
15
Years of Service
User Offline
Joined: 9th Jan 2009
Location:
Posted: 9th Jan 2009 19:31
I have DarkGDK.NET,

Sometimes an InvalidOperationException is thrown when exiting a project.

It occurs either when the base class disposes;

protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}

Either on the game loop, line : DarkGDK.Core.Sync();


while (DarkGDK.Engine.LoopGDK)
{
// Rotate our cube along it's Y axis
DarkGDK.Camera.DefaultCamera.ControlDefaultUsingArrowKeys(1, 1);

// Also, rotate our cube on all three axi
cube.Rotate(DarkGDK.IO.Mouse.X, 0, DarkGDK.IO.Mouse.Y);

// Tell DarkGDK.NET to render our default camera display
DarkGDK.Core.Sync();
}


I haven't been enable to reproduce it, since i rebooted it went away,

The exact error is this one : http://msdn.microsoft.com/en-us/library/ms171728.aspx

More details : this was happening only when i pressed an input, if I run & close the project, no error is thrown. Also, when this error occured, the mouse wasn't recognised at all by the project.


OS Name Microsoft® Windows Vista™ Ultimate
Version 6.0.6001 Service Pack 1 Build 6001
Other OS Description Not Available
OS Manufacturer Microsoft Corporation
System Name THINKPAD
System Manufacturer LENOVO
System Model 6460D8G
System Type X86-based PC
Processor Intel(R) Core(TM)2 Duo CPU T9300 @ 2.50GHz, 2501 Mhz, 2 Core(s), 2 Logical Processor(s)
BIOS Version/Date LENOVO 7LETC1WW (2.21 ), 7/1/2008
SMBIOS Version 2.4
Windows Directory C:\Windows
System Directory C:\Windows\system32
Boot Device \Device\HarddiskVolume2
Locale United States
Hardware Abstraction Layer Version = "6.0.6001.18000"
Time Zone Romance Standard Time
Installed Physical Memory (RAM) 4.00 GB
Total Physical Memory 3.00 GB
Available Physical Memory 848 MB
Total Virtual Memory 7.40 GB
Available Virtual Memory 4.86 GB
Page File Space 4.50 GB
thierry st malo
18
Years of Service
User Offline
Joined: 7th Nov 2005
Location: Saint-Malo, France
Posted: 10th Jan 2009 09:51
Hi,
I use VB Express 2008 and I have this problem with DarkGDK.NET:
I want to start a new session of the game I am working on, and so I must clear the screen. To do so, every Object3D must, first be deleted (otherwise it remains on the screen) then set to Nothing. But, if MyObj is an Object3D variable, MyObj.Delete won't work; every time, I get an error message that says "COM object that has been separated from its underlying RCW cannot be used". First it's a nuisance, and second the object remains on the screen, even though MyObj has been finally set to Nothing. I have the same problem with Images, by the way.
Can you help?
Thanks in advance,
Thierry
P.S: While I'm at it: I can check if an object (in the DBPro meaning) with a given Id exists. Good. Now, if it does exist, how can I assign it to an Object3D variable? I know that this is not a bug, sorry about that, but an answer would be appreciated.
Yoda Master
16
Years of Service
User Offline
Joined: 23rd Feb 2008
Location: Genova
Posted: 12th Jan 2009 13:35
@APEXnow:

The IDisposable interface is not only used by unmanaged object, but is used by every object that you must ensure they perform operation before they are destroyed by a garbage collection. So it will avoid missing 3d objects references I think. And it is a more .NET way to implements a class which deals with unmanaged objects.

What about conventional names? Like X,Y,Z for every property which set X,Y,Z position and AngleX,AngleY,AngleZ for X,Y,Z rotation axis properties? I don't understand why X,Y,Z properties for Camera objects are called "PositionX","PositionY","PositionZ".And what about implementing interfaces for this? It would be great having an I3DMoveable (which derives from a I2DMoveable interface) array which I could use to move different kinds of object (like cameras, sprites and objects all togheter) and stuffs like that.

About camera classes, don't you think is a little mess? I personally believe that the base camera class should expose a static read only property returning a reference to the default camera (which should inherit from AdditionalCamera class and should overrides Delete method to throw an exception).

The same question is about Light namespace. Why Light class isn't called DefaultLight, like DefaultCamera, instead? A similar implementation would be great.

I'm not making any critics at your work, the toolkit is really great by now. I just hope I can help you making the toolkit better and better.

If you need any help on designing new classes layout, I'm happy to help.

Regards,

Matteo

Fear leads to anger
Anger leads to hate
Hate leads to suffering
Yoda Master
16
Years of Service
User Offline
Joined: 23rd Feb 2008
Location: Genova
Posted: 12th Jan 2009 15:15
It will be great to control the amount of memory the toolkit allocates during initialization also. I'm developing an application which handles music and I can't find any other way to play mp3 files and other formats in my app except with DarkGDK.NET but 200 MB of pre-allocation is too much to be allowed in a non 3D-based application.

If this is not possible, could someone tell me how to play compressed formats (like mp3, ogg and wma) using ffdshow (like DarkGDK.NET on my machine does)?

Thanks

Fear leads to anger
Anger leads to hate
Hate leads to suffering
kBessa
17
Years of Service
User Offline
Joined: 8th Nov 2006
Location: Manaus, Amazonas, Brazil
Posted: 12th Jan 2009 17:10
@Yoda:

The Camera classes were like Light classes before. The modifications were APEX's decisions not to have 2 different full classes implemented (1 for default, another for additional). It's somewhat hard for me to explain right now. I've been thinking there is a better way to implement the class library into the toolkit, without requiring a lot of changes.

About ogg, I've done a small little plugin for it, although it is using OpenAL as its audio API at the moment. It was done before all the plugins I've made but I havent released it because of this OpenAL depedency. I will try to port the OpenAL code to DirectSound and release it.

One thing to mention is that it actually streams music, instead of loading/decompressing it all to memory. I don't know if DarkGDK does stream compressed files, because if it does not, any 5 minutes song will take 50MB of ram just to load itself.

[center][center]

Login to post a reply

Server time is: 2024-03-28 23:58:50
Your offset time is: 2024-03-28 23:58:50