A couple Cpw questions...

Hi Jim,

I am guessing that you will be the one to answer this. I have been learning more about CPW and have come up with a couple questions:

  1. Do you have plans to update the online help anytime soon? I noticed that the help is at 1.0 and you have come out with a couple new releases since then. I would be glad to help type up some additions if you want.

  2. Is anyone currently working on a Linux port of Cpw?

  3. Once a Linux port is developed, any idea how hard it would be to use it on a Sun Sparc system? Just a recompile since both use X-Windows, or would this be more detailed?

  4. I think that this is all great stuff and I am excited to see what might be added to Cpw next. Any hints?

Thanks for any replies,
John

Originally posted by jpummill:
Hi Jim,

I am guessing that you will be the one to answer this. I have been learning more about CPW and have come up with a couple questions:

  1. Do you have plans to update the online help anytime soon? I noticed that the help is at 1.0 and you have come out with a couple new releases since then. I would be glad to help type up some additions if you want.
  1. Is anyone currently working on a Linux port of Cpw?
  1. Once a Linux port is developed, any idea how hard it would be to use it on a Sun Sparc system? Just a recompile since both use X-Windows, or would this be more detailed?
  1. I think that this is all great stuff and I am excited to see what might be added to Cpw next. Any hints?

Thanks for any replies,
John

Hey John, thanks for the feedback…

On the documentation:

Yes, i’ve been looking at that trying to come up with a better solution. When I started there wasn’t much there to document, but now the docs have grown unmanagable. I’d like a better, easier to navigate solution but don’t want to rely on anything but HTML. (no javascript for instance) I think i’ll convert them over to a two frame system, with the index on the left. I’d also like to use cleaner structure definitions and popout example code. I appreciate the offer for help… I think though this something I want to tackle, since i made the mess in the first place. I’d appreciate any suggestions you might have on formatting. I also need to add docs on the current add-ons which are basically undocumented.

On a Linux port:

I hope so. I have had a few people mention they would like too but no definitive code has been shown… so I get the feeling it isn’t in the works yet. Granted Cpw has changed alot over the last two months so it probably would have been tough to work on. But currently I think the adapter interface is getting pretty solid. I do need to update the adapter template and add some documentation to it specifying how things should work. Maybe i’ll do that tonight… I figure a Linux port is around the corner, somebody is going to get the itch… and hopefully scratch it.

On Sun ports:

I think, overall X is pretty much the same on all systems right? The one big difference might be in the system level GL interfaces. (contexts) But I could be wrong, I’m not an X hacker myself.

On the future:

For Win32 I’d like to improve the directinput mouse access so it can be attached to any window, I just don’t want to create Cpw api’s that are win32 specific to do it. (tough problem) I also need to finish up directinput keyboard access.

In the core library, there’s some finishing work in fonts, cpwInitDisplayModeExact needs to be implemented, and some limitations on structure list sizes need to be removed. ( cpwListWindows and cpwListVideoModes have capped structure sizes for instance ) I’d also like to get rid of the “compile all add-ons” lib project and make it so any add-on can be added through a config file that’s part of the core system.

As far as new features go, boy good question. Maybe drag and drop? Aside from that, suggestions are welcome. I think the core library is in pretty good shape. Additional features that are specific to certain projects should go in as add-ons, so I’d like to see some new add-ons developed - a game model loading extension for instance, a force feedback extension for ff joysticks, cd-rom support maybe. I’d also like to improve the OpenAL add-on so it’s easier to load in and play .wav effects, and also add easy .wav audio track playback. ( Queing buffers in AL is complex. )

I could ramble for ever… Isn’t it funny how a project is never “finished”. Again, please post any ideas you have on new features, etc…

Regards,
Jim

[This message has been edited by jmathies (edited 02-24-2002).]

New docs structure:

Here’s a new documentation navigation layout I worked up. Each api call will be listed under the appropriate section so you can get right to an api definition if needed. I’m going to try and keep this to two main html pages, and a single popout example code window.

This’ll probably take a few days to work up but should make the docs much easier to work with and learn from.

Compiling The Library
----Compiling
----Customizing Configuration
----Precompiled Bins

Programming
----Overview
----Cpw Type System
----Cpw States
----Return Values
----Initializing and Exiting Cpw
----Execution Models
----User Contexts

The Cpw API
----Querying Error Information
----Global User Context
----Print Output Handler
----Configuring Desktop Video Settings
----Main Execution Loop
----Windows
--------Window Display Surfaces
--------Window Frame Characteristics
--------Creating A Normal Window
--------Creating A Fullscreen Window
--------Switching Fullscreen / Normal
--------Window User Contexts
--------Window Management Functions
--------Global Window Event Callbacks
--------Window Specific Event Callbacks
--------Window Cursors
--------Popup and Titlebar Menus
----User Input
--------Overview
--------Keyboard
------------Event Driven
------------Querying State
--------Mouse Input
------------Event Driven
------------Querying State
--------Joysticks
------------Event Driven
------------Querying State
----Event Stack Management
----Timers
----Image Support
--------Loading Images
--------Saving Images
--------Screenshots
----TrueType Fonts
----2D and 3D Primitive Rendering
----OpenGL Extensions Parsing
----Code Segment Performance Timing
----Simple Frame Counter
----Retrieving Library Constants

Adapter Specific Features
----Windows Adapter

Add-ons Documentation
----Overview
----OpenAL Add-on
----OpenGL Extension Add-on

[This message has been edited by jmathies (edited 02-25-2002).]

I like the format. Using strait HTML and avoiding things like JavaScript should get rid of any compatibility problems.

Also, I thought I should tell you that made small mistake in regard to your documentation. Under the title, it still says “Version 1.0 Documentation”. I misinterpreted this to mean that it had not been updated since I copied the docs to my hard drive in early January. Looking at the docs this morning, I discovered that you have been updating the files.

Thanks again for the time you are spending to develop this library…

John