[interfacekit] More stuff

Great news lately.... Messaging working, BView and BWindow almost completed...
Very well.... it seems we actually are heading in the right direction :)

Anyway, let me share some more news...

I have a working, complete (well, 99%, SetFullScreen(bool) isn't yet working, 
although the Chart demo (the app I've used for testing) doesn't seem to care) 
BDirectWindow. Yeah, it works with the BeOS R5 app_server.
While it's a Game kit class, it needs support from our app_Server. More 
precisely, it clones an area of the app_server (the direct_buffer_info struct 
is allocated in this area).
This is the struct: it's defined in BDirectWindow, and it's public.

typedef struct {
  direct_buffer_state buffer_state;
  direct_driver_state driver_state;
  void          *bits;
  void          *pci_bits;
  int32         bytes_per_row;
  uint32                bits_per_pixel;
  color_space   pixel_format;
  buffer_layout layout;
  buffer_orientation    orientation;
  uint32                _reserved[9];
  uint32                _dd_type_;
  uint32                _dd_token_;
  uint32                clip_list_count;
  clipping_rect window_bounds;
  clipping_rect clip_bounds;
  clipping_rect clip_list[1];
} direct_buffer_info;


Remember when I told you that the app_server should use clipping_rects instead 
of BRects internally ? It was because I was working on this class. In fact, 
BDirectWindow does very little (it just clones the server's area, and it gets 
changes to that area through the DirectDeamon function, the constructor doesn't 
do anything special, it's just a normal BWindow). All the work is done in the 
app_server. Since that area belongs to the app_server, it seems obvious that 
the app_server uses clipping_rects internally.

That said, it's not as I want to put more work on anyone shoulders. We can just 
continue that way, and see (when we have our app_server fully working) if there 
will be issues when we'll have to let the app_server manage BDirectWindow.

Anyway, comments are welcome, as always :)



Other related posts: