Search Home Members Contacts
About Us
Products
Downloads
Community
Support
Pages: [1]
  Print  
Author Topic: Suggestion for the TV Object Model  (Read 1224 times)
brimstone
Community Member
*
Posts: 300


WWW
« on: December 09, 2002, 02:07:58 PM »

Recently I began moving my code around and breaking up things in to classes. The idea is to make my code easier to keep up with as its starting to get fairly large now. Well I spent hours making nice neat little classes and collections and such only to find that the input engine wasn't working. The scene would render fine, but no input what so ever. So for several hours more, (and I do mean several) I rearranged my code. I eventually went so far as to eliminate the classes I had built and put them back into .bas files and such, only to find that I still could'nt get the Input Engine to work. It was then I realized the simple mistake I had made. I instantiated various TV objects before I made a call to Initialize the TVEngine object. Yes, Stupid and I knew that too, but I still did it.

The point here I want to make about all that background information is about TV's current object model. TV's (sparse) Documentation seems to indicate that objects such as the TVInputEngine are Top level objects. That is that the TVInput Engine object can be created and used without the TVEngineObject. In reality some of the objects are some kind of Hybrid- They can be created and instantiated as if they are top level objects but are dependent upon another object in order to function. This is very confusing to new developers on the TV scene and I feel is something that should be addressed prior to releasing a public version for sale. By setting instancing properties to Public-NotCreateable on objects that are dependent on the TVEngine object to function you will create an object model that is more accurate and less confusing.

Here is some code outlining what I am talking about:

Dim TV as TVEngine
Dim Inp as TvInputEngine

Set TV = new TVEngine
Set Inp = TV.CreateInputEngine


Take a look at how the DXDirectPlay API instantiates dependent objects to see what I'm talking about.

One other thing on COM standards- one thing that developers are supposed to avoid is changing the default interface. Things like renaming objects (ie TVactor -> TVActor2) should really be avoided so that applications that use the original interface aren't left hanging when you release an update. I realize you guys are still in development but RC3 is Release Candidate 3 right? I mean you guys are considering releasing the engine at this point so changing the default interface should be a last resort.

Ok, I'm done ranting now. Thanks for your hard work because I really do like the engine and I hope you can take the constructive critisism for what it is.
Logged

Project: ^
Status: ^^.^% complete
dxman.net
Arli
Administrator
Community Member
*****
Posts: 993


« Reply #1 on: December 09, 2002, 02:13:17 PM »

We are not changing the interface.
Everything is left as it is interface wize for RC3 as RC2 only bugfixes and cleanups has been made.
For a new version of TV (all C++) it will be diffrent, we might do namechanges because there is no need to split VB classes from C++ classes in new version (thus the 2) as everything will be in C++.
Anyway no need to worry for RC3 it is intact.
Logged

Happy Coding

Arli
Truevision3D Developer
Arli@Truevision3D.com
Pages: [1]
  Print  
 
Jump to:  

Powered by SMF 1.1.3 | SMF © 2006-2007, Simple Machines LLC
Seo4Smf v0.2 © Webmaster's Talks