Revision: 2450
          http://rigsofrods.svn.sourceforge.net/rigsofrods/?rev=2450&view=rev
Author:   rorthomas
Date:     2012-02-04 22:26:29 +0000 (Sat, 04 Feb 2012)
Log Message:
-----------
skia disabled by default, added first canvas

Modified Paths:
--------------
    trunk/CMakeDependenciesConfig.txt
    trunk/source/main/CMakeLists.txt
    trunk/source/main/physics/threading/BeamWorkerManager.cpp
    trunk/source/main/physics/threading/BeamWorkerManager.h

Modified: trunk/CMakeDependenciesConfig.txt
===================================================================
--- trunk/CMakeDependenciesConfig.txt   2012-02-04 21:19:34 UTC (rev 2449)
+++ trunk/CMakeDependenciesConfig.txt   2012-02-04 22:26:29 UTC (rev 2450)
@@ -17,7 +17,7 @@
 
 # set some defaults
 IF(WIN32)
-       set(ROR_USE_SKIA         "TRUE" CACHE BOOL "EXPERIMENTAL: use skia, the 
google 2D vector drawing lib")
+       set(ROR_USE_SKIA         "FALSE" CACHE BOOL "EXPERIMENTAL: use skia, 
the google 2D vector drawing lib")
 macro(importLib libName dirName)
        message(STATUS "adding imported lib: ${libName} : 
${ROR_DEPENDENCIES_DIR}/libs/${ARCH_DIR}/${dirName}/Release/${libName}.lib")
        add_library(${libName} STATIC IMPORTED)
@@ -108,9 +108,9 @@
        endif(ROR_USE_CURL)
 
        if(ROR_USE_SKIA)
-               set(SKIA_INCLUDE_DIRS 
"${ROR_DEPENDENCIES_DIR}/includes/${ARCH_DIR}/Skia;${ROR_DEPENDENCIES_DIR}/includes/${ARCH_DIR}/Skia/config;${ROR_DEPENDENCIES_DIR}/includes/${ARCH_DIR}/Skia/core"
 CACHE PATH "The Skia include path to use")
+               set(SKIA_INCLUDE_DIRS 
"${ROR_DEPENDENCIES_DIR}/includes/${ARCH_DIR}/Skia;${ROR_DEPENDENCIES_DIR}/includes/${ARCH_DIR}/Skia/config;${ROR_DEPENDENCIES_DIR}/includes/${ARCH_DIR}/Skia/core;${RoR_SOURCE_DIR}/source/OgreCanvas"
 CACHE PATH "The Skia include path to use")
                set(SKIA_LIBRARY_DIRS 
"${ROR_DEPENDENCIES_DIR}/libs/${ARCH_DIR}/Skia/Release" CACHE PATH "The Skia 
lib path to use")
-               set(SKIA_LIBRARIES "core" CACHE STRING "The skia libs to link 
against")
+               set(SKIA_LIBRARIES 
"core;animator;gr;effects;views;utils;svg;pdf;images;skgr;ports;xps;opts;xml;experimental;libtess;zlib;usp10;windowscodecs"
 CACHE STRING "The skia libs to link against")
                importLib(core Skia)
        endif(ROR_USE_SKIA)
        

Modified: trunk/source/main/CMakeLists.txt
===================================================================
--- trunk/source/main/CMakeLists.txt    2012-02-04 21:19:34 UTC (rev 2449)
+++ trunk/source/main/CMakeLists.txt    2012-02-04 22:26:29 UTC (rev 2450)
@@ -51,7 +51,7 @@
   
   if(ROR_USE_SKIA)
        setup_lib(SKIA)
-       set(optional_libs ${optional_libs};${SKIA_LIBRARIES})
+       set(optional_libs ${optional_libs};${SKIA_LIBRARIES};OgreCanvas)
   endif()
 
 

Modified: trunk/source/main/physics/threading/BeamWorkerManager.cpp
===================================================================
--- trunk/source/main/physics/threading/BeamWorkerManager.cpp   2012-02-04 
21:19:34 UTC (rev 2449)
+++ trunk/source/main/physics/threading/BeamWorkerManager.cpp   2012-02-04 
22:26:29 UTC (rev 2450)
@@ -30,7 +30,12 @@
 # include <unistd.h>
 #endif // WIN32
 #include <time.h>
+#include "OgrePanelOverlayElement.h"
 
+#ifdef USE_SKIA
+#include <CanvasTexture.h>
+#endif // USE_SKIA
+
 using namespace Ogre;
 
 void *threadWorkerManagerEntry(void* ptr)
@@ -39,13 +44,13 @@
        BeamWorkerManager::getSingleton()._startWorkerLoop();
        // delete singleton maybe?
        pthread_exit(NULL);
-       return NULL;    
+       return NULL;
 }
 
 BeamWorkerManager::BeamWorkerManager() :
              threads()
                , threadsSize(0)
-               , targetThreadSize(4096)
+               , targetThreadSize(16)
                , done_count(0)
                , done_count_mutex()
                , done_count_cv()
@@ -56,6 +61,8 @@
        pthread_cond_init(&done_count_cv, NULL);
 
        threads.clear();
+
+       initDebugging();
 }
 
 BeamWorkerManager::~BeamWorkerManager()
@@ -81,7 +88,7 @@
 {
        LOG("worker manager started in thread " + getThreadIDAsString());
        int rc = 0;
-       struct timespec timeout;
+       //struct timespec timeout;
        int local_done_count = -1;
        while (1)
        {
@@ -213,3 +220,35 @@
        MUTEX_UNLOCK(&wd.work_mutex);
        // return to continue to do work
 }
+
+void BeamWorkerManager::initDebugging()
+{
+#ifdef USE_SKIA
+       Ogre::Canvas::Texture *mCanvasTextureClock1 = new 
Ogre::Canvas::Texture("CanvasClock1", 150, 150);
+       mCanvasTextureClock1->createMaterial();
+
+       // paint
+       Ogre::Canvas::Context* ctx = mCanvasTextureClock1->getContext();
+       ctx->save();            
+       ctx->clearRect(0, 0, 150, 150);
+       ctx->strokeStyle(Ogre::ColourValue::Black);
+       ctx->fillStyle(Ogre::ColourValue::White);
+       ctx->fillRect(0, 0, 150, 150);
+       ctx->translate(75, 75);
+       ctx->scale(0.4f, 0.4f);
+       ctx->rotate(-Ogre::Math::PI/2.0f);
+       ctx->lineWidth(8);
+       ctx->lineCap(Ogre::Canvas::LineCap_Round);
+       ctx->restore();
+       mCanvasTextureClock1->uploadTexture();
+
+       Ogre::Overlay* overlay = 
Ogre::OverlayManager::getSingleton().create("Canvas/Overlay");
+       Ogre::PanelOverlayElement* panel = 
static_cast<Ogre::PanelOverlayElement*>(Ogre::OverlayManager::getSingleton().createOverlayElement("Panel",
 "CanvasClock1/Panel"));
+       panel->setMetricsMode(Ogre::GMM_PIXELS);
+       panel->setMaterialName("CanvasClock1");
+       panel->setDimensions(600.0f, 150.0f);
+       panel->setPosition(0, 0);
+       overlay->add2D(panel);
+       overlay->show();
+#endif // USE_SKIA
+}
\ No newline at end of file

Modified: trunk/source/main/physics/threading/BeamWorkerManager.h
===================================================================
--- trunk/source/main/physics/threading/BeamWorkerManager.h     2012-02-04 
21:19:34 UTC (rev 2449)
+++ trunk/source/main/physics/threading/BeamWorkerManager.h     2012-02-04 
22:26:29 UTC (rev 2450)
@@ -61,6 +61,7 @@
        void addThread(BeamThread *bthread);
        void removeThread(BeamThread *bthread);
        void syncThreads(BeamThread *bthread);
+       void initDebugging();
 
 public:
        static void createThread();

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
_______________________________________________
Rigsofrods-devel mailing list
Rigsofrods-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rigsofrods-devel

Reply via email to