Hi Andreas,
First, thank you very much for Hollywood and your support! Both really helped my a lot to develope hwbeamer and, thus, for creating my PhD slides!
See this thread about my hwbeamer announcement and my PhD slides.
http://www.amigans.net/modules/xforum/v ... 7&forum=21
Second, I also want to give some hints about the problems / observations I had during the recent developments of hwbeamer.
1) Layer effects become extremely slow when there is a layer involved with alpha channel/transparency. This is even true for layers which area shown above the transparent layer (so, actually, there should not be any need to recompute anything related to the transparent layer?).
You can see this with my hwbeamer slides (see link in the referred thread above) on slide 2. When starting the presentation, choose a high resolution window (e.g. 1900x1200). Then you can see the movement of the text-blocks are unbearable slow. On later slides, where there is no such transparent layer involved. The movement speed is reasonable.
The transparent layer is created in the following way (code is shortened):
Code: Select all
brushid=CreateBrush(nil,SETTINGST.width,SETTINGST.height,#RED,{AlphaChannel=True,clear=False})
SelectAlphaChannel(brushid)
SetFillStyle(#FILLCOLOR)
SetFormStyle(#NORMAL)
SetAlphaIntensity(255)
if (h>0)
SetFormStyle(#ANTIALIAS)
SetAlphaIntensity(0)
; here some "holes" are "cut" into the transparent layer
Box(SETTINGST,width-rw,SETTINGST.height-rh,w,h,#WHITE,{name="spot"})
EndSelect
endif
FloodFill(globalspotbrush,0,0,#WHITE,#BLACK)
DisplayBrush(globalspotbrush,0,0,{name="spotbrush",transparency=transparency,InsertPos=inspos})
2) Polygons can only be drawn with at most 1000 points or you get an error message (-- something like wrong parameters, read documentation). I verified that 1000 points work but slightly more caused the error message. Sorry, I don't have any example code at the moment
3) When manually switching to full screen (with two windows opened) something goes wrong with the event handling (-- at least on linux.).
"Manually" means: catching a key-event, closing all windows that should not go to fullscreen, changing display mode for the remaining window and open the previously closed window again:
Code: Select all
If (SETTINGST.infowin)
CloseDisplay(2)
FreeDisplay(2)
EndIf
Local mode=GetAttribute(#DISPLAY,1,#ATTRMODE)
If (mode=#DISPMODE_WINDOWED)
ChangeDisplayMode(#DISPMODE_FULLSCREEN,SETTINGST.width,SETTINGST.height)
EndIf
If (SETTINGST.infowin)
CreateDisplay(2,{BGPic=2,x=#RIGHT,y=#CENTER,width=SETTINGST.width, height=SETTINGST.height,title="info window",layers=True,color=#WHITE})
OpenDisplay(2)
p_setupinfo()
SelectDisplay(1,True)
ActivateDisplay(2)
EndIf
"something goes wrong" means the following: In hwbeamer, I catch key inputs like space, cursor keys, page up and down, etc and also left and right mouse buttons to navigate from one slide to the next or a previous slide. However, when switching to fullscreen, the key inputs seem to be ignored. Regardless what key I press, nothing happens. The mouse buttons however still work, such that I can continue to navigate from one slide to the next. Key-events are still not captured, though. When navigating from the title slide to the first slide, I additionally activate a timer which counts the seconds/minutes to see how long the presentation takes. Here I catch a key combination CTRL-SHIFT-T to stop/reset/restart the timer. This event is captured however and as soon as I have stopped the timer, the navigational key events are captured again. Afterwards, I can turn on the timer again. That`s really weird. There is no such problem when keeping all windows in window mode or if I start the application with "-fullscreen" as a commandline argument.
The non-fullscreen windows only show textout-layers and the time passed measured by the timer -- nothing else and especially, there is no event handling at all.
I hope, you have got an idea what goes wrong here and if this is a bug of mine or yours Sorry, that I don`t have any example code, demonstrating the problem. I simply haven`t had the time in the hot phase right before my defence talk to find some short example code
Thanks! Tom