[Kde-games-devel] Review Request: Port KBlocks to KGameRenderer

Brian Croom brian.s.croom at gmail.com
Mon Aug 23 19:32:21 CEST 2010



> On 2010-08-23 08:50:45, Stefan Majewsky wrote:
> > /trunk/KDE/kdegames/kblocks/KBlocksScene.cpp, lines 393-396
> > <http://reviewboard.kde.org/r/5081/diff/1/?file=34367#file34367line393>
> >
> >     Could you please do this with setBackgroundBrush, as in the other games, in order to avoid repeated spritePixmap() calls?
> 
> Brian Croom wrote:
>     I'd love to, but I'm going to need some pointers on the right way to do this. In this case, the scene rect is often considerably smaller than the visualized part of the scene. In other words, the QRectF passed to the scene's drawBackground is different than the sceneRect. So when and where should the background be set? Is this still the responsibility of the scene, which would get the view size through QGraphicsScene::views()? Then I suppose it is necessary to connect a signal so it knows when the view size changes?
> 
> Parker Coates wrote:
>     You can set the background (by either drawBackground() or setBackgroundBrush()) in either the QGView or the QGScene. So if it makes more sense to do it in the view, feel free to. Do keep in mind that scene coordinates are used either way. If setting the background in the view, you should probably do it in a reimplemented resizeEvent(). If setting it in the scene, you should probably do it where setSceneRect() is called. In this case, updateDimensions(). 
>     
>     When I ported Killbots to KGameRenderer I ran into some trouble as my sceneRect doesn't start at (0,0) so I ended up having to "rotate" the pixmap before calling setBackgroundBrush with it. See http://websvn.kde.org/trunk/KDE/kdegames/killbots/scene.cpp?r1=1164840&r2=1164839&pathrev=1164840

After trying some things, I am stuck again. I had assumed that QGraphicsView::sceneRect would give me the total visualized area of the scene, but it seems to be clamped to the scene's sceneRect. I'm looking for a way retrieve the QRectF that would be passed to the view's drawBackground(), can't find a way to do so.

I also tried setting the background in the view and using the widget size, however that won't work because the background is transformed before it is drawn, even if it is set in the view.


- Brian


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.kde.org/r/5081/#review7161
-----------------------------------------------------------


On 2010-08-23 01:04:01, Brian Croom wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviewboard.kde.org/r/5081/
> -----------------------------------------------------------
> 
> (Updated 2010-08-23 01:04:01)
> 
> 
> Review request for KDE Games, Mauricio Piacentini and Stefan Majewsky.
> 
> 
> Summary
> -------
> 
> This straightforward patch makes the KBlocks rendering code use KGameRenderer instead of making its own KGameTheme and QSvgRenderer instances
> 
> 
> Diffs
> -----
> 
>   /trunk/KDE/kdegames/kblocks/KBlocksGraphics.h 1166816 
>   /trunk/KDE/kdegames/kblocks/KBlocksGraphics.cpp 1166816 
>   /trunk/KDE/kdegames/kblocks/KBlocksItemGroup.cpp 1166816 
>   /trunk/KDE/kdegames/kblocks/KBlocksScene.cpp 1166816 
>   /trunk/KDE/kdegames/kblocks/KBlocksSvgItem.h 1166816 
>   /trunk/KDE/kdegames/kblocks/KBlocksSvgItem.cpp 1166816 
>   /trunk/KDE/kdegames/kblocks/main.cpp 1166816 
> 
> Diff: http://reviewboard.kde.org/r/5081/diff
> 
> 
> Testing
> -------
> 
> I have tested playing games and switching themes, and encountered no problems.
> 
> 
> Thanks,
> 
> Brian
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/kde-games-devel/attachments/20100823/e2da0180/attachment.htm 


More information about the kde-games-devel mailing list