[Ohrrpgce] SVN: jay/3270 gfx_directx backend, v1.6a; and backend interfaces, update. Added messag

Mike Caron caron.mike at gmail.com
Thu Dec 31 13:54:20 PST 2009


Jay Tennant wrote:
>> From: Mike Caron <caron.mike at gmail.com>
>> Sent: Thursday, December 31, 2009 3:29 PM
>>
>> subversion at HamsterRepublic.com wrote:
>>> jay
>>> 2009-12-31 13:25:13 -0800 (Thu, 31 Dec 2009)
>>> 801
>>> gfx_directx backend, v1.6a; and backend interfaces, update. Added message system to gfx backend, though I don't know how to declare void pointers in freebasic (gfx.new.bi, gfx.new_x.bi). Also added another callback sent at backend initialization: DefGfxMessageProc(). This function will handle all messages that the backend doesn't understand. It is implemented by the engine.
>> As far as pointers go, 'Any' is equivalent to 'void'. So, "foo as Any 
>> ptr". Obviously, cannot be dereferenced without a cast of some kind:
>>
>> cptr(foo, integer ptr)
> 
> Ah. I'll get to work on fixing the interfaces.
> 
>>> gfx_msg.h defines the different messages that may be sent. More can be added, but they include support for all backend's different functionality (including fb's bit depth, border, sdl's zoom, etc.).
>>>
>>> "Get" style messages are allowed and defined, too.
>>>
>>> Also added command line options functionality back into the gfx_directx--now that a messaging system is in place, these commands are parsed and sent to the new interfaces.
>> I still don't know that I find the idea of messages attractive. How 
>> close are these to Windows messages? Is there a queue? Do you need to 
>> maintain a message pump? Can you Send Messages, or just Post them?
> 
> It's a blocking send call, much like window's SendMessage(). I suppose we could build a message queue, especially if the backends work on their own thread. But a blocking call is probably better (and easier).

Okay. Just... I still don't see the need for this at all. Windows uses 
messages to facilitate communication between arbitrary programs who
could have any kind of internal structure.

I don't think the backend system is so complex as to warrant this 
solution, especially for something like command line parsing.

A better idea would be the one I suggested yesterday, which I can now 
flesh out seeing as I am now at a keyboard:

Function ParameterExists(param as string) as integer
Function GetParameter(param as string) as string

The command line is parsed into key/value pairs which are stashed 
somewhere and recalled on demand.

-foo bar

key = foo
value = bar

-baz "The rain in spain"

key = baz
value = The rain in spain

etc.

As for different options being intended for different backends... What's 
the problem? If backend A doesn't know what "zoom" means, it won't ask 
for it.


>>> ---
>>> U   wip/gfx.new.bi
>>> U   wip/gfx.new.h
>>> U   wip/gfx.new_x.bi
>>> U   wip/gfx_directx/source/gfx_directx.cpp
>>> U   wip/gfx_directx/source/gfx_directx.new.cpp
>>> U   wip/gfx_directx/source/gfx_directx.new.h
>>> U   wip/gfx_directx.dll
>>> A   wip/gfx_msg.h
>>> _______________________________________________
>>> Ohrrpgce mailing list
>>> ohrrpgce at lists.motherhamster.org
>>> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>> -- 
>> Mike
>> _______________________________________________
>> Ohrrpgce mailing list
>> ohrrpgce at lists.motherhamster.org
>> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org 
> 
> 
> 
> 
> _______________________________________________________
> Unlimited Disk, Data Transfer, PHP/MySQL Domain Hosting
>               http://www.doteasy.com 
> _______________________________________________
> Ohrrpgce mailing list
> ohrrpgce at lists.motherhamster.org
> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org

-- 
Mike



More information about the Ohrrpgce mailing list