[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdegames/lskat
From:       Martin Heni <martin () heni-online ! de>
Date:       2007-10-04 3:30:57
Message-ID: 1191468657.354816.12089.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 720936 by heni:

+ Cleanup
+ Debug: Display frame rates using -debug=1


 M  +1 -2      README  
 M  +1 -1      lskat.lsm  
 M  +42 -34    src/display_intro.cpp  
 M  +2 -0      src/display_intro.h  
 M  +46 -0     src/gameview.cpp  
 M  +17 -0     src/gameview.h  
 M  +1 -0      src/mainwindow.cpp  


--- trunk/KDE/kdegames/lskat/README #720935:720936
@@ -1,4 +1,3 @@
 GENERAL NOTE:
 
-INSTALLATION:
-
+http://games.kde.org/
--- trunk/KDE/kdegames/lskat/lskat.lsm #720935:720936
@@ -1,6 +1,6 @@
 Begin3
 Title:          Lskat 
-Version:        1.1
+Version:        1.40
 Entered-date:   
 Description:    A card game for the KDE desktop  
 Keywords:       skat,game,computer,network,kde
--- trunk/KDE/kdegames/lskat/src/display_intro.cpp #720935:720936
@@ -42,6 +42,8 @@
                            int advancePeriod, QGraphicsView* parent)
             : Themable("display_intro",theme), AbstractDisplay(deck, theScene, \
theme, advancePeriod, parent)  {
+  mTextShown = false;
+
   // Choose a background color
   scene()->setBackgroundBrush(QColor(0,0,128));
 
@@ -76,40 +78,6 @@
   mState   = Putting;
   mTimer->start(50);
 
-  QString s1 = i18nc("Title of the game - line 1", "Lieutenant Skat");
-  QString s2 = i18nc("Title of the game - line 2", "for");
-  QString s3 = i18nc("Title of the game - line 3", "K D E");
-
-  // Text sprite title foreground
-  TextSprite* text1a = new TextSprite(s1, "name-front", mTheme, scene());
-  mSprites.append(text1a);
-  text1a->show();
-
-  // Text sprite title background
-  TextSprite* text1b = new TextSprite(s1, "name-back", mTheme, scene());
-  mSprites.append(text1b);
-  text1b->show();
-
-  // Text sprite title foreground
-  TextSprite* text2a = new TextSprite(s2, "for-front", mTheme, scene());
-  mSprites.append(text2a);
-  text2a->show();
-
-  // Text sprite title background
-  TextSprite* text2b = new TextSprite(s2, "for-back", mTheme, scene());
-  mSprites.append(text2b);
-  text2b->show();
-
-  // Text sprite title foreground
-  TextSprite* text3a = new TextSprite(s3, "kde-front", mTheme, scene());
-  mSprites.append(text3a);
-  text3a->show();
-
-  // Text sprite title background
-  TextSprite* text3b = new TextSprite(s3, "kde-back", mTheme, scene());
-  mSprites.append(text3b);
-  text3b->show();
-
   // Stop all card sprites
   for (int i=0; i<mCards.size(); i++)
   {
@@ -135,6 +103,46 @@
   double time_clear_out   = config.readEntry("time-clear-out", 1.0);
   double aspectRatio      = thememanager()->aspectRatio();
 
+
+  // Display the intro text delayed
+  if (mAnimCnt == 2  && mState == Putting && !mTextShown)
+  {
+    mTextShown = true;
+    QString s1 = i18nc("Title of the game - line 1", "Lieutenant Skat");
+    QString s2 = i18nc("Title of the game - line 2", "for");
+    QString s3 = i18nc("Title of the game - line 3", "K D E");
+
+    // Text sprite title foreground
+    TextSprite* text1a = new TextSprite(s1, "name-front", mTheme, scene());
+    mSprites.append(text1a);
+    text1a->show();
+
+    // Text sprite title background
+    TextSprite* text1b = new TextSprite(s1, "name-back", mTheme, scene());
+    mSprites.append(text1b);
+    text1b->show();
+
+    // Text sprite title foreground
+    TextSprite* text2a = new TextSprite(s2, "for-front", mTheme, scene());
+    mSprites.append(text2a);
+    text2a->show();
+
+    // Text sprite title background
+    TextSprite* text2b = new TextSprite(s2, "for-back", mTheme, scene());
+    mSprites.append(text2b);
+    text2b->show();
+
+    // Text sprite title foreground
+    TextSprite* text3a = new TextSprite(s3, "kde-front", mTheme, scene());
+    mSprites.append(text3a);
+    text3a->show();
+
+    // Text sprite title background
+    TextSprite* text3b = new TextSprite(s3, "kde-back", mTheme, scene());
+    mSprites.append(text3b);
+    text3b->show();
+  }
+
   // Display a card
   if (mAnimCnt < no && mState == Putting)
   {
--- trunk/KDE/kdegames/lskat/src/display_intro.h #720935:720936
@@ -101,6 +101,8 @@
     int mAnimCnt;
     // Animation state 
     AnimState mState;
+    // Text shown?
+    bool mTextShown;
 };
 
 #endif
--- trunk/KDE/kdegames/lskat/src/gameview.cpp #720935:720936
@@ -61,7 +61,15 @@
                        QGraphicsView::DontSavePainterState |
                        QGraphicsView::DontAdjustForAntialiasing );
 
+  // Debug                      
+  mDisplayUpdateTime = 0;
+  mFrameSprite = new QGraphicsTextItem(0, scene);
+  mFrameSprite->setPos(QPointF(0.0, 0.0));
+  mFrameSprite->setZValue(1000.0);
+  if (global_debug > 0) mFrameSprite->show();
+  else mFrameSprite->hide();
 
+
   // Update/advance in [ms]
   QTimer *timer = new QTimer(this);
   connect(timer, SIGNAL(timeout()), this, SLOT(updateAndAdvance()));
@@ -82,10 +90,29 @@
   mTimeStart.start();
 }
 
+GameView::~GameView()
+{
+  delete mFrameSprite;
+}
 
+
 // Advance and update canvas
 void GameView::updateAndAdvance()
 {
+  static int elapsed = -1;
+  static QTime timer;
+  if (elapsed < 0 ) 
+  {
+    timer.start();
+    elapsed = 0;
+  }
+  else
+  {
+    elapsed = timer.elapsed();
+    timer.start();
+    mDisplayUpdateTime = elapsed;
+  }
+
   scene()->advance();
   //NOTE regarding QGV porting
   //QGV will handle dirty rects for us
@@ -176,5 +203,24 @@
   emit signalLeftMousePress(point.toPoint());
 }
 
+void GameView::drawItems(QPainter* painter, int numItems, QGraphicsItem* items[], \
const QStyleOptionGraphicsItem options[]) +{
+  QTime time;
+  time.start();
+  QGraphicsView::drawItems(painter, numItems, items, options);
 
+  // Time display
+  int elapsed = time.elapsed();
+  mDrawTimes.append(elapsed);
+  if (mDrawTimes.size() > 50) mDrawTimes.removeFirst();
+  double avg = 0.0;
+  for (int i=0; i<mDrawTimes.size(); i++) avg += mDrawTimes[i];
+  avg /= mDrawTimes.size();
+
+
+  if (global_debug > 0)
+     mFrameSprite->setPlainText(QString("Draw: %1 ms  Average %2 ms  Update: %3 \
ms").arg(elapsed).arg(int(avg)).arg(mDisplayUpdateTime)); +
+}
+
 #include "gameview.moc"
--- trunk/KDE/kdegames/lskat/src/gameview.h #720935:720936
@@ -33,6 +33,7 @@
 #include <QList>
 #include <QTime>
 #include <QResizeEvent>
+#include <QGraphicsTextItem>
 
 // Forward declaration
 class ThemeManager;
@@ -55,6 +56,10 @@
      */
     GameView(const QSize &size, int advancePeriod, QGraphicsScene* scene, \
ThemeManager* theme, QWidget* parent = 0);  
+    /** Destructor.
+    */
+    ~GameView();
+
  protected:
     /** React to mouse clicks.
      *  @param event The mouse event
@@ -89,7 +94,11 @@
       */
     void paintEvent(QPaintEvent* event);
 
+    /** Overwritten Qt function.
+    */
+    virtual void drawItems(QPainter *painter, int numItems, QGraphicsItem *items[], \
const QStyleOptionGraphicsItem options[]);  
+
   private:
     // Theme manager
     ThemeManager* mTheme;
@@ -97,6 +106,14 @@
     QList<int> mThemeQueue;
     // Theme queue delay time [ms]
     QTime mTimeStart;
+    // Debug frame rate sprite
+    QGraphicsTextItem* mFrameSprite;
+    // Time between updates
+    int mDisplayUpdateTime;
+    // Average update times
+    QList<int> mDrawTimes;
+
+
 };
 
 #endif // LSKAT_GAMEVIEW_H
--- trunk/KDE/kdegames/lskat/src/mainwindow.cpp #720935:720936
@@ -484,6 +484,7 @@
   // Choose card deck
   action = actionCollection()->addAction("select_carddeck");
   action->setText(i18n("Select &Card Deck..."));
+  action->setShortcuts( KShortcut( Qt::Key_F10 ) );
   connect(action, SIGNAL(triggered(bool)), this, SLOT(menuCardDeck()));
   action->setToolTip(i18n("Configure card decks..."));
   action->setWhatsThis(i18n("Choose how the cards should look."));


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic