Page 1 of 1

HW DoubleBuffer rotated brush missing

Posted: Wed Feb 07, 2018 12:44 am
by lazi
Conditions:
- glgalore
- hardware brush
- hardware double buffer
- rotate the brush by standard drawing tag
- displayed brush part left out the window

Effect:
- no brush displayed

Script with hardware brush:

Code: Select all

@REQUIRE "glgalore.hwp"
BeginDoubleBuffer(True)

SetFont(#SANS,60)
CreateBrush(2,100,100,#RED)
SelectBrush(2)
TextOut(#CENTER,#CENTER,"A")
EndSelect
CopyBrush(2,1,{hardware=True})

DisplayBrush(1,-50,10)
DisplayBrush(1,-50,200,{rotate=180,anchorx=1,anchory=1})
DisplayBrush(1,600,200,{rotate=180,anchorx=1,anchory=1})

Flip

WaitLeftMouse
Image

Script with non hardware brush:

Code: Select all

@REQUIRE "glgalore.hwp"
BeginDoubleBuffer(True)

SetFont(#SANS,60)
CreateBrush(2,100,100,#RED)
SelectBrush(2)
TextOut(#CENTER,#CENTER,"A")
EndSelect
CopyBrush(2,1,{hardware=False})

DisplayBrush(1,-50,10)
DisplayBrush(1,-50,200,{rotate=180,anchorx=1,anchory=1})
DisplayBrush(1,600,200,{rotate=180,anchorx=1,anchory=1})

Flip

WaitLeftMouse  
Image

Re: HW DoubleBuffer rotated brush missing

Posted: Thu Feb 08, 2018 10:02 pm
by airsoftsoftwair
Works with RebelSDL's hardware brushes, so it looks like a bug in GL Galore, not in Hollywood itself. Will be fixed.

Re: HW DoubleBuffer rotated brush missing

Posted: Thu Feb 08, 2018 11:45 pm
by lazi
Nice, thanks!

Anyway, is it impossible to implement correct display syncing to the Hollywood display engine on Amiga systems like in GLGalore?
And perhaps in windowed mode?

Yes I know: users are insatiable. :-)

Re: HW DoubleBuffer rotated brush missing

Posted: Fri Feb 09, 2018 10:13 pm
by airsoftsoftwair
lazi wrote:Anyway, is it impossible to implement correct display syncing to the Hollywood display engine on Amiga systems like in GLGalore?
And perhaps in windowed mode?
In windowed mode that won't work because even MiniGL and TinyGL can't do it in windowed mode so it's probably an OS limitation.

Also in fullscreen mode it's only possible with limitations. Display syncing requires Hollywood to use OS double buffered functions but these can only be used if there is only one display on the screen and if it doesn't use window borders and other window functionality. Using OS double buffered functions for fullscreen drawing imposes all kinds of limitations on Hollywood's display handler so I won't do that for the default display engine. If you need vertical refresh syncing, use GL Galore.