[haiku-appserver] Re: Overlay support

  • From: "Rudolf" <drivers.be-hold@xxxxxxxxxxxx>
  • To: haiku-appserver@xxxxxxxxxxxxx
  • Date: Tue, 25 Apr 2006 11:46:28 +0200 CEST

R5 overlay behaviour info:

-workspace switch to workspace with same settings (driver Setmode 
doesn't get called):
App_server does nothing with overlay. It's not needed either since the 
gfx ram isn't re-configured.


-workspace to diff settings (setmode gets called): (from matrox driver 

Overlay: Release_buffer offset = 2, buffer released //app_server
Overlay: Configure_overlay called: output properties changed //app? or 
Overlay: Release_buffer offset = 1, buffer released //app_server
Overlay: Release_buffer offset = 0, buffer released //app_server
SETMODE: (ENTER) initial modeflags: $8000001f //app_server

You see the appserver release the buffers, and also call configure 
ovelray with NULL pointers. (might also be the app coming trough though 
axel, I just think of: in which case it's conceivable app_server 
modified the bitmaps pointers to be NULL, and because the app doesn't 
support the STOP message, it (faulty) calls configure overlay????: hmm, 
interesting to test without this NULL checking, and test Be's player, 
to refresh my memory :-)

Then app_server issues Setmode. After setmode completes, this is in the 

GET_DISPLAY_MODE: returning current mode
Acc: Exporting hook B_SCREEN_TO_SCREEN_BLIT.
Acc: Exporting hook B_FILL_RECTANGLE.
Acc: Exporting hook B_INVERT_RECTANGLE.
Acc: Exporting hook B_FILL_SPAN.
Overlay: Exporting hook B_OVERLAY_COUNT.
Overlay: Exporting hook B_OVERLAY_SUPPORTED_SPACES.
Overlay: Exporting hook B_ALLOCATE_OVERLAY_BUFFER.
Overlay: Exporting hook B_RELEASE_OVERLAY_BUFFER.
Overlay: Exporting hook B_ALLOCATE_OVERLAY.
Overlay: Exporting hook B_RELEASE_OVERLAY.
Overlay: Exporting hook B_CONFIGURE_OVERLAY.
Overlay: Exporting hook B_GET_OVERLAY_CONSTRAINTS.
Overlay: Allocate_buffer offset = 0  // first buffer allocated by 
Overlay: Allocate_buffer offset = 1 // second buffer (app_server)
Overlay: Configure_overlay called: succesfull, switching to buffer 1 //
 app? or app_server?


Overlay: Allocate_buffer offset = 2 // third buffer (app_server) 


After this playback runs normally, but invisible. So, on another 
workspace app_server indeed re-setsup overlay.
In the lines where I comment 'app_server' I say this because the app 
itself doesn't have code for this...

Hope this info serves some purpose.



Other related posts: