qt5base-lts/tests/auto/other/lancelot/scripts/text.qps
Tor Arne Vestbø dfccd78aa6 Ensure that GL::updateBrushTexture() activates and binds properly
Calling QOpenGL2GradientCache::getBuffer() will generate the texture the
first time, calling glBindTexture in the process. We did this without
first ensuring that the right texture unit was active, resulting in the
generated gradient texture binding onto the glyph cache mask unit.

We now provide a specialization of bindTexture for a QGradient, which
ensures that the right unit is active before calling getBuffer().

Unfortunately we have no way of knowing if the result of getBuffer()
was a texture that was already bound, or if we need to bind the result,
which means we have to do an unconditional bindTexture of the resulting
texture ID. This means double-bind for the initial texture generation,
but this was already an issue in the original code.

Task-number: QTBUG-43039
Task-number: QTBUG-41244
Change-Id: I20c9b795c8c14f8d58be2b60a284c5a060705ec0
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2014-12-13 01:49:24 +01:00

162 lines
3.6 KiB
Plaintext

# Version: 1
drawText -5 5 "Text that is drawn outside the bounds..."
translate 20 20
begin_block text_drawing
save
setFont "sansserif" 10 normal
drawText 0 20 "sansserif 10pt, normal"
setFont "sansserif" 12 normal
drawText 0 40 "sansserif 12pt, normal"
setFont "sansserif" 12 bold
drawText 0 60 "sansserif 12pt, bold"
setFont "sansserif" 10 bold italic
drawText 0 80 "sansserif 10pt, bold italic"
translate 0 100
setPen #7fff0000
setFont "sansserif" 10 normal
drawText 0 20 "alpha sansserif 10pt, normal"
setFont "sansserif" 12 normal
drawText 0 40 "alpha sansserif 12pt, normal"
setFont "sansserif" 12 bold
drawText 0 60 "alpha sansserif 12pt, bold"
setFont "sansserif" 10 bold italic
drawText 0 80 "alpha sansserif 10pt, bold italic"
translate 0 100
setPen black
save
scale 0.9 0.9
setFont "sansserif" 10 normal
drawText 0 20 "scaled sansserif 10pt, normal"
setFont "sansserif" 12 normal
drawText 0 40 "scaled sansserif 12pt, normal"
setFont "sansserif" 12 bold
drawText 0 60 "scaled sansserif 12pt, bold"
setFont "sansserif" 10 bold italic
drawText 0 80 "scaled sansserif 10pt, bold italic"
restore
translate 200 200
setPen black
save
scale -1 -1
setFont "sansserif" 10 normal
drawStaticText 0 20 "flipped sansserif 10pt, normal"
setFont "sansserif" 12 normal
drawStaticText 0 40 "flipped sansserif 12pt, normal"
setFont "sansserif" 12 bold
drawStaticText 0 60 "flipped sansserif 12pt, bold"
setFont "sansserif" 10 bold italic
drawStaticText 0 80 "flipped sansserif 10pt, bold italic"
restore
translate -200 20
setPen black
save
translate 200 90
rotate 185
setFont "sansserif" 10 normal
drawText 0 20 "scaled sansserif 10pt, normal"
setFont "sansserif" 12 normal
drawText 0 40 "scaled sansserif 12pt, normal"
setFont "sansserif" 12 bold
drawText 0 60 "scaled sansserif 12pt, bold"
setFont "sansserif" 10 bold italic
drawText 0 80 "scaled sansserif 10pt, bold italic"
restore
translate 0 100
gradient_appendStop 0 red
gradient_appendStop 0.5 #00ff00
gradient_appendStop 1 blue
gradient_setLinear 0 0 200 0
setPen brush
setFont "sansserif" 10 normal
drawText 0 0 "gradient sansserif 10pt, normal"
setFont "sansserif" 12 normal
drawText 0 20 "gradient sansserif 12pt, normal"
setFont "sansserif" 12 bold
drawText 0 40 "gradient sansserif 12pt, bold"
setFont "sansserif" 10 bold italic
drawText 0 60 "gradient sansserif 10pt, bold italic"
restore
end_block
translate 250 0
drawText 25 640 "clipped to rectangle"
save
setPen #3f000000
setBrush nobrush
drawRect 20 0 100 620
setClipRect 20 0 100 620
setPen black
repeat_block text_drawing
restore
translate 150 0
drawText 25 640 "clipped to path"
save
path_moveTo clip 20 0
path_cubicTo clip 0 200 40 400 20 400
path_lineTo clip 30 620
path_lineTo clip 30 0
path_lineTo clip 40 0
path_lineTo clip 40 620
path_lineTo clip 120 620
path_lineTo clip 120 0
path_lineTo clip 20 0
setPen #3f000000
setBrush nobrush
drawPath clip
setClipPath clip
setPen black
repeat_block text_drawing
restore
translate 150 0
save
setPen black
setFont "sansserif" 10 normal
drawText 0 20 "testing glyph cache textures"
# Important that this gradient doesn't match any earlier
# gradients, so that it's not cached from before.
gradient_clearStops
gradient_appendStop 0 blue
gradient_appendStop 0.5 #00ff00
gradient_appendStop 1 red
gradient_setLinear 0 0 100 0
setPen nopen
drawRect 0 30 100 20
setPen black
drawText 0 70 "testing glyph cache textures"
restore